Agile is a set of principles for iterative software development that values collaboration, adaptability, and delivering working software frequently. It aims to address shortcomings of traditional "waterfall" approaches which were inflexible, took too long, and did not provide value until late in the project. Key principles of Agile include satisfying customers through early delivery, welcoming changing requirements, frequent delivery of working software, daily collaboration between developers and business teams, and trusting self-organizing teams. Agile methods have benefits like increased productivity, faster time to market, and improved quality, but require constant business involvement and greater testing discipline.
6. Waterfall Development
You rarely aim to re-visit a âphaseâ once
You complete one phase (e.g. design) before
itâs completed.
moving on to the
That means, you next phase (e.g. development)
better get whatever
youâre doing right the first
time!
7. Downside of Traditional Approaches
Changes
REQUIREMENTS
ïČ 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
DESIGN
DEVELOPMENT
Takes too long
Skipped
TESTING
MAINTENANCE
This approach is highly risky, often more costly and
generally less efficient than Agile approaches
10. why projects fail:
user input
incomplete requirements
changing requirements
lack of
2012 Chaos Report
(Standish Group)
11. What
Agile is Agile?
An umbrella term covering
Software development methodologies that adhere to the
Agile Manifesto
Most Agile teams use a hybrid of multiple approaches
12.
13.
14. #1- Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software
15. #2 â Welcome changing requirements even late in development.
Agile processes harness change for the customerâs competitive advantage
16. #3 â Deliver working software frequently, from a couple of weeks to a
couple of months, with preference to the shorter timescale.
17. #4 â Business people and developers must work together daily
throughout the project.
18. #5 â Build projects around motivated individuals. Give them the environment
and support they need and trust them to get the job done.
19. #6 â The most efficient and effective method of conveying information
to and within a development team is face-to-face conversation.
20. #7 â Working software is the primary measure of progress.
21. #8 â Agile processes promote sustainable development. The sponsors,
developers and users should be able to maintain a constant pace
indefinitely.
22. #9 â Continuous attention to technical excellence and good design
enhances agility.
23. #10 â Simplicity â the art of maximizing the amount of work not done â is
essential
24. #11 â The best architectures, requirements and designs emerge from
self-organizing teams
25. #12 â At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts itâs behavior accordingly.
26. 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
27. benefits from Agile implementation
manage changing
priorities
increased
productivity
Faster time to
market
enhance product
quality
improved project
visibility
90%
85%
79%
81%
84%
2012 State of Agile Development Survey Results
28. Benefits of Agile
But, with this capability comes:
Constant business involvement
A need for more discipline
Greater emphasis on testing
An approach which sometimes clashes with some
organizational cultures
30. Credits
Pictures downloaded from internet
Agile with Guts â A Pragmatic Guide to Value-Driven
Development by Nicholas Gouy
Overview of Agile Methodology by Haresh Karkar
http://www.slideshare.net/hareshkarkar/overview-of-agilemethodology
Agile Principles, Agile People by Gaetano Mazzanti
http://www.slideshare.net/mgaewsj/agile-principles-agilepeople
Further results indicate 52.7% of projects will cost 189% of their original estimates. The cost of these failures and overruns are just the tip of the proverbial iceberg.39% of all projectssucceeding (delivered on time, on budget, withrequired features and functions); 43% werechallenged (late, over budget, and/or with less thanthe required features and functions); 18% failed(cancelled prior to completion or delivered and neverused).
Software lies at the heart of any business change â which is the ultimate goal for the customer.Itâs quite easy to increase your velocity and work on the wrong product at the same time.Continuous Delivery â THIS IS OUR APPROACH. Constant small releases allow you to release small increments of value every day and get feedback from the customer/user on a regular basis. Business gets visibility and control and can steer the project every step of the way.According to Jez Humble, there are three strands to continuous delivery: one strand concerned with automation of build, test, deployment, database migrations, and infrastructure; a second strand concerned with practices, such as continuous integration, good configuration management, and testing; and a third strand concerned with people, having everyone involved work together throughout the software delivery life cycle.Even after completing the software development project, it takes more time to realize the degree to which the "valuable software" delivered would contribute to the real success or the real value.
Like it or not, requirements will change throughout a software development project. Traditional software developers will often adopt change management processes which are designed to prevent/reduce scope creep â change preventionAgile change management approach treats requirements as a prioritized stack which is allowed to vary over time.OUR APPROACHDo just enough initial requirements envisioning to identify their project scope and develop a high-level schedule and estimate; that's all you really need early in a project, so that's all you should do. During development elaborate in a just-in-time manner to explore each requirement in the necessary detail.
Frequent delivery of working software provides stakeholders with concrete feedback, making the current status of your project transparent while at the same time providing an opportunity for stakeholders to provide improved direction for the development team.
These three stonecutters are doing the same job, but donât have a shared Vision of their work. They give different values to what they are doing. When working in a team, itâs important that everybody has the same vision of what we are building.OUR APPROACHAccess to project stakeholders â case of UBOS in MICSThoughtWorkers in JHB and London who work at client sites full time â case of Rackspace
Do you use command and control or adaptive leadership?OUR APPROACHNo hierarchyAgile is not going to solve any of your personnel problems. It will, however, bring these issues to the surface so that they can be dealt with quickly. As managers we need to do everything we can to support the team and help them be successful.
Just like you can't sprint for an entire marathon, you can't successfully develop software by forcing people to work overtime for months at a time.
It's much easier to understand, maintain, and evolve high-quality source code than it is to work with low-quality code. Therefore, agilists know that they need to start with good code, to keep it good via refactoring, and take a test-driven approach so that they know at all times that their software works.
Agility is the ability to both create and respond to change in order to profit in a turbulent business environment.