SlideShare a Scribd company logo
Adaptable Designs for
Agile Software Development
Hayim Makabee
http://EffectiveSoftwareDesign.com
My life in logos:
Education:
Experience:
Agile Software Development
 Iterative, Incremental
 Example: Scrum
Build-Measure-Learn
 Build-Measure-Learn feedback loop:
Building a Pyramid
Incrementally (Wrong)
Building a Pyramid
Incrementally (Right)
Minimum Viable Product
(MVP)
The MVP is the “version
of a new product which
allows a team to collect
the maximum amount of
validated learning about
customers with the least
effort.”
The MVP should have
the core features which
allow it to be deployed to
real customers to get
initial feedback, but not
more.
Building a MVP
Adaptability
 “A system that can cope readily with
a wide range of requirements, will,
all other things being equal, have an
advantage over one that cannot. Such
a system can allow unexpected
requirements to be met with little or
no reengineering, and allow its more
skilled customers to rapidly address
novel challenges.” - Brian Foote and
Joseph Yoder – “Big Ball of Mud”
New development mindset
 Instead of planning for software
development, plan for software
evolution.
Adaptable Design
 Adaptable Software Design: A generic
software design for a family of
systems which does not need to be
changed to accommodate new
requirements.
Manifesto for
Agile Software Development
Individuals and interactions over
processes and tools
Working software over
comprehensive documentation
Customer collaboration over
contract negotiation
Responding to change over
following a plan
Manifesto for
Adaptable Software
Development
Experimentation instead of
Specification
Evolution instead of Implementation
Adaptation instead of Modification
Extension instead of Growth
Experimentation instead of
Specification
 Traditional software development:
◦ Detailed specification of system
requirements, functional and non-
functional.
 Modern software development:
◦ Allows the discovery of requirements
through experimentation.
Evolution instead of
Implementation
 Traditional software development:
◦ Focuses on the prioritized implementation
of features according to specified
requirements.
 Modern software development:
◦ Allows the constant evolution of the
system’s functionality to meet the
dynamically varying customer needs.
Adaptation instead of
Modification
 Traditional software development:
◦ The code must be modified in order to
meet changing requirements.
 Modern software development:
◦ Allows the existing code base to be easily
adapted to satisfy any change in
requirements.
Extension instead of Growth
 Traditional software development:
◦ The system must grow in order to
accommodate additional requirements.
 Modern software development:
◦ Allows the easy extension of the system’s
functionality through modular features.
Architectural needs
 The Software Architecture must
support:
◦ Experimentation
◦ Evolution
◦ Adaptation
◦ Extension
 If the Software Architecture is not
adaptable, the Agile process will fail.
 Consequences: Increasing Technical
Debt, endless Refactoring.
SOA Principles
1. Standardized Service Contracts
2. Service Loose Coupling
3. Service Abstraction
4. Service Reusability
5. Service Autonomy
6. Service Statelessness
7. Service Discoverability
8. Service Composability
9. Service Interoperability
Microservices Practices (I)
1. Separated Build:
◦ Each Microservice is built independently
and has its own version.
2. Independent Deployment:
◦ Each Microservice may be deployed
without affecting the others.
3. Separated Data Stores:
◦ Microservices should not share data stores.
4. Independence of Platform:
◦ Microservices should be deployed in
containers.
Microservices Practices (II)
5. Individual Technology Choice:
◦ Each Microservice may be implemented
using a different technology.
6. Confinement of Failure:
◦ If a failure occurs in a particular
Microservice it should not propagate to
the other ones.
7. Independent Scalability:
◦ It should be possible to scale each
Microservice independently of the others.
Conclusions
 Software systems must evolve over
time.
 Evolution must be planned and
supported by Adaptable Software
Designs.
 Adaptable Software Development:
◦ Experimentation instead of Specification
◦ Evolution instead of Implementation
◦ Adaptation instead of Modification
◦ Extension instead of Growth
Adaptability & Evolution
“It is not the
strongest of the
species that
survives, nor the
most intelligent that
survives. It is the
one that is the
most adaptable to
change.”
Charles Darwin
Thanks!
Q&A
http://EffectiveSoftwareDesign.com

More Related Content

What's hot (20)

PDF
Sterling Barton Movemements of a Hypnotic Nature
Brent Barton
 
PPTX
Agile development
JoshuaU1
 
PPTX
Invincible React States with Domain Driven Design
Prateek
 
PPTX
Architecture In An Agile World
James Cooper
 
PPT
Lean Implementation of Organizational Process Focus (OPF) and Risk Management...
aamahdys
 
PPTX
Refactoring, Emergent Design & Evolutionary Architecture
Brad Appleton
 
PDF
What a Good Software Architect Does
Eberhard Wolff
 
PPTX
Software Quality assurance Introduction & Software process models
JesminBinti
 
PPTX
Software development philosophies v1
Praveen Nair
 
PDF
Agile Software Development Approaches
dcsunu
 
PPT
OO Development 2 - Software Development Methodologies
Randy Connolly
 
PPTX
Evolution of Software Engineering in NCTR Projects
Mohammed Abbas
 
PPTX
Large Scale Software Project
Return on Intelligence
 
PDF
Agile Introduction for newbies by Arokia S Armel
Xebia IT Architects
 
PPT
software lecture
Rabia Khalid
 
PDF
Design Sprints for Enterprises - Go weekly
Go Weekly
 
PPT
Unit 1 sepm introduction to software
KanchanPatil34
 
PPT
Agile Development Ultimate Slides
gilashikwa
 
PPT
Ch01
guestf402c5
 
PPT
Best Practices - Software Engineering
3Quill Softwares
 
Sterling Barton Movemements of a Hypnotic Nature
Brent Barton
 
Agile development
JoshuaU1
 
Invincible React States with Domain Driven Design
Prateek
 
Architecture In An Agile World
James Cooper
 
Lean Implementation of Organizational Process Focus (OPF) and Risk Management...
aamahdys
 
Refactoring, Emergent Design & Evolutionary Architecture
Brad Appleton
 
What a Good Software Architect Does
Eberhard Wolff
 
Software Quality assurance Introduction & Software process models
JesminBinti
 
Software development philosophies v1
Praveen Nair
 
Agile Software Development Approaches
dcsunu
 
OO Development 2 - Software Development Methodologies
Randy Connolly
 
Evolution of Software Engineering in NCTR Projects
Mohammed Abbas
 
Large Scale Software Project
Return on Intelligence
 
Agile Introduction for newbies by Arokia S Armel
Xebia IT Architects
 
software lecture
Rabia Khalid
 
Design Sprints for Enterprises - Go weekly
Go Weekly
 
Unit 1 sepm introduction to software
KanchanPatil34
 
Agile Development Ultimate Slides
gilashikwa
 
Best Practices - Software Engineering
3Quill Softwares
 

Similar to Adaptable Designs for Agile Software Development (20)

DOCX
Software development life cycle
Afrasiyab Haider
 
PDF
Accelerating App Development with OutSystems
Damco Solutions
 
PPTX
agile modeling in project management.pptx
RahatUllah55
 
PPTX
Sofware Engineering LECTURE COMPUTER SCIENCE.pptx
rafaelvillena39
 
PDF
Why MVP Development Matters Creating User-Centric Products?
Amplework Software Pvt. Ltd.
 
PDF
Different Methodologies Used By Programming Teams
Nicole Gomez
 
PPTX
First Step in AI and DevOps --- Chapter 1.pptx
SanaRizwan21
 
PPT
Introduction to Software Engineering
Sibel Kuzgun AKIN
 
PPTX
Software EngineeringPPT____________.pptx
443PVamsiKrishna
 
PPT
IBM Bluemix Openwhisk
Sonia Baratas Alves
 
PPT
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
OpenWhisk
 
PPT
Software Engineering (Introduction to Software Engineering)
ShudipPal
 
PPTX
20CS4103 SE UNIT 1-1.pptx software engineering
shreeabinaya413
 
PDF
DevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems
 
PPT
ch2_processmodels.pptjjgjuuuuugffyuijhgff
kashafishfaq21
 
PPTX
Software Process Models - Types - Explanations.pptx
devhamnah
 
PPTX
Software engineering-Light presentation
BadrKacimi
 
PPT
Intoduction to software engineering part 1
Rupesh Vaishnav
 
PDF
Dev ops lpi-701
Radhouen Assakra
 
PDF
4. ch 3-agile process
Delowar hossain
 
Software development life cycle
Afrasiyab Haider
 
Accelerating App Development with OutSystems
Damco Solutions
 
agile modeling in project management.pptx
RahatUllah55
 
Sofware Engineering LECTURE COMPUTER SCIENCE.pptx
rafaelvillena39
 
Why MVP Development Matters Creating User-Centric Products?
Amplework Software Pvt. Ltd.
 
Different Methodologies Used By Programming Teams
Nicole Gomez
 
First Step in AI and DevOps --- Chapter 1.pptx
SanaRizwan21
 
Introduction to Software Engineering
Sibel Kuzgun AKIN
 
Software EngineeringPPT____________.pptx
443PVamsiKrishna
 
IBM Bluemix Openwhisk
Sonia Baratas Alves
 
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
OpenWhisk
 
Software Engineering (Introduction to Software Engineering)
ShudipPal
 
20CS4103 SE UNIT 1-1.pptx software engineering
shreeabinaya413
 
DevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems
 
ch2_processmodels.pptjjgjuuuuugffyuijhgff
kashafishfaq21
 
Software Process Models - Types - Explanations.pptx
devhamnah
 
Software engineering-Light presentation
BadrKacimi
 
Intoduction to software engineering part 1
Rupesh Vaishnav
 
Dev ops lpi-701
Radhouen Assakra
 
4. ch 3-agile process
Delowar hossain
 
Ad

More from Hayim Makabee (20)

PDF
Movie Quotes Search Engine Industrial Project
Hayim Makabee
 
PPTX
Managing your Reputation
Hayim Makabee
 
PPTX
Applications of Machine Learning - INDT Webinar
Hayim Makabee
 
PPTX
Applications of Machine Learning
Hayim Makabee
 
PPTX
Blue Ocean Strategy: KashKlik Use Case
Hayim Makabee
 
PPTX
Managing your Reputation Gvahim Webinar
Hayim Makabee
 
PPTX
Explainable Machine Learning (Explainable ML)
Hayim Makabee
 
PPTX
Automated Machine Learning (Auto ML)
Hayim Makabee
 
PPTX
Managing your Reputation
Hayim Makabee
 
PPTX
The Story of a Young Oleh (Immigrant in Israel)
Hayim Makabee
 
PPTX
Applications of Machine Learning
Hayim Makabee
 
PPTX
Antifragile Software Design
Hayim Makabee
 
PDF
To document or not to document? An exploratory study on developers' motivatio...
Hayim Makabee
 
PPTX
The SOLID Principles Illustrated by Design Patterns
Hayim Makabee
 
PPTX
Aliyah: Looking for a hi-tech job in Israel
Hayim Makabee
 
PPTX
The Role of the Software Architect (short version)
Hayim Makabee
 
PPTX
Software Quality Attributes
Hayim Makabee
 
PPTX
The Role of the Software Architect
Hayim Makabee
 
PDF
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Hayim Makabee
 
PPTX
Reducing Technical Debt
Hayim Makabee
 
Movie Quotes Search Engine Industrial Project
Hayim Makabee
 
Managing your Reputation
Hayim Makabee
 
Applications of Machine Learning - INDT Webinar
Hayim Makabee
 
Applications of Machine Learning
Hayim Makabee
 
Blue Ocean Strategy: KashKlik Use Case
Hayim Makabee
 
Managing your Reputation Gvahim Webinar
Hayim Makabee
 
Explainable Machine Learning (Explainable ML)
Hayim Makabee
 
Automated Machine Learning (Auto ML)
Hayim Makabee
 
Managing your Reputation
Hayim Makabee
 
The Story of a Young Oleh (Immigrant in Israel)
Hayim Makabee
 
Applications of Machine Learning
Hayim Makabee
 
Antifragile Software Design
Hayim Makabee
 
To document or not to document? An exploratory study on developers' motivatio...
Hayim Makabee
 
The SOLID Principles Illustrated by Design Patterns
Hayim Makabee
 
Aliyah: Looking for a hi-tech job in Israel
Hayim Makabee
 
The Role of the Software Architect (short version)
Hayim Makabee
 
Software Quality Attributes
Hayim Makabee
 
The Role of the Software Architect
Hayim Makabee
 
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Hayim Makabee
 
Reducing Technical Debt
Hayim Makabee
 
Ad

Recently uploaded (20)

PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PDF
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PPTX
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PDF
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PDF
Adobe Premiere Pro Crack / Full Version / Free Download
hashhshs786
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PDF
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Adobe Premiere Pro Crack / Full Version / Free Download
hashhshs786
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 

Adaptable Designs for Agile Software Development

  • 1. Adaptable Designs for Agile Software Development Hayim Makabee http://EffectiveSoftwareDesign.com
  • 2. My life in logos: Education: Experience:
  • 3. Agile Software Development  Iterative, Incremental  Example: Scrum
  • 7. Minimum Viable Product (MVP) The MVP is the “version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort.” The MVP should have the core features which allow it to be deployed to real customers to get initial feedback, but not more.
  • 9. Adaptability  “A system that can cope readily with a wide range of requirements, will, all other things being equal, have an advantage over one that cannot. Such a system can allow unexpected requirements to be met with little or no reengineering, and allow its more skilled customers to rapidly address novel challenges.” - Brian Foote and Joseph Yoder – “Big Ball of Mud”
  • 10. New development mindset  Instead of planning for software development, plan for software evolution.
  • 11. Adaptable Design  Adaptable Software Design: A generic software design for a family of systems which does not need to be changed to accommodate new requirements.
  • 12. Manifesto for Agile Software Development Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
  • 13. Manifesto for Adaptable Software Development Experimentation instead of Specification Evolution instead of Implementation Adaptation instead of Modification Extension instead of Growth
  • 14. Experimentation instead of Specification  Traditional software development: ◦ Detailed specification of system requirements, functional and non- functional.  Modern software development: ◦ Allows the discovery of requirements through experimentation.
  • 15. Evolution instead of Implementation  Traditional software development: ◦ Focuses on the prioritized implementation of features according to specified requirements.  Modern software development: ◦ Allows the constant evolution of the system’s functionality to meet the dynamically varying customer needs.
  • 16. Adaptation instead of Modification  Traditional software development: ◦ The code must be modified in order to meet changing requirements.  Modern software development: ◦ Allows the existing code base to be easily adapted to satisfy any change in requirements.
  • 17. Extension instead of Growth  Traditional software development: ◦ The system must grow in order to accommodate additional requirements.  Modern software development: ◦ Allows the easy extension of the system’s functionality through modular features.
  • 18. Architectural needs  The Software Architecture must support: ◦ Experimentation ◦ Evolution ◦ Adaptation ◦ Extension  If the Software Architecture is not adaptable, the Agile process will fail.  Consequences: Increasing Technical Debt, endless Refactoring.
  • 19. SOA Principles 1. Standardized Service Contracts 2. Service Loose Coupling 3. Service Abstraction 4. Service Reusability 5. Service Autonomy 6. Service Statelessness 7. Service Discoverability 8. Service Composability 9. Service Interoperability
  • 20. Microservices Practices (I) 1. Separated Build: ◦ Each Microservice is built independently and has its own version. 2. Independent Deployment: ◦ Each Microservice may be deployed without affecting the others. 3. Separated Data Stores: ◦ Microservices should not share data stores. 4. Independence of Platform: ◦ Microservices should be deployed in containers.
  • 21. Microservices Practices (II) 5. Individual Technology Choice: ◦ Each Microservice may be implemented using a different technology. 6. Confinement of Failure: ◦ If a failure occurs in a particular Microservice it should not propagate to the other ones. 7. Independent Scalability: ◦ It should be possible to scale each Microservice independently of the others.
  • 22. Conclusions  Software systems must evolve over time.  Evolution must be planned and supported by Adaptable Software Designs.  Adaptable Software Development: ◦ Experimentation instead of Specification ◦ Evolution instead of Implementation ◦ Adaptation instead of Modification ◦ Extension instead of Growth
  • 23. Adaptability & Evolution “It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change.” Charles Darwin