This document provides a brief history of software development methodologies, from waterfall in the 1950s to the rise of agile methods starting in the 1990s. It discusses early agile frameworks like eXtreme Programming, Adaptive Programming, and Crystal Clear. It then outlines some key principles of agile development like valuing individuals, working software, customer collaboration, and response to change. Finally, it advocates for letting people and culture define processes rather than adopting predefined roles, empowering teams, using data to make decisions, and prioritizing adaptability.
15. The Age of Agile
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
16. Outcome - the ugly
Software in 30 Days: How Agile Managers Beat the Odds, Delight Their Customers, and
Leave Competitors in the Dust
Scrum: The Art of Doing Twice the Work in Half the Time
17.
18.
19. Outcome - the good
Principles shaping mentality
Scrum - 2001
Kanban - 2004
Software that revolve around the idea of change
Empowerment
Empiricism
20. Make Agile great again!
The essence
0. Define a goal
1. Look where you are with respect to the goal
2. Take a step towards the goal
3. Evaluate your position & adjust
4. Repeat
21. Make Agile great again!
● Let people (culture) define the process
● Empower people
● Let data drive decisions
● When faced with options, go with the one that’s easier to
change later
● Quick and easy Kaizen
● Build trust with your customers, not contracts
22. Make Agile great again!
All current processes that aim for agility where
defined by developers, not managers.
23. Make Agile great again!
A. Adopt a process and hire people to fill in the roles in the
process, then follow the recipe
A. Bring together a group of people that work well together
and let them figure the process by themselves, fit for that
culture and particular circumstances.
Waterfall - Herbert D. Benington (1956), coined in 1976
Waterfall - Herbert D. Benington (1956), coined in 1976
Paper by Winston W. Royce - how to fix waterfall? More review, closed to the customer.
Software companies gaining prominence on the stock market. Money funds competition, competition is fierce and pressure to market increases. Nobody can afford to be slow anymore
UML - specifications to the max
Rational Unified Process (1996) - recognize the need for iterations
Iterative approach, ahead of its time. Iterations happen “behind the scenes”, not focused on delivering but more on improvement. Planning involves prototyping, but delivery happens late.
IBM
Speculate: assume mistakes will be made, assume information is wrong, move fast with assumptions, experiment
Collaborate: close communication, early feedback, prototyping
Iterate in a timeboxed fashion
Chrysler Payroll system
Communication: direct, close (even with customers)
Simplicity: don’t work on what you don’t need, DRY
Feedback: from PoC, from customers, from tests, from monitoring, empirical
Courage: to say no, to keep integrity as developer, to change
Respect: to self (growth), to others (help)
Frequent delivery: always show something new
Constant feedback from multiple source
Process should be define by team according to culture and constraints
Osmotic communication = close communication, same room
Team space = safe space
Focus:
Seller Center Agile Transformation
Approach to process: define process and fill it in with people to obey vs let people figure it out
Management vs Software Engineering - two sides at odds ?
SAFe = Scaled Agile Framework
LeSS = LargE Scale Scrum
Scrum itself was developed since 1995, mostly silently - the name was coined and method was published much later, following the Agile Manifesto
Kanban - inspired Toyota and used at Microsoft in 2004, coined cca 2009
Agile isn’t something you do. You can be agile, you can do things like software development with agility
Agile isn’t something you do. You can be agile, you can do things like software development with agility
Agile isn’t something you do. You can be agile, you can do things like software development with agility