Avoiding Future Technical Debt Building IT Solutions
Simplicity is the name of the game! That is rule number one in building future proof debt free information technology solutions. The more sophisticated your solution is, the more potential that it will become an absolute technical debt in the near or far future.
Origins of Technical Debt
There are three main origins of an information technology solution to turn into technical debt either in a near future or the far future. The two cases differ a bit in terms of design and decision making considerations.
How To Avoid Potential Futuristic Technical Debt?
The solution to avoiding potential futuristic technical debt lays in taking into consideration the main three causes that are expected to result in technical debt. The ides is to treat these reasons as risks and try to apply one of the risk management strategies on them: forbid, mitigate, or accept.
Technology Changes
Although technology is changing every day, there are things that shall remain constant within an evolving technology. For example using Intel's CPU based instruction sets had evolved vastly between days of x8080 processors and todays Xeon scalable processors, yet most of the applications running today are limited to the range of instruction sets laying between x80286 and Pentium processors. Other than operating systems, artificial intelligence, machine learning, and gaming industries, most of software domains are strict to a limited range of instruction sets.
Designing applications for multi-threaded CPUs, high speed networks, and sophisticated security infrastructures might require adequate attention at times of design of a solution.
Considering potential changes in future versions of runtime and libraries used is by its own technical debt that can be taken as a fact with risk probability of near 100% and an impact of 8 on a scale of 0 to 10. The best mitigation approach is to always consider long-term support (LTS) versions as much as possible.
领英推荐
Architect Mindset Modes
As a solution architect, I adopt three modes of mindset: present, near future, and far future mindsets.
With the present mindset mode, I try to consider the exact needs and requirements of a solution that covers unleashed business and technical requirements. I try - as much as I can - to avoid adding extra complexity aiming to the future as far as it is not required within the scope of the current needs.
Switching to a near future mindset, I always focus on potential changes and normal evolutions in technologies used between project initiation, go live, and first year of production runtime support. This includes considering current LTS remaining time and potentially launched new LTS within that timeframe.
I only switch to far future mindset in terms of strategy setting, elimination, and product after lifetime decisions.
Business Owner Attitude and Expectations
As much as possible try to limit injections produced by business owners by imposing a process of validation on new requirements suggested. Only add to the scope those changes that prove to add significant business value at an adequate cost. Do not get yourself and your team dragged into an ever bleeding leak of scope that can easily be detected by modern project management tools.
Final Conclusion
As we start we end: simplicity is the name of the game! If you have not yet read that book, please do. The book is named "Insanely Simple: The Obsession That Drives Apple's Success" by Ken Segall.