25 Oct 2021

Thoughts On Tech Debt

 A technical debt is burden on codebase and on people as well.  In this post i am going to share my experience on the topic. if the codebase or architecture of the system does not allow to meet the future requirements with high pace and quality code, then there is a tech debt into the system.

I want to see this from two angles one, from code and other from people.

Code: Tech Debt

1. There is tight coupling between the different components.
2. There is existing code which is working fine, but with new requirements you can make it work with changes in existing code, by adding one if conditional check or by adding new parameter.
3. Code duplication, changes needs to be made at multiple places,
4. Not writing commonly used code at one place.
5. Over-Engineering comes with the cost.
6. Critical part of the system missing testing.

There could be N number of other points which can be added to above list. A developer having good sense of software design and principle software can avoid most of the above mentioned points. And yeah, always willing to refactor, even when no one is asked to do it.

 Person: Tech Debt

1. A developer should be willing to take pride in this every line of code, if there is lack of passion in here. Then certainly slowly slowly debt will creeps into the system. I am not saying conscious person will not be having tech debt, but if given opportunity he will always make effort to reduce the debt.
Certainly developer of conscious of producing quality work, helps.

2. Team lead or manager should be willing to understand the fact that tech debt is a roadblock of adding new features very quickly. First they should accept it and ask developer to make a plan to mitigate debt, that's a good start. And if they do not accept, then will sooner or later but the hard way.

3. Product owner should plan activities in way that some room is left to deal tech-debt.

4. There are situation where we have "to ship a feature, quickly",  its fine. But later one should come back later and have a look again. Here comes the motivation of developer, if one is not motivated enough then he will continue with next task.


I have been to workplaces where developer are aware of tech-debt and willing to do something about it, but management not interested in development team spending time in using the tech-debt.
And to workplace where management planned their sprint keeping tech-debt in mind or focuses entire sprint on handling tech-debt.

Intent is very important either from developer or product owner, If it is there one can work on towards reducing the tech debt. But in good scenario, both should be having a intent to reduce the tech-debt, as a team then I guess good progress can be made.

Thanks for reading.

29 Jul 2021

Published Elixir Library

Recently, I published the library, moviematch, on Hex. I was working on this, on and off. Sometimes motivation was up and sometimes down, but that's Ok i guess. Here is a post I wrote about creating this library. 


It is a small tool, with a "Scratch your own itch" kind of purpose. It is still very basic, will be iterating over some time. 


If you maintain the IMDb's watchlist, try this out. If you have any ideas for the feature or found some bug, please do add issues in GitHub.