Agile FAQs
  About   Slides   Home  

Managed Chaos
Naresh Jain's Random Thoughts on Software Development and Adventure Sports
RSS Feed
Recent Thoughts
Recent Comments

Is TDD and Refactoring Overrated?

Recently I came across a very successful company which builds infrastructure related servers. The company has 13 people. I spent some time watching how the company works. What really caught my attention was, they were not using TDD. Forget TDD, they did not even have any concept of Tests or Testers in the company. On an average, they had a release cycle of 3 weeks and they would throw away their products every 3 months. Zero time was spent on refactoring and maintaining existing products.

Their business is in such a market that new technology and new ways of doing stuff keeps coming up every 2-3 months. So either they can take their existing products and enhance them to add the new features or they can take the latest product in the market and tailor it to their needs. Usually a lot of their products are built on open source products.  In some cases they just hire the open source author and asked him/her to customize the open source product so that this company can really adapt it to their needs.

Not always they find open source products out there. In those cases, the company would form 3 teams of 3 developers each and basically ask each team to build the same product with whatever their choice of technology was. Which ever team finishes first, would release the product. When the second team was done, they would compare the first one with the second one. If the second one was better on various parameters that mattered to the company, they would throw away the first one and release the second one.

According to the founder of the company throwing away stuff was cheaper than enhancing the existing one.

In general TDD and Refactoring are great practices to have on a team, but don’t be dogmatic about it.

  • Himanshu Saxena

    Could you provide more details about this company Naresh. It would be interesting to analyse the environment they are working on and this somehow contradicts with the learning point of view in one of your other threads … 

  • Please help me understand what more details will help you?

  • Himanshu Saxena

    Hi naresh, 

    I would try to explain my point of view. 

    reading the heading of your article I expected to have instances why TDD development is overrated in a more general sense. 

    however, after reading the article i realized what you wanted to say was that TDD is no silver bullet that can be used in all contexts. And you describe an environment where TDD might not be the most optimal way to develop. 

    Still, the environment variables that might help us understand how quality of the product is maintained. 
    How much is the life cycle of the product. 
    etc etc. 


    Licensed under
Creative Commons License