In the last few days, I’ve been doing some research about technical debts management. Although technical debts aren’t an IT trend, they are linked to businesses with whom we partner. Businesses that are, at the moment, adapting their technology and digital services or products to attend to users’ needs. Businesses like yours feel the need to provide new and better digital channels to their clients to create closer and personalized interactions with them. Actually, that is a common discussion not only with our partners, every time a new project comes along. But as I recently discovered in my research through this area of the technical debts, it’s also patent on IT conversational forums, blog articles, and influencers talks.
Why are technical debts important?
To answer this question, I feel the need to know more about technical debts. What causes them, how many types of technical debts are, and how can they affect one's business continuity? In fact, to be updated is of significant importance in any business area, don’t you agree? And in digital, that’s crucial! So debating and researching in areas that are critical to our partners helps us challenge our vision. Where do we want to be in the future? What will be our goals? What do we stand for?
During my research, I came across an article written by Keith L. Murphy from OutSystems entitled “What Is Technical Debt and How to Manage It”. Reading it made me think about how many of our partners have the time to pay attention to their business technical debts. Do they know they are paying for it with time, money, and resources? All because they are usually more concerned with speed than quality. So, why not help them on this task alongside the project development. If we can manage the balance between speed and quality, we’ll be able to help them fulfill their business aims. And at the same time, achieve scalable solutions over time and accordingly with business future needs.
The meaning of technical debts
We can define technical debt as a concept that reflects the implied cost of additional rework. Wrong choices cause that rework. It all starts when a business chooses an easy or limited solution over a complete one because it's faster to develop and implement. By opting for a solution that only meets the present needs of the business, it’s not taking into account the costs that will come over time with the upgrading needs.
Are your clients aware of their technical debts?
Once we start paying attention to the concept of technical debts, we realize that many of our partners have this issue in their business without noticing it. Actually, we found out that most of them lack knowledge about their development environment and sometimes no strategy to prepare for a promising and prosperous future. And the most incredible insight was that most of them are using OutSystems, focused on low-code and scalability. And they aren’t using the full potential of that amazing technology on their behalf!
What are the main issues related to technical debts?
Typically, by working with our partners, we found four main types of issues:
- The development app strategy is low with no cost-benefits decision making on building new components.
- In an agile process, changing some parts of the app that jump from an idea directly to development is frequent.
- The Style guide made in the beginning is updated, and the library is no longer a reference to the business demands.
- The pressure to have a deployment increases the number of wrong short-term decisions exponentially.
The truth is that none of those four issues are development-related. More than real, those issues are systemic in the businesses’ organization. Our work history allows us to research more deeply the impact technical depts have on our business partners. A summary of the findings is present in the table below:
Thus without a clear and effective strategy to control the development process it’s guaranteed that you’ll experience one of the following situations:
- You will lose the capacity to scale and your costs to maintain your apps will grow up.
- The cost to repair might ruin your profitability on using a low code platform like OutSystems.
How to manage technical debts?
Allow me to explain that using the example below which represents the results of some partners we helped over the last year.
As you can see, that can be a problem. So, what should be the next steps? How can it be prevented or fixed? Let me share with you our step-by-step problem-solving checklist:
1.1 You should do a mini-assessment on your own to identify how your factory is.
1.2 How many teams are developing?
1.3 Your development teams are all using the same theme?
1.4 How many themes do you have?
1.5 How many external teams worked with your company?
1.6 Do you have someone responsible for checking your factory?
1.7 Do you have a Design System (alive)?
1.8 Do you know how many custom components you have?
1.9 Does your design team follow the development?
1.10 Do you evaluate your app with the architecture dashboard from OutSystems?
1.11 Can you estimate the costs of all previous points?
2 Check your pipeline to the new app.
2.1 How many?
2.2 How critical will they be in business?
2.3 How many users are going to use it?
2.4 How often will those apps need to be updated?
How bad is your technical debt? How can you know that? You can use Martin Fowler's "Technical Debt Quadrant" to see how bad your technical debt is. Adapt it to our reality!
If you're padding to the left side, you should be concerned. It’s the side that is unsatisfactory because it points to a considerable amount of technical debt.
3 Search for help to do an in-depth assessment of your factory.
3.1 Identify where you should invest.
3.2 Prioritize your action plan.
3.3 Establish a breaking point between old practices and the new ones.
4 Build, promote and bring to life your design system
4.1 That should be your sacred library to design new apps and products.
4.2 With cross-function use and management.
4.3 Action plan to follow the business and do the updates.
5 Think about the experience before you start the development.
5.1 97% of the leaders believe that delivering a great customer experience is crucial to success (see Delivering customer experience through frontline staff).
5.2 86% of people are willing to pay more to have a positive cx (same link).
5.3 Will increase the speed and avoid guessing.
5.4 If you need flexibility because you are using agile, bring the designer with you.
5.5 Keep on tracking new features aligned with your design system and in the development phase.
6 You need to control (it is not a sexy thing but incredibly important).
6.1 Your development team should help the designers and the way around.
6.2 Because experience is a must-have, analyze the cost of developing new components and minor adjustments in the design.
6.3 Identify what components should be integrated with your theme for future re-utilization and specific for that app.
Managing technical debts can be a challenge. But it is a good investment with an incredible ROI if you look at your app development with strategy and long-term benefits. And with considerable impact on the innovative capacity of the companies! Look at Paul Arthur, the Regional Vice-President of the ANZ region, at this ticker news (link).
In conclusion, every business needs to follow the market's trends. IT is having a massive impact on the value chain because it allows companies to go further in the value proposition they deliver to their customers. For that reason, keep on track on technical debts management!
I truly hope you can take the benefits from this article! For further discussion, contact us!