Agile
The software development methodology for today and tomorrow
Muhammad Kamran Azeem
Senior Consultant - Infrastructure and Security @ Praqma
Founder: WBITT
License for presentation: Creative Commons
CI / CD / XP / Dev Ops / Kanban / Scrum / Lean / git / Jenkins and Docker - The whole nine yards!
Warning! - Strong / crude language!
“If I'm curt with you, it's because time is a factor. I think fast, I talk fast, and I need you guys to act fast if you want to get out of this.
So pretty please, with sugar on top, clean the f*****'n car.”
All images / videos used in this presentation are courtesy from their respective owners,
for educational purposes.
Traditional project acquisition
Can you predict the future?
Popular estimation techniques
Jump to Estimates
Traditional software development process
Requirements (list)
Project plan
We don’t do estimates*. (period)
Estimates are ALWAYS wrong. ((second) period)
If “estimates are always wrong”, how do we:
Agile ...
Workshops!
What is Agile?
adjective
"Ruth was as agile as a monkey"
Waterfall method / Plan Driven
Spiral method / Risk Driven
Incremental / Iterative Model
Agile - History
Individuals and Interactions over Processes and Tools
Working Software over Comprehensive Documentation
Customer Collaboration over Contract Negotiation
Responding to Change over Following a Plan
Why Agile?
1 - Adaptive planning for rapidly changing requirements
Requirements
Plan
Depends on
Predictive Planning
Requirements
Plan
Depends on
Adaptive Planning
How:
ETA / Completion Time:
A fairly detailed plan.
Sometimes Scrum fails ...
…, also when you just take the management stuff and leave the technical stuff. i.e. CI / CoDe / Testing, etc.
2 - The team chooses their own process to follow
Otherwise, “A bad process will beat a good person - every time.”
W. Edwards Deming
There are exceptions!
Defined Process
Empirical Process
3 - Better communication
*
Pair programming & Code review
Korean Pilots
The Problem: Preserving hierarchy—and asking few questions.
4 - Short feedback loop
Malawi rural healthcare
Continuous Integration / Continuous Delivery
5 - Eliminate Waste (Lean [Muda])
Overburden
Inconsistency
Waste
Anything not adding value to the customer is waste (muda). Such waste may include:
The Toyota Production System (TPS)
Two conceptual pillars:
Example: Supermarket
The two principles of The Toyota Way (by Toyota itself)
Continuous improvement
Respect for people
Reference: https://en.wikipedia.org/wiki/Toyota_Production_System#Principles
6 - Visible Indicators of Working Software
Kanban
7 - Quality is built into the delivered software
In agile, we always ship quality software - continuously; not crappy software.
CI/CoDe/Toll gates, Unit tests, Functional tests, Acceptance tests, etc.
Kaizen
Continuous Improvement
Continuous Perfection
DONE
How to do Agile?
Tools & techniques
Developers engaged in Multiple Projects?
Check our solution: here
Issue / bug tracking (Eliminates waste in communication)
Recommended books
Ethics of working
Stories: