DEV Community

Cover image for What is your experience as a freelancer developer with TDD/ATDD/BDD and CI/CD? When do you use them? How often do you use them?
Federico Navarrete
Federico Navarrete

Posted on • Updated on

What is your experience as a freelancer developer with TDD/ATDD/BDD and CI/CD? When do you use them? How often do you use them?

Recently, I had a tough discussion with a friend who wants to move to the freelancing world. We were talking about Unit Tests and that he implements them in everything. I told him that I'm not sure if this would work in his new life as a freelancer since it would increase his costs and time.

This was a difficult argument because his logic made sense since he has been working for a large corporation all his life. However, when you're working as a Freelancer -from my knowledge- all is about your Delivery Time and Costs:

However if you are new to freelancing and you need clients it can be difficult to tell a client that a project will be around double the time and cost.

Source: https://www.crondose.com/2016/09/use-tdd-on-freelance-projects/

And I agree with the comment above. I have more than one friend whose work is strictly freelancing for over 5 years. Their jobs are more you need to deliver me this App with this budget for X date or you need to deliver me certain Plugin/Feature to my web site for Y date and this is my budget. I need to add that my friends' clients are not only StartUps but medium/large organizations around the world. I admit that certain organizations might tell you to implement these criteria like TDD or CI/CD, but I don't believe is a common practice.

If there is one thing that I'm sure is if they would have started to implement all these about pipelines, unit tests, etc. For each project that is from totally different clients, these would have increased considerably their costs that most likely the companies wouldn't like to pay. Especially, that in many cases they don't deliver the source codes, only the final app/plugin, etc.

How about you as a Freelancer?

Have you ever used anything of these pipelines? Unit Testing? As I said from the corporate side, this is a common practice that is almost standardized. Nevertheless, freelancing is becoming more popular and this is uncommon and hard to implement in this area -in my belief-.

Discussion (1)

Collapse
jorgecc profile image
Jorge Castro

Usually, it's a waste of time.

Internal developers generally earn per time-basis, so if the project takes one month or ten months, then they earn the same every month. Then, it's not rare to find that the performance of internal developers is low.

Also, it is not means quality, they surely have more time to develop, but mistakes still happen, and often. Even more, if the team of developers decided to adopt some new and shiny technology, then finally they found that they are working double, and they have a project developed with lots of moving parts.

Plus, internal projects, that is, projects made with the internal developers of a company, trends to change, and sometimes they are in constant changes. And a new change means a new deadline. Some projects that could be finished in 5 months could easily take two years.

  • Product Owner: Hey, team, can we do the next change?
  • Developer: Sure, why not?
  • Product Owner: Ok, go on

Instead, usually, an external team (such as freelance) does not have such a way of work. Usually, they work per project and per deadlines.

  • Product Owner: Hey, team, can we do the next change?
  • Freelance: Ok, but it will cost you more, and it will extend the deadline in 3 months.
  • Product Owner: Mmm, better not. I think we will add it to the next cycle.

IMHO, if we test 10% in unit-testing, then it is worth. Otherwise, it's a waste of time and resources. And some developers really love to spend time, such as updating libraries every day, doing a backup (that they should be done automatically), recompiling stuff and such.