Agile Principles & Culture
Dec 14, 2014
Agile Principles & Culture
> “Hello, I’m Agile”
“and I’m not alone”
Software development processesA [very] short history of
traditional approach to software development
REQUIREMENTS
DESIGN
DEVELOPMENT
TESTING
MAINTENANCE
Waterfall Development is another name for the more
Traditional Approaches
Waterfall Development
You complete one phase (e.g. design)
before moving on to the next phase (e.g. development)
You rarely aim to re-visit a ‘phase’ once it’s completed. That means, you
better get whatever you’re doing right the first
time!
This approach is highly risky, often more costly and
generally less efficient than Agile approaches
REQUIREMENTS
DESIGN
DEVELOPMENT
TESTING
MAINTENANCE
Takes too long
Changes
Skipped
You don’t realize any value until the end of the project
You leave the testing until the end
You don’t seek approval from the stakeholders until late in the day
Downside of Traditional Approaches
2012 Chaos Report(Standish Group)
of projects failed18%
43% challenged
2012 Chaos Report(Standish Group)
45%of features are never used
2012 Chaos Report(Standish Group)
why projects fail:
lack of user inputincomplete requirements
changing requirements
Agile
An umbrella term covering Software development methodologies that adhere to the
Agile Manifesto
Most Agile teams use a hybrid of multiple approaches
What is Agile?
#1- Our highest priority is to satisfy the customer through early andcontinuous delivery of valuable software
#2 – Welcome changing requirements even late in development. Agile processes harness change for the customer’s competitive advantage
#3 – Deliver working software frequently, from a couple of weeks to acouple of months, with preference to the shorter timescale.
#4 – Business people and developers must work together dailythroughout the project.
#5 – Build projects around motivated individuals. Give them the environmentand support they need and trust them to get the job done.
#6 – The most efficient and effective method of conveying informationto and within a development team is face-to-face conversation.
#7 – Working software is the primary measure of progress.
#8 – Agile processes promote sustainable development. The sponsors,developers and users should be able to maintain a constant pace indefinitely.
#9 – Continuous attention to technical excellence and good designenhances agility.
#10 – Simplicity – the art of maximizing the amount of work not done – isessential
#11 – The best architectures, requirements and designs emerge fromself-organizing teams
#12 – At regular intervals, the team reflects on how to become moreeffective, then tunes and adjusts it’s behavior accordingly.
Myths: Agile is NOT…
A specific methodology or process• Agile is a collection of best practices and principles for
software development• Agile is a philosophy, or a set of values
A “One Size Fits All” cookbook• Every project and team adjusts the application of Agile to fit
the circumstances, environment, and business problem to be solved
Simply iterations• Software is developed incrementally, in time-boxed iterations
“Glorified hacking”• Agile is a set of highly disciplined practices
90%85%79%
81%
84%
2012 State of Agile Development Survey Results
benefits from Agile implementation
manage changing priorities
increased productivity
Faster time to market
enhance product quality
improved project visibility
Benefits of Agile
But, with this capability comes:
Constant business involvementA need for more disciplineGreater emphasis on testingAn approach which sometimes clashes with some organizational cultures
Agile is about
change culturepeople
organization
projectproduct
Credits
Pictures downloaded from internetAgile with Guts – A Pragmatic Guide to Value-Driven Development by Nicholas GouyOverview of Agile Methodology by Haresh Karkarhttp://www.slideshare.net/hareshkarkar/overview-of-agile-methodologyAgile Principles, Agile People by Gaetano Mazzantihttp://www.slideshare.net/mgaewsj/agile-principles-agile-people
Questions?