We work extensively with startups and we are always racing against time to deliver good quality code. There are times when the client/founders are not interested in good quality code; they just want everything up an running in x hours.

We have to spend time educating our clients. We explain that bad code rarely gets visited again and rewritten. At times it is just too expensive to rewrite bad code and we have to live with it almost forever. This further leads to writing more bad code to accommodate the badly written code in the first instance.

Over a period of time, what accumulates is “Technical Debt“. The cost of paying this debt is much higher after the product is launched and has acquired a few thousand users.

Just like a good doctor, who advises us to stop eating sugar, exercise daily, reduce screen time and get enough sleep, we do what we can.

Having said that, there is a thin line between being pragmatic about good code and being obsessed about it. We must understand that code is a constantly changing “entity” (for lack of a better word) and it cannot be perfect. We have to know when we should stop improving already written code. We should know when to stop deriving more abstractions and breaking down the code into more reusable components.

A bit of education at both the fronts should help going long way.

Good Luck!

This post is inspired by a blog post by Iz.


At BoTree Technologies, we build web and mobile applications to add value to our client’s business. We align ourselves to ensure that our client benefits the most out of our engagement.

We work in Ruby on RailsPython, Java, React, Android, iOS and RPA as well.

Drop us a line to discuss how can we help take your business to the next level.