nimble framework - software architecture and design in agile era
TRANSCRIPT
Nimble Framework -
Software architecture & design in agile
era
Tushar Jain
Tushar Jain
NameTushar Jain
Current LocationSilicon Valley,
CA, USA
People & Software
Expertise
Quick DescriptionAgile, Lean, and
Software Architecture
Contact point http://agileanswer.blogspot.com [email protected] @tjain
We will be talking about
How to create software
architecture in an agile environment?
Tushar Jain
We will NOT be talking about
• What is a good software architecture?
• Technologies
Tushar Jain
Tushar Jain
Tushar Jain
Move Fast
Tushar Jain
Principles
Pushpagiri: http://webhoststar.blogspot.com
Tushar Jain
Principles• Simplicity of system with current and
immediate future function and non-functional requirement.
• Intellectually Relaxed: Things/concept must be understood by a large community.• Stackable: Things must be able to act as building blocks in a larger and/or a complex system.• Predictable/Reliable: Things must be highly predictable and reliable to ensure consistency.• High Performance or value/cost: Value delivered and cost incurred (in terms of money, time and intellectual stress) must be sufficiently high to make it attractive Tushar
Jain
Principles• Collective ownership of architecture,
design, code and other artifacts• Software is a result of human interactions and shared
understanding
• Never commit unless you know why• Should address uncertainty, not justify procrastination
Tushar Jain
Principles• Evolution does not cease
• Today’s best practice is tomorrow’s technical debt• We as human beings do not have luxury of time as
evolution in the biological world have. To overcome time handicap, directed evolution is preferred.
• No one escapes curse of entropy unless directed efforts
• Technical debt is a reality• Due to dynamic nature of the environment efforts are
needed to direct evolution but not everything is in control
Tushar Jain
Principles• Reasoning over rituals
• Every rituals must have foundation in reasoning• Over the time period rituals drift away from reasoning
• Software is not the end in itself, it’s just a mean for business objectives
• Software is there to help the business to run; operating software is not the business
Tushar Jain
Thought Layers
Nalanda: https://en.wikipedia.org/wiki/Nalanda
Tushar Jain
Can we follow a set of processes to create
software architecture?NOTushar
Jain
Can we follow a set process to create software
architecture?NOWhy?
Every one is different
Then?
No Processe
sGuideline
s
but
I like to call these guidelines
as thought layers
• Thought Layer 1: Framework
• Thought Layer 2: Techniques
• Thought Layer 3: Patterns
Work need to be performed by foot
soldiers not by ivory tower politicians &
managers
Thought Layer 1: Framework• Align yourself with enterprise
/product family architecture/enterprise guidelines
• Get hold of product vision• Get hold of user story map• Get hold of any learning, historical
data, any thing which can help you to make better decisions
Thought Layer 2: Techniques• Make big technology decisions
• Architectural pattern: Microservice, event, pipe, etc.
• AppServer• Persistent layer (RDBMS, No SQL, etc.)• Libraries (Log4j or JavaLogging)
• Definition of Done• Definition of prototype, walking
skeleton, MVP, technical debt, spike, etc.
DevTeam makes decisions, other teams may guide and help
Thought Layer 3: Patterns• Coding guidelines• Design guidelines• Design patterns to avoid• Sample working code
DevTeam makes decisions, other teams may guide and help
This is BUFDNO
Revisit the decisions on continuous
basis taken in each thought layer
continual
• Starting of every sprint• Starting of every release cycle• When ever you feel it is
appropriate
When to revisit?
Tools
Taxila: https://en.wikipedia.org/wiki/Taxila
Obesity Matrix• To find reasoning in architectural
decisions• It is set of one table and a two
dimensional matrix. • It should be prepared in two
scenarios:• To choose one or more architectural option/s to implement a feature
• To visualize architectural decisions across product’s features
Tushar Jain
Obesity Matrix
Tushar Jain
Obesity Matrix
Tushar Jain
Cynefin framework
Tushar Jain
Cynefin framework
Tushar Jain
???
Vikramaśīla: https://en.wikipedia.org/wiki/Vikramashila
Tushar Jain
Contact [email protected]@tjain
Bloghttp://agileanswer.blogspot.com