Software engineers are very often pushed to implement solution which consumes less effort instead of the right one (clean and well designed). It is short term thinking: now we do it 'quick & dirty' and maybe later we will make proper way, which usually never happens.
Common reasons for this decision are: time to market, nervous customers, release deadline, it is 'mess anyway' or manager's bonus for 'green' excel.
The final result of all these quick hacks and dirty workarounds are accumulated in technical debt, which we would have to pay to make it right.
Critical amount of technical debt is illuminated by classic symptoms:
But not only dirty hacking is cause of technical debt. It is maybe surprise but also doing nothing increasing it: new version of library or framework was released and we did not upgraded to it, our partner provided better service and we did not adjusted to it ...
When we are doing decision which could lead into increasing of technical debt it is necessary to take it into account.
From my perspective it is very important to really control technical debt. This should be strategic decision from C-level followed by middle management and developers. Ignoring it is highway to developer's hell where we are not able to maintain and develop the product anymore.
Common reasons for this decision are: time to market, nervous customers, release deadline, it is 'mess anyway' or manager's bonus for 'green' excel.
The final result of all these quick hacks and dirty workarounds are accumulated in technical debt, which we would have to pay to make it right.
Critical amount of technical debt is illuminated by classic symptoms:
- maintainability is very low
- factoring of code is awful (spaghetti)
- ownership of code does not exists
- unit tests are just fake or joke
- static code analysis is rather turned off
- CI is unstable and very slow (CD is only dream)
- adding new features is very time consuming
- estimations are just guess from magic ball
- architecture decisions are not documented
- number of defects is very high
- developers are frustrated
- managers are ignoring reality
- customers are unhappy
But not only dirty hacking is cause of technical debt. It is maybe surprise but also doing nothing increasing it: new version of library or framework was released and we did not upgraded to it, our partner provided better service and we did not adjusted to it ...
When we are doing decision which could lead into increasing of technical debt it is necessary to take it into account.
From my perspective it is very important to really control technical debt. This should be strategic decision from C-level followed by middle management and developers. Ignoring it is highway to developer's hell where we are not able to maintain and develop the product anymore.
Comments
Post a Comment