SlideShare una empresa de Scribd logo
1 de 34
Nov 9, 2019
Fernando Matus
Rakuten, Inc.
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
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
• 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
5
What is technical debt?
技術的負債とは?
6
What is technical debt?
Technical debt is the tradeoff between the short-term
benefits of rapid delivery and long-term value.
行き当たりばったりなソフトウェアアーキテクチャと、余裕のないソフトウェア開発が引
き起こす結果のことを指す新しい比喩である[1]。「設計上の負債」とも言う。
7
8
9
10
Software Engineering Instutute / 2019-10-29 / https://insights.sei.cmu.edu/sei_blog/2015/07/a-field-study-of-technical-debt.html
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
Martin Fowler / 2009-10-14 / https://martinfowler.com/bliki/TechnicalDebtQuadrant.html
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)
14
Requirements
• Only people over legal age can apply to the credit card
15
Requirements
• Only people over legal age can apply to the credit card.
• Only people with jobs can apply to our credit card
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
17
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
19
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
21
What could we do better?
22
• Even if it’s small, integrate technical debt payments to each release
23
• Identify improvement points and
create backlogs.
• Consider whether new releases
would add unnecessary debt or
increase current one.
24
• Identify improvement points and
create backlogs.
• Consider whether new releases
would add unnecessary debt or
increase current one.
25
• Identify improvement points and
create backlogs.
• Consider whether new releases
would add unnecessary debt or
increase current one.
26
Batch System
System B in .Net
Original System
System A
100 hours * 1.6 金利100 hours * 1.2 金利
100 hours * 1.2 金利100 hours * 1.3 金利
27
Technical
Debt Payment
Costly
On Going
Projects
Risky
Customers
do not see
the output
Training
Investigation
28
How could we detect and manage
technical debt?
29
Ipek Ozkaya, Robert Nord, Philippe Kruchten (2019). Managing Technical Debt: Reducing Friction in
Software Development. Addison-Wesley Professional
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
31
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
Technical experts can focus in more critical tasks
Increase in productivity at all levels
Payment enhance development speed
The earlier the payment, the better
Moving App to the Next Stage

Más contenido relacionado

Similar a Moving App to the Next Stage

Digital Engineering: Top Three Imperatives for Banks and Financial Services C...
Digital Engineering: Top Three Imperatives for Banks and Financial Services C...Digital Engineering: Top Three Imperatives for Banks and Financial Services C...
Digital Engineering: Top Three Imperatives for Banks and Financial Services C...Cognizant
 
Navigating COVID's Impact on the Financial Services Industry
Navigating COVID's Impact on the Financial Services IndustryNavigating COVID's Impact on the Financial Services Industry
Navigating COVID's Impact on the Financial Services IndustryCitrin Cooperman
 
Fintech_Trends_for_2022_report_by_Erlang_Solutions.pdf
Fintech_Trends_for_2022_report_by_Erlang_Solutions.pdfFintech_Trends_for_2022_report_by_Erlang_Solutions.pdf
Fintech_Trends_for_2022_report_by_Erlang_Solutions.pdfErlang Solutions
 
Software Solutions to Increase Construction Profits
Software Solutions to Increase Construction ProfitsSoftware Solutions to Increase Construction Profits
Software Solutions to Increase Construction ProfitsTheNetEffectContract
 
Intergen Smarts 2 (2002)
Intergen Smarts 2 (2002)Intergen Smarts 2 (2002)
Intergen Smarts 2 (2002)Intergen
 
ZendCon 2010 Technical Debt
ZendCon 2010 Technical Debt ZendCon 2010 Technical Debt
ZendCon 2010 Technical Debt enaramore
 
Streaming Processes: Creating a Start-up Within a Big Corporate (Mohammad Sha...
Streaming Processes: Creating a Start-up Within a Big Corporate (Mohammad Sha...Streaming Processes: Creating a Start-up Within a Big Corporate (Mohammad Sha...
Streaming Processes: Creating a Start-up Within a Big Corporate (Mohammad Sha...Executive Leaders Network
 
From Technical Debt to Technical Health
From Technical Debt to Technical HealthFrom Technical Debt to Technical Health
From Technical Debt to Technical HealthMikael Vesavuori
 
Top 5 Banking & Financial Software Development Companies | ValueCoders
Top 5 Banking & Financial Software Development Companies | ValueCodersTop 5 Banking & Financial Software Development Companies | ValueCoders
Top 5 Banking & Financial Software Development Companies | ValueCodersMariya James
 
LoanResolve Brief Presentation
LoanResolve Brief PresentationLoanResolve Brief Presentation
LoanResolve Brief Presentationjimmymac935
 
Automated FP Evolution
Automated FP EvolutionAutomated FP Evolution
Automated FP EvolutionDoug Rudolph
 
Follow these steps to get started with sentinel city®
Follow these steps to get started with sentinel city® Follow these steps to get started with sentinel city®
Follow these steps to get started with sentinel city® oreo10
 
Success Story Builder First S May 2009 Hr
Success Story Builder First S May 2009 HrSuccess Story Builder First S May 2009 Hr
Success Story Builder First S May 2009 HrAlasdair Kilgour
 

Similar a Moving App to the Next Stage (20)

Digital Engineering: Top Three Imperatives for Banks and Financial Services C...
Digital Engineering: Top Three Imperatives for Banks and Financial Services C...Digital Engineering: Top Three Imperatives for Banks and Financial Services C...
Digital Engineering: Top Three Imperatives for Banks and Financial Services C...
 
Odc setup
Odc setupOdc setup
Odc setup
 
Navigating COVID's Impact on the Financial Services Industry
Navigating COVID's Impact on the Financial Services IndustryNavigating COVID's Impact on the Financial Services Industry
Navigating COVID's Impact on the Financial Services Industry
 
Fintech_Trends_for_2022_report_by_Erlang_Solutions.pdf
Fintech_Trends_for_2022_report_by_Erlang_Solutions.pdfFintech_Trends_for_2022_report_by_Erlang_Solutions.pdf
Fintech_Trends_for_2022_report_by_Erlang_Solutions.pdf
 
Software Solutions to Increase Construction Profits
Software Solutions to Increase Construction ProfitsSoftware Solutions to Increase Construction Profits
Software Solutions to Increase Construction Profits
 
Software Industry
Software Industry Software Industry
Software Industry
 
Intergen Smarts 2 (2002)
Intergen Smarts 2 (2002)Intergen Smarts 2 (2002)
Intergen Smarts 2 (2002)
 
ZendCon 2010 Technical Debt
ZendCon 2010 Technical Debt ZendCon 2010 Technical Debt
ZendCon 2010 Technical Debt
 
Streaming Processes: Creating a Start-up Within a Big Corporate (Mohammad Sha...
Streaming Processes: Creating a Start-up Within a Big Corporate (Mohammad Sha...Streaming Processes: Creating a Start-up Within a Big Corporate (Mohammad Sha...
Streaming Processes: Creating a Start-up Within a Big Corporate (Mohammad Sha...
 
From Technical Debt to Technical Health
From Technical Debt to Technical HealthFrom Technical Debt to Technical Health
From Technical Debt to Technical Health
 
unit 1.pptx
unit 1.pptxunit 1.pptx
unit 1.pptx
 
Top 5 Banking & Financial Software Development Companies | ValueCoders
Top 5 Banking & Financial Software Development Companies | ValueCodersTop 5 Banking & Financial Software Development Companies | ValueCoders
Top 5 Banking & Financial Software Development Companies | ValueCoders
 
LoanResolve Brief Presentation
LoanResolve Brief PresentationLoanResolve Brief Presentation
LoanResolve Brief Presentation
 
Automated FP Evolution
Automated FP EvolutionAutomated FP Evolution
Automated FP Evolution
 
Digital cracks in banking--Sid Nandi
Digital cracks in banking--Sid NandiDigital cracks in banking--Sid Nandi
Digital cracks in banking--Sid Nandi
 
Follow these steps to get started with sentinel city®
Follow these steps to get started with sentinel city® Follow these steps to get started with sentinel city®
Follow these steps to get started with sentinel city®
 
Kantara Workshop at CIS
Kantara Workshop at CISKantara Workshop at CIS
Kantara Workshop at CIS
 
The path to self-disruption
The path to self-disruptionThe path to self-disruption
The path to self-disruption
 
Top 10 Pitfalls Of Am
Top 10 Pitfalls Of AmTop 10 Pitfalls Of Am
Top 10 Pitfalls Of Am
 
Success Story Builder First S May 2009 Hr
Success Story Builder First S May 2009 HrSuccess Story Builder First S May 2009 Hr
Success Story Builder First S May 2009 Hr
 

Más de Rakuten Group, Inc.

コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話Rakuten Group, Inc.
 
楽天における安全な秘匿情報管理への道のり
楽天における安全な秘匿情報管理への道のり楽天における安全な秘匿情報管理への道のり
楽天における安全な秘匿情報管理への道のりRakuten Group, Inc.
 
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...Rakuten Group, Inc.
 
DataSkillCultureを浸透させる楽天の取り組み
DataSkillCultureを浸透させる楽天の取り組みDataSkillCultureを浸透させる楽天の取り組み
DataSkillCultureを浸透させる楽天の取り組みRakuten Group, Inc.
 
大規模なリアルタイム監視の導入と展開
大規模なリアルタイム監視の導入と展開大規模なリアルタイム監視の導入と展開
大規模なリアルタイム監視の導入と展開Rakuten Group, Inc.
 
楽天における大規模データベースの運用
楽天における大規模データベースの運用楽天における大規模データベースの運用
楽天における大規模データベースの運用Rakuten Group, Inc.
 
楽天サービスを支えるネットワークインフラストラクチャー
楽天サービスを支えるネットワークインフラストラクチャー楽天サービスを支えるネットワークインフラストラクチャー
楽天サービスを支えるネットワークインフラストラクチャーRakuten Group, Inc.
 
楽天の規模とクラウドプラットフォーム統括部の役割
楽天の規模とクラウドプラットフォーム統括部の役割楽天の規模とクラウドプラットフォーム統括部の役割
楽天の規模とクラウドプラットフォーム統括部の役割Rakuten Group, Inc.
 
Rakuten Services and Infrastructure Team.pdf
Rakuten Services and Infrastructure Team.pdfRakuten Services and Infrastructure Team.pdf
Rakuten Services and Infrastructure Team.pdfRakuten Group, Inc.
 
The Data Platform Administration Handling the 100 PB.pdf
The Data Platform Administration Handling the 100 PB.pdfThe Data Platform Administration Handling the 100 PB.pdf
The Data Platform Administration Handling the 100 PB.pdfRakuten Group, Inc.
 
Supporting Internal Customers as Technical Account Managers.pdf
Supporting Internal Customers as Technical Account Managers.pdfSupporting Internal Customers as Technical Account Managers.pdf
Supporting Internal Customers as Technical Account Managers.pdfRakuten Group, Inc.
 
Making Cloud Native CI_CD Services.pdf
Making Cloud Native CI_CD Services.pdfMaking Cloud Native CI_CD Services.pdf
Making Cloud Native CI_CD Services.pdfRakuten Group, Inc.
 
How We Defined Our Own Cloud.pdf
How We Defined Our Own Cloud.pdfHow We Defined Our Own Cloud.pdf
How We Defined Our Own Cloud.pdfRakuten Group, Inc.
 
Travel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech infoTravel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech infoRakuten Group, Inc.
 
Travel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech infoTravel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech infoRakuten Group, Inc.
 
Introduction of GORA API Group technology
Introduction of GORA API Group technologyIntroduction of GORA API Group technology
Introduction of GORA API Group technologyRakuten Group, Inc.
 
100PBを越えるデータプラットフォームの実情
100PBを越えるデータプラットフォームの実情100PBを越えるデータプラットフォームの実情
100PBを越えるデータプラットフォームの実情Rakuten Group, Inc.
 
社内エンジニアを支えるテクニカルアカウントマネージャー
社内エンジニアを支えるテクニカルアカウントマネージャー社内エンジニアを支えるテクニカルアカウントマネージャー
社内エンジニアを支えるテクニカルアカウントマネージャーRakuten Group, Inc.
 

Más de Rakuten Group, Inc. (20)

コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
 
楽天における安全な秘匿情報管理への道のり
楽天における安全な秘匿情報管理への道のり楽天における安全な秘匿情報管理への道のり
楽天における安全な秘匿情報管理への道のり
 
What Makes Software Green?
What Makes Software Green?What Makes Software Green?
What Makes Software Green?
 
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
 
DataSkillCultureを浸透させる楽天の取り組み
DataSkillCultureを浸透させる楽天の取り組みDataSkillCultureを浸透させる楽天の取り組み
DataSkillCultureを浸透させる楽天の取り組み
 
大規模なリアルタイム監視の導入と展開
大規模なリアルタイム監視の導入と展開大規模なリアルタイム監視の導入と展開
大規模なリアルタイム監視の導入と展開
 
楽天における大規模データベースの運用
楽天における大規模データベースの運用楽天における大規模データベースの運用
楽天における大規模データベースの運用
 
楽天サービスを支えるネットワークインフラストラクチャー
楽天サービスを支えるネットワークインフラストラクチャー楽天サービスを支えるネットワークインフラストラクチャー
楽天サービスを支えるネットワークインフラストラクチャー
 
楽天の規模とクラウドプラットフォーム統括部の役割
楽天の規模とクラウドプラットフォーム統括部の役割楽天の規模とクラウドプラットフォーム統括部の役割
楽天の規模とクラウドプラットフォーム統括部の役割
 
Rakuten Services and Infrastructure Team.pdf
Rakuten Services and Infrastructure Team.pdfRakuten Services and Infrastructure Team.pdf
Rakuten Services and Infrastructure Team.pdf
 
The Data Platform Administration Handling the 100 PB.pdf
The Data Platform Administration Handling the 100 PB.pdfThe Data Platform Administration Handling the 100 PB.pdf
The Data Platform Administration Handling the 100 PB.pdf
 
Supporting Internal Customers as Technical Account Managers.pdf
Supporting Internal Customers as Technical Account Managers.pdfSupporting Internal Customers as Technical Account Managers.pdf
Supporting Internal Customers as Technical Account Managers.pdf
 
Making Cloud Native CI_CD Services.pdf
Making Cloud Native CI_CD Services.pdfMaking Cloud Native CI_CD Services.pdf
Making Cloud Native CI_CD Services.pdf
 
How We Defined Our Own Cloud.pdf
How We Defined Our Own Cloud.pdfHow We Defined Our Own Cloud.pdf
How We Defined Our Own Cloud.pdf
 
Travel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech infoTravel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech info
 
Travel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech infoTravel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech info
 
OWASPTop10_Introduction
OWASPTop10_IntroductionOWASPTop10_Introduction
OWASPTop10_Introduction
 
Introduction of GORA API Group technology
Introduction of GORA API Group technologyIntroduction of GORA API Group technology
Introduction of GORA API Group technology
 
100PBを越えるデータプラットフォームの実情
100PBを越えるデータプラットフォームの実情100PBを越えるデータプラットフォームの実情
100PBを越えるデータプラットフォームの実情
 
社内エンジニアを支えるテクニカルアカウントマネージャー
社内エンジニアを支えるテクニカルアカウントマネージャー社内エンジニアを支えるテクニカルアカウントマネージャー
社内エンジニアを支えるテクニカルアカウントマネージャー
 

Último

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Último (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Moving App to the Next Stage

  • 1. Nov 9, 2019 Fernando Matus Rakuten, Inc.
  • 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
  • 5. 5 What is technical debt? 技術的負債とは?
  • 6. 6 What is technical debt? Technical debt is the tradeoff between the short-term benefits of rapid delivery and long-term value. 行き当たりばったりなソフトウェアアーキテクチャと、余裕のないソフトウェア開発が引 き起こす結果のことを指す新しい比喩である[1]。「設計上の負債」とも言う。
  • 7. 7
  • 8. 8
  • 9. 9
  • 10. 10 Software Engineering Instutute / 2019-10-29 / https://insights.sei.cmu.edu/sei_blog/2015/07/a-field-study-of-technical-debt.html
  • 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)
  • 14. 14 Requirements • Only people over legal age can apply to the credit card
  • 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
  • 17. 17
  • 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
  • 19. 19
  • 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
  • 21. 21 What could we do better?
  • 22. 22 • Even if it’s small, integrate technical debt payments to each release
  • 23. 23 • Identify improvement points and create backlogs. • Consider whether new releases would add unnecessary debt or increase current one.
  • 24. 24 • Identify improvement points and create backlogs. • Consider whether new releases would add unnecessary debt or increase current one.
  • 25. 25 • Identify improvement points and create backlogs. • Consider whether new releases would add unnecessary debt or increase current one.
  • 26. 26 Batch System System B in .Net Original System System A 100 hours * 1.6 金利100 hours * 1.2 金利 100 hours * 1.2 金利100 hours * 1.3 金利
  • 28. 28 How could we detect and manage technical debt?
  • 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
  • 31. 31
  • 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