Agile Development
Agile Development
Agile Development
1
What is “Agility”?
• Effective (rapid and adaptive) response to change (team members, new
technology, requirements)
• Effective communication in structure and attitudes among all team members,
technological and business people, software engineers and managers 。
• Drawing the customer into the team. Eliminate “us and them” attitude. Planning
in an uncertain world has its limits and plan must be flexible.
• Organizing a team so that it is in control of the work performed
• Eliminate all but the most essential work products and keep them lean.
• Emphasize an incremental delivery strategy as opposed to intermediate products
that gets working software to the customer as rapidly as feasible.
2
What is “Agility”?
Yielding …
• Rapid, incremental delivery of software
• The development guidelines stress delivery
over analysis and design although these
activates are not discouraged, and active
and continuous communication between
developers and customers.
3
Agile Manifesto
Individuals and
over Process and tools
interactions
Comprehensive
Working software over
documentation
Source: www.agilemanifesto.org
Why and What Steps are“Agility” important?
5
Agility and the Cost of Change
6
Agility and the Cost of Change
7
An Agile Process
Is driven by customer descriptions of what is required (scenarios). Some
assumptions:
◦ Recognizes that plans are short-lived (some requirements will persist, some will change. Customer
priorities will change)
8
Agility Principles - I
1. Our highest priority is to satisfy the customer through early and continuous
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 a couple of
months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the
project.
5. Build projects around motivated individuals. Give them the environment
and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and
within a development team is face–to–face conversation.
9
Agility Principles - II
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 design
enhances agility.
10. Simplicity – the art of maximizing the amount of work not done – is
essential.
11. The best architectures, requirements, and designs emerge from self–
organizing teams.
12. At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly.
10
Problems with agile methods
• It can be difficult to keep the interest of customers
who are involved in the process.
• Team members may be unsuited to the intense
involvement that characterises agile methods.
• Prioritising changes can be difficult where there
are multiple stakeholders.
• Maintaining simplicity requires extra work.
• Contracts may be a problem as with other
approaches to iterative development.
Human Factors
the process molds to the needs of the people and team, not
the other way around
key traits must exist among the people on an agile
team and the team itself:
◦ Competence. ( talent, skills, knowledge)
◦ Common focus. ( deliver a working software increment )
◦ Collaboration. ( peers and stakeholders)
◦ Decision-making ability. ( freedom to control its own destiny)
◦ Fuzzy problem-solving ability.(ambiguity and constant changes, today problem may not
be tomorrow’s problem)
◦ Mutual trust and respect.
◦ Self-organization. ( themselves for the work done, process for its local environment, the
work schedule)
12
AGILE MYTHS
Myth 1: Agile Means No Planning/ Documentation
◦ Daily planning
◦ Bi-weekly Sprint planning
◦ Release Planning every 3 – 4 months
Agile does, in fact, produce documentation, even though it differs from that of
Waterfall.
For example, rather than create a single, lengthy document listing all project requirements, project
managers might compile a collection of user stories that can be actively updated and maintained using
software, prioritized on the fly, and used to provide real-time visibility into development progress.
Myth 2: Agile is a silver bullet solution!
◦ In projects using Scrum, these tasks are often split up between the
product owner and scrum master.
◦ A self organized team is a group of motivated individuals, who manage their work
(allocation, reallocation, estimation,, delivery, and rework) as a group.
◦ They still require mentoring and coaching, but they don't require "command and
control."
SAFe
www.scaledagileframework.com
DAD
https://www.ibm.com/developerworks/community/blogs/ambler/entry/dis
ciplined_agile_delivery_dad_lifecycle14?lang=en
2133
Myth 9: Agile is just incremental, or spiral, or
iterative, renamed
Fixed Vision
Evolving Vision
Source: Palmquist, Steven; Lapham, Mary Ann; Garcia-Miller, Suzanne; Chick, Timothy; & Ozkaya, Ipek. Parallel Worlds: Agile and Waterfall Differences and Similarities
(CMU/SEI-2013-TN-021). Software Engineering Institute, Carnegie Mellon University, 2013.
22
Myth 10: Agile Only Works in Co-Located
Environments
23