2. 2
1. What is Technical debt?
2. Why does Technical debt happen?
3. The sources of technical debt
4. Example: MyFriend Card
5. Detecting and managing Technical Debt
3. 3
Fernando Matus is an Applications Engineer at
Rakuten. He works in applications like e-NAVI, Card
Application and Secure Authentication for external
services.
Technically he is interested in code generation,
language specification, web development and
Linux. Out of work you find him discussing about
Soccer, Economics and how the world economy will
collapse because of other type of debt.
4. 4
• 2010 – 2012. Core Renewal at Grupo Financiero Mifel, Mexico City
• 2015. Internship in MHI for the aviation industry
• 2015 ~ Rakuten Card
• Mobile View for Taiwan Rakuten Card
• Mail Delivery Automation
• カード申し込み
• REST + EE Migration
• Front Development with Vue.js
6. 6
What is technical debt?
Technical debt is the tradeoff between the short-term
benefits of rapid delivery and long-term value.
行き当たりばったりなソフトウェアアーキテクチャと、余裕のないソフトウェア開発が引
き起こす結果のことを指す新しい比喩である[1]。「設計上の負債」とも言う。
11. 11
Business Time and Cost Unclear business goals Requirements Shortfall
Change in
context
Business Context Technology Change Natural Evolution
Developmen
t Process
Ineffective
Documentation
Insufficient testing
automation
Misalignment of process
People and
Team
Inexperience teams Distributed teams Undedicated teams
External
Dependencies
Primefaces Tomahawk Jackson
As a common pattern, all those technologies which were
used to save time, end up being a burden
12. 12
Martin Fowler / 2009-10-14 / https://martinfowler.com/bliki/TechnicalDebtQuadrant.html
13. 13
You and your friends have decided to open a new credit card
company and decided to called it “MyFriend”
1010 2032 1341 4123
Juan Sanchez
MyFriend
Exp. 2/22
TSB
(Of course, this virtual company fiction is based on our
company’s actual issues and actions as condensed, for easier
understanding and quick visualizing)
15. 15
Requirements
• Only people over legal age can apply to the credit card.
• Only people with jobs can apply to our credit card
16. 16
1010 2032 1341 4123
Juan Sanchez
MyFriend
Exp. 2/22
TSB
1010 2032 1341 4123
Juan Sanchez
MyFriend
Exp. 2/22
TNF
Requirements
• Legal age
• Working people
• TNF is VIP, need to check the
salary
Requirements
• Legal age
• Working people
18. 18
1010 2032 1341 4123
Juan Sanchez
MyFriend
Exp. 2/22
TNF
Requirements
• Legal age
• Working people
• TNF is VIP, need to check the
salary
1010 2032 1341 4123
Juan Sanchez
MyFriend Party
Exp. 2/22
HKT
Requirements
• Legal age
• Working People from 20 to 35
• TNF is VIP, need to check the
salary
20. 20
We need to implement the same validation in other systems
• Duplicate Increasing the debt (Partially safer)
• Refactor Time expensive (Risk of failure)
Batch System in Java
System B in .NET
Original System in Java
System A in Java
29. 29
Ipek Ozkaya, Robert Nord, Philippe Kruchten (2019). Managing Technical Debt: Reducing Friction in
Software Development. Addison-Wesley Professional
30. 30
Ipek Ozkaya, Robert Nord, Philippe Kruchten (2019). Managing Technical Debt: Reducing Friction in
Software Development. Addison-Wesley Professional
• Static Code Analysis
• Post Release Projects
• Planning of new projects
• Implementation
32. 32
Make use of source code review tools
Code Reviewers with functional and technical expertise
Integrate checklist into your development flow.
Get rid of the To-Do mentality if you are financially stable.
Get all team of your company on board
33. 33
Technical experts can focus in more critical tasks
Increase in productivity at all levels
Payment enhance development speed
The earlier the payment, the better