SlideShare a Scribd company logo
1 of 32
Fight for
the quality of architecture
against delivery
MEET THE SPEAKERS
✔ Mohamed Samir
Senior Software Engineer
✔ Hithem Ahmed
CTO
Présentation Groupe – nov. 2015 2
AGENDA
✔ Introduction
✔ Behavior
✔ Architecture
✔ The Greater Value
✔ Use Case
✔ Eisenhower’s Matrix
✔ Fight for the architecture
✔ Questions
Présentation Groupe – nov. 2015 3
Introduction
✔ Every software system provides two different values to the stakeholders:
▪ Behavior
▪ Structure
✔ Software developers are responsible for ensuring that both those values
remain high.
✔ Unfortunately, they often focus on one to the exclusion of the other.
▪ Even more unfortunately, they often focus on the lesser of the two values, leaving the
software system eventually valueless
✔The first value of software is its behavior. Programmers are hired to make
machines behave in a way that makes or saves money for the
stakeholders.
✔We do this by helping the stakeholders develop a functional specification,
or requirements document. Then we write the code that causes the
stakeholder’s requirements document. Then we write the code that
causes the stakeholder’s machines to satisfy those requirements.
✔When the machine violates those requirements, programmers get their
debuggers out and fix the problem.
Behavior
✔ Many programmers believe that is the entirety of their job.
✔ They believe their job is to make the machine implement the requirements
and to fix any bugs.
They are sadly mistaken.
Behavior
Architecture
✔ Software was invented to be “soft.” It was intended to be a way to easily
change the behavior of machines. If we’d wanted the behavior of machines to
be hard to change, we would have called it hardware.
▪ To fulfill its purpose, software must be soft—that is, it must be easy to change.
✔ When the stakeholders change their minds about a feature, that change should
be simple and easy to make.
✔ The difficulty in making such a change should be proportional only to the
scope of the change, and not to the shape of the change.
ware
Soft
Architecture
✔ From the stakeholders’ point of view, they are simply providing a stream of
changes of roughly similar scope.
✔ From the developers’ point of view, the stakeholders are giving them a stream
of jigsaw puzzle pieces that they must fit into a puzzle of ever-increasing
complexity.
▪ Each new request is harder to fit than the last, because the shape of the system does not
match the shape of the request.
✔ Software developers often feel as if they are forced to jam square pegs into
round holes.
✔ Function or architecture? Which of these two provides the greater value?
1. Is it more important for the software system to work
2. Or is it more important for the software system to be easy to change?
✔ Let’s examine extreme cases to decide.
▪ If you give me a program that works perfectly but is impossible to change, then it won’t work
when the requirements change, and I won’t be able to make it work. Therefore the program will
become useless.
▪ If you give me a program that does not work but is easy to change, then I can make it work,
and keep it working as requirements change. Therefore the program will remain continually
useful.
The Greater Value
✔ You may not find this argument convincing. After all, there’s no such thing as a
program that is impossible to change. However, there are systems that are
practically impossible to change
▪ Because the cost of change exceeds the benefit of change.
✔ Many systems reach that point in some of their features or configurations. If
you ask the business managers if they want to be able to make changes, they’ll
say that of course they do
▪ but may then qualify their answer by noting that the current functionality is more important
than any later flexibility.
The Greater Value
✔ In contrast, if the business managers ask you for a change, and your
estimated costs for that change are unaffordably high, the business
managers will likely be furious that you allowed the system to get to the point
where the change was impractical.
The Greater Value
Case Study
✔ As an example, consider the following case study. It includes real data from a
real company that wishes to remain anonymous.
✔ First, let’s look at the growth of the engineering staff. I’m sure you’ll agree that
this trend is very encouraging.
✔ Growth like that shown in the below figure must be an indication of significant
success!
Case Study
✔ Now let’s look at the company’s productivity over the same time period, as
measured by simple lines of code
Case Study
✔ Now here’s the really scary graph it shows how the cost per line of code has
changed over time.
✔ These trends aren’t sustainable. It doesn’t matter how profitable the company
might be at the moment: Those curves will catastrophically drain the profit
from the business model and drive the company into a stall, if not into a
downright collapse.
What caused this remarkable change in productivity? Why was the code 40 times more
expensive to produce in release 8 as opposed to release 1?
THE SIGNATURE OF A MESS
✔ What you are looking at is the signature of a mess.
1. When systems are thrown together in a hurry
2. When the sheer number of programmers is the sole driver of output
3. When little or no thought is given to the cleanliness of the code or the structure of the design, then
you can bank on riding this curve to its ugly end.
Developers View
✔ They started out at nearly 100% productivity, but with each release their
productivity declined.
✔ By the fourth release, it was clear that their productivity was going to bottom
out in an asymptotic approach to zero.
✔ From the developers’ point of view, this is tremendously frustrating, because
everyone is working hard.
• Nobody has decreased their effort. And yet, despite all their heroics, overtime, and
dedication, they simply aren’t getting much of anything done anymore.
• All their effort has been diverted away from features and is now consumed with managing
the mess.
Management View
✔ If you think that’s bad, imagine what this picture looks like to the executives!
✔ But now compare the curve in Figure with the lines of code written per release.
That initial few hundred thousand dollars per month bought a lot of
functionality—but the final $20 million bought almost nothing! Any CFO would
look at these two graphs and know that immediate action is necessary to
stave off disaster.
Eisenhower’s Matrix
“I have two kinds of problems, the urgent and the
important.
The urgent are not important, and the important are
never urgent”
Eisenhower’s Matrix
Structural,
Strategic
Behaviour,
Tactical
Eisenhower’s Matrix, interpretation on software development
1 2
3 4
21
Before the fight for the quality of architecture
How to be prepared for the journey?
1 2
3 4
Strategic,
Architecture
Quality Attr.
22
Understanding the important part
1
Company
values
2
23
Understanding the Journey
1
3
Strategic,
Architecture
Quality Attr.
Evolutionary
Fight for the architecture
Developers Managers
Fight for the architecture
✔ Fulfilling this responsibility means wading into a fight—or perhaps a
better word is “struggle.” Frankly, that’s always the way these things are
done.
✔ The development team has to struggle for what they believe to be best
for the company, and so do the management team, and the marketing
team, and the sales team, and the operations team. It’s always a
struggle.
Fight for the architecture
✔ Effective software development teams tackle that struggle head on. They
unabashedly squabble with all the other stakeholders as equals. Remember,
as a software developer, you are a stakeholder. You have a stake in the
software that you need to safeguard.
That’s part of your role, and part of your duty. And it’s a big part of why you were
hired.
✔ Just remember: If architecture comes last, then the system will become ever
more costly to develop, and eventually change will become practically
impossible for part or all of the system. If that is allowed to happen, it means
the software development team did not fight hard enough for what they knew
was necessary.
Fight for the architecture
Software
Summary
✔ Behavior
✔ Architecture
✔ The Greater Value
✔ Use Case
✔ Eisenhower’s Matrix
✔ Fight for the architecture
Présentation Groupe – nov. 2015 30
31
Questions
References
32
✔ “Clean Architecture” by Robert C. Martin (Uncle BOB)
▪ CH 1# WHAT IS DESIGN AND ARCHITECTURE?
▪ CH 2# A TALE OF TWO VALUES
References
33
✔ https://en.wikipedia.org/wiki/List_of_failed_and_overbudget_custom_software_projec
ts#Permanent_failures
34
Thank you

More Related Content

Similar to Fight for the quality of architecture against delivery - JobStack Cegedim

Why it's time to rethink your approach to Enterprise Architecture
Why it's time to rethink your approach to Enterprise ArchitectureWhy it's time to rethink your approach to Enterprise Architecture
Why it's time to rethink your approach to Enterprise ArchitectureLeanIX GmbH
 
Sales Plays to Exceed Quota and Close Out This Year Strong
Sales Plays to Exceed Quota and Close Out This Year StrongSales Plays to Exceed Quota and Close Out This Year Strong
Sales Plays to Exceed Quota and Close Out This Year StrongSales Hacker
 
recapitulando: de métodos ágeis até lean startup
recapitulando: de métodos ágeis até lean startuprecapitulando: de métodos ágeis até lean startup
recapitulando: de métodos ágeis até lean startupPedro Axelrud
 
Managing Change Process
Managing Change ProcessManaging Change Process
Managing Change ProcessRichard Docc
 
Alternatives to scaling your agile process: valuing outcomes over output
Alternatives to scaling your agile process: valuing outcomes over outputAlternatives to scaling your agile process: valuing outcomes over output
Alternatives to scaling your agile process: valuing outcomes over outputAgileNZ Conference
 
Alternatives to scaling your agile process: valuing outcomes over output
Alternatives to scaling your agile process: valuing outcomes over outputAlternatives to scaling your agile process: valuing outcomes over output
Alternatives to scaling your agile process: valuing outcomes over outputEdwin Dando
 
0 for 3: Edtech Startup Lessons Learned
0 for 3: Edtech Startup Lessons Learned0 for 3: Edtech Startup Lessons Learned
0 for 3: Edtech Startup Lessons LearnedSeriousGamesAssoc
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startupsOleg Podsechin
 
Immutable Principles Of Project Management (V7 Final Cmu)
Immutable Principles Of Project Management (V7 Final Cmu)Immutable Principles Of Project Management (V7 Final Cmu)
Immutable Principles Of Project Management (V7 Final Cmu)Glen Alleman
 
Unit 6- Development Evolution model
Unit 6- Development Evolution model Unit 6- Development Evolution model
Unit 6- Development Evolution model arvind pandey
 
Improving software quality for the future of connected vehicles
Improving software quality for the future of connected vehiclesImproving software quality for the future of connected vehicles
Improving software quality for the future of connected vehiclesDevon Bleibtrey
 
How to efficiently build great products in a startup
How to efficiently build great products in a startupHow to efficiently build great products in a startup
How to efficiently build great products in a startupRoger Dudler
 
From Prototype to MVP (case study)
From Prototype to MVP (case study)From Prototype to MVP (case study)
From Prototype to MVP (case study)Sergey Sundukovskiy
 
Scaling Software Delivery.pdf
Scaling Software Delivery.pdfScaling Software Delivery.pdf
Scaling Software Delivery.pdfTiffany Jachja
 
Approaches for Distributed Agile
Approaches for Distributed AgileApproaches for Distributed Agile
Approaches for Distributed AgileBrad Kaufman
 
Releasing Software Without Testing Team
Releasing Software Without Testing TeamReleasing Software Without Testing Team
Releasing Software Without Testing TeamAkshay Mathur
 
WinSmart Technologies
WinSmart TechnologiesWinSmart Technologies
WinSmart Technologiesbijunairk
 
Maintenance Technical Debt
Maintenance Technical DebtMaintenance Technical Debt
Maintenance Technical DebtGlobant
 

Similar to Fight for the quality of architecture against delivery - JobStack Cegedim (20)

Why it's time to rethink your approach to Enterprise Architecture
Why it's time to rethink your approach to Enterprise ArchitectureWhy it's time to rethink your approach to Enterprise Architecture
Why it's time to rethink your approach to Enterprise Architecture
 
Sales Plays to Exceed Quota and Close Out This Year Strong
Sales Plays to Exceed Quota and Close Out This Year StrongSales Plays to Exceed Quota and Close Out This Year Strong
Sales Plays to Exceed Quota and Close Out This Year Strong
 
recapitulando: de métodos ágeis até lean startup
recapitulando: de métodos ágeis até lean startuprecapitulando: de métodos ágeis até lean startup
recapitulando: de métodos ágeis até lean startup
 
Managing Change Process
Managing Change ProcessManaging Change Process
Managing Change Process
 
Alternatives to scaling your agile process: valuing outcomes over output
Alternatives to scaling your agile process: valuing outcomes over outputAlternatives to scaling your agile process: valuing outcomes over output
Alternatives to scaling your agile process: valuing outcomes over output
 
Alternatives to scaling your agile process: valuing outcomes over output
Alternatives to scaling your agile process: valuing outcomes over outputAlternatives to scaling your agile process: valuing outcomes over output
Alternatives to scaling your agile process: valuing outcomes over output
 
0 for 3: Edtech Startup Lessons Learned
0 for 3: Edtech Startup Lessons Learned0 for 3: Edtech Startup Lessons Learned
0 for 3: Edtech Startup Lessons Learned
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startups
 
Immutable Principles Of Project Management (V7 Final Cmu)
Immutable Principles Of Project Management (V7 Final Cmu)Immutable Principles Of Project Management (V7 Final Cmu)
Immutable Principles Of Project Management (V7 Final Cmu)
 
Unit 6- Development Evolution model
Unit 6- Development Evolution model Unit 6- Development Evolution model
Unit 6- Development Evolution model
 
Agile software process
Agile software processAgile software process
Agile software process
 
Improving software quality for the future of connected vehicles
Improving software quality for the future of connected vehiclesImproving software quality for the future of connected vehicles
Improving software quality for the future of connected vehicles
 
How to efficiently build great products in a startup
How to efficiently build great products in a startupHow to efficiently build great products in a startup
How to efficiently build great products in a startup
 
From Prototype to MVP (case study)
From Prototype to MVP (case study)From Prototype to MVP (case study)
From Prototype to MVP (case study)
 
Scaling Software Delivery.pdf
Scaling Software Delivery.pdfScaling Software Delivery.pdf
Scaling Software Delivery.pdf
 
Approaches for Distributed Agile
Approaches for Distributed AgileApproaches for Distributed Agile
Approaches for Distributed Agile
 
Releasing Software Without Testing Team
Releasing Software Without Testing TeamReleasing Software Without Testing Team
Releasing Software Without Testing Team
 
Agile development
Agile developmentAgile development
Agile development
 
WinSmart Technologies
WinSmart TechnologiesWinSmart Technologies
WinSmart Technologies
 
Maintenance Technical Debt
Maintenance Technical DebtMaintenance Technical Debt
Maintenance Technical Debt
 

More from Mohamed Samir

An evaluation of FaaS platforms as a foundation for serverless big data proce...
An evaluation of FaaS platforms as a foundation for serverless big data proce...An evaluation of FaaS platforms as a foundation for serverless big data proce...
An evaluation of FaaS platforms as a foundation for serverless big data proce...Mohamed Samir
 
Serverless Computing Model
Serverless Computing ModelServerless Computing Model
Serverless Computing ModelMohamed Samir
 

More from Mohamed Samir (8)

An evaluation of FaaS platforms as a foundation for serverless big data proce...
An evaluation of FaaS platforms as a foundation for serverless big data proce...An evaluation of FaaS platforms as a foundation for serverless big data proce...
An evaluation of FaaS platforms as a foundation for serverless big data proce...
 
Serverless Computing Model
Serverless Computing ModelServerless Computing Model
Serverless Computing Model
 
Session 6#
Session 6#Session 6#
Session 6#
 
Session 5#
Session 5#Session 5#
Session 5#
 
Session 4#
Session 4#Session 4#
Session 4#
 
Session 3#
Session 3#Session 3#
Session 3#
 
Session#2
Session#2Session#2
Session#2
 
Session#1
Session#1Session#1
Session#1
 

Recently uploaded

WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2
 
Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2WSO2
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2
 
WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2
 

Recently uploaded (20)

WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
 
WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital Businesses
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AI
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 

Fight for the quality of architecture against delivery - JobStack Cegedim

  • 1. Fight for the quality of architecture against delivery
  • 2. MEET THE SPEAKERS ✔ Mohamed Samir Senior Software Engineer ✔ Hithem Ahmed CTO Présentation Groupe – nov. 2015 2
  • 3. AGENDA ✔ Introduction ✔ Behavior ✔ Architecture ✔ The Greater Value ✔ Use Case ✔ Eisenhower’s Matrix ✔ Fight for the architecture ✔ Questions Présentation Groupe – nov. 2015 3
  • 4. Introduction ✔ Every software system provides two different values to the stakeholders: ▪ Behavior ▪ Structure ✔ Software developers are responsible for ensuring that both those values remain high. ✔ Unfortunately, they often focus on one to the exclusion of the other. ▪ Even more unfortunately, they often focus on the lesser of the two values, leaving the software system eventually valueless
  • 5. ✔The first value of software is its behavior. Programmers are hired to make machines behave in a way that makes or saves money for the stakeholders. ✔We do this by helping the stakeholders develop a functional specification, or requirements document. Then we write the code that causes the stakeholder’s requirements document. Then we write the code that causes the stakeholder’s machines to satisfy those requirements. ✔When the machine violates those requirements, programmers get their debuggers out and fix the problem. Behavior
  • 6. ✔ Many programmers believe that is the entirety of their job. ✔ They believe their job is to make the machine implement the requirements and to fix any bugs. They are sadly mistaken. Behavior
  • 7. Architecture ✔ Software was invented to be “soft.” It was intended to be a way to easily change the behavior of machines. If we’d wanted the behavior of machines to be hard to change, we would have called it hardware. ▪ To fulfill its purpose, software must be soft—that is, it must be easy to change. ✔ When the stakeholders change their minds about a feature, that change should be simple and easy to make. ✔ The difficulty in making such a change should be proportional only to the scope of the change, and not to the shape of the change. ware Soft
  • 8. Architecture ✔ From the stakeholders’ point of view, they are simply providing a stream of changes of roughly similar scope. ✔ From the developers’ point of view, the stakeholders are giving them a stream of jigsaw puzzle pieces that they must fit into a puzzle of ever-increasing complexity. ▪ Each new request is harder to fit than the last, because the shape of the system does not match the shape of the request. ✔ Software developers often feel as if they are forced to jam square pegs into round holes.
  • 9. ✔ Function or architecture? Which of these two provides the greater value? 1. Is it more important for the software system to work 2. Or is it more important for the software system to be easy to change? ✔ Let’s examine extreme cases to decide. ▪ If you give me a program that works perfectly but is impossible to change, then it won’t work when the requirements change, and I won’t be able to make it work. Therefore the program will become useless. ▪ If you give me a program that does not work but is easy to change, then I can make it work, and keep it working as requirements change. Therefore the program will remain continually useful. The Greater Value
  • 10. ✔ You may not find this argument convincing. After all, there’s no such thing as a program that is impossible to change. However, there are systems that are practically impossible to change ▪ Because the cost of change exceeds the benefit of change. ✔ Many systems reach that point in some of their features or configurations. If you ask the business managers if they want to be able to make changes, they’ll say that of course they do ▪ but may then qualify their answer by noting that the current functionality is more important than any later flexibility. The Greater Value
  • 11. ✔ In contrast, if the business managers ask you for a change, and your estimated costs for that change are unaffordably high, the business managers will likely be furious that you allowed the system to get to the point where the change was impractical. The Greater Value
  • 12. Case Study ✔ As an example, consider the following case study. It includes real data from a real company that wishes to remain anonymous. ✔ First, let’s look at the growth of the engineering staff. I’m sure you’ll agree that this trend is very encouraging. ✔ Growth like that shown in the below figure must be an indication of significant success!
  • 13. Case Study ✔ Now let’s look at the company’s productivity over the same time period, as measured by simple lines of code
  • 14. Case Study ✔ Now here’s the really scary graph it shows how the cost per line of code has changed over time. ✔ These trends aren’t sustainable. It doesn’t matter how profitable the company might be at the moment: Those curves will catastrophically drain the profit from the business model and drive the company into a stall, if not into a downright collapse. What caused this remarkable change in productivity? Why was the code 40 times more expensive to produce in release 8 as opposed to release 1?
  • 15. THE SIGNATURE OF A MESS ✔ What you are looking at is the signature of a mess. 1. When systems are thrown together in a hurry 2. When the sheer number of programmers is the sole driver of output 3. When little or no thought is given to the cleanliness of the code or the structure of the design, then you can bank on riding this curve to its ugly end.
  • 16. Developers View ✔ They started out at nearly 100% productivity, but with each release their productivity declined. ✔ By the fourth release, it was clear that their productivity was going to bottom out in an asymptotic approach to zero. ✔ From the developers’ point of view, this is tremendously frustrating, because everyone is working hard. • Nobody has decreased their effort. And yet, despite all their heroics, overtime, and dedication, they simply aren’t getting much of anything done anymore. • All their effort has been diverted away from features and is now consumed with managing the mess.
  • 17. Management View ✔ If you think that’s bad, imagine what this picture looks like to the executives! ✔ But now compare the curve in Figure with the lines of code written per release. That initial few hundred thousand dollars per month bought a lot of functionality—but the final $20 million bought almost nothing! Any CFO would look at these two graphs and know that immediate action is necessary to stave off disaster.
  • 18. Eisenhower’s Matrix “I have two kinds of problems, the urgent and the important. The urgent are not important, and the important are never urgent”
  • 21. 21 Before the fight for the quality of architecture How to be prepared for the journey? 1 2 3 4
  • 24. Fight for the architecture Developers Managers
  • 25. Fight for the architecture ✔ Fulfilling this responsibility means wading into a fight—or perhaps a better word is “struggle.” Frankly, that’s always the way these things are done. ✔ The development team has to struggle for what they believe to be best for the company, and so do the management team, and the marketing team, and the sales team, and the operations team. It’s always a struggle.
  • 26. Fight for the architecture ✔ Effective software development teams tackle that struggle head on. They unabashedly squabble with all the other stakeholders as equals. Remember, as a software developer, you are a stakeholder. You have a stake in the software that you need to safeguard. That’s part of your role, and part of your duty. And it’s a big part of why you were hired. ✔ Just remember: If architecture comes last, then the system will become ever more costly to develop, and eventually change will become practically impossible for part or all of the system. If that is allowed to happen, it means the software development team did not fight hard enough for what they knew was necessary.
  • 27. Fight for the architecture Software
  • 28. Summary ✔ Behavior ✔ Architecture ✔ The Greater Value ✔ Use Case ✔ Eisenhower’s Matrix ✔ Fight for the architecture Présentation Groupe – nov. 2015 30
  • 30. References 32 ✔ “Clean Architecture” by Robert C. Martin (Uncle BOB) ▪ CH 1# WHAT IS DESIGN AND ARCHITECTURE? ▪ CH 2# A TALE OF TWO VALUES