Agile Development

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 23

• 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

Customer collaboration over Contract negotiation

Responding to change over Following a plan

Source: www.agilemanifesto.org
Why and What Steps are“Agility” important?

Why? The modern business environment is fast-paced and ever-


changing. It represents a reasonable alternative to conventional
software engineering for certain classes of software projects. It
has been demonstrated to deliver successful systems quickly.
What? May be termed as “software engineering lite” The basic
activities- communication, planning, modeling, construction and
deployment remain. But they morph into a minimal task set that
push the team toward construction and delivery sooner.
The only really important work product is an operational
“software increment” that is delivered.

5
Agility and the Cost of Change

• Conventional wisdom is that the cost of change increases nonlinearly as a


project progresses. It is relatively easy to accommodate a change when a
team is gathering requirements early in a project. If there are any changes,
the costs of doing this work are minimal. But if the middle of validation
testing, a stakeholder is requesting a major functional change. Then the
change requires a modification to the architectural design, construction of
new components, changes to other existing components, new testing and so
on. Costs escalate quickly.

• A well-designed agile process may “flatten” the cost of change curve by


coupling incremental delivery with agile practices such as continuous unit
testing and pair programming. Thus team can accommodate changes late in
the software project without dramatic cost and time impact.

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)

◦ Develops software iteratively with a heavy emphasis on construction


activities (design and construction are interleaved, hard to say how much design is necessary before construction.
Design models are proven as they are created. )
◦ Analysis, design, construction and testing are not predictable.

Thus has to Adapt as changes occur due to unpredictability


Delivers multiple ‘software increments’, deliver an operational
prototype or portion of an OS to collect customer feedback for
adaption.

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

Actually there are multiple levels of planning

◦ 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.

◦ Increased collaboration throughout Agile development projects provides all stakeholders


with a better understanding of the end product as it is being created, thus reducing the
need for some design documentation.

 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!

Proponents of agile will sometimes claim that


moving to agile will “fix all of your problems”.

That is not the case.

Agile Values and Principles point to Collaboration,


Rapid Feedback Loops, and Quality.

◦ In this way, agile exposes your problems - before any


issue can be addressed, it needs to be surfaced.
Myth 3: Agile Projects don’t use Project Managers

It is true Scrum doesn’t discuss Project Managers – it focuses on


the Product Owner, Scrum Master, and the Development Team.

Project Managers typically have different responsibilities, such


as budgeting, reporting, and portfolio management.

◦ In projects using Scrum, these tasks are often split up between the
product owner and scrum master.

Project Managers will often take the


scrum master role and then train
the product owners
Myth 4: Agile can be used for all/any software
development

Not recommended for systems where human life is on the line.


NASA
Myth 5: Agile = Anarchy

Some managers believe that self-organization is the same as anarchy

◦ 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."

Management role does change

◦ They provide care and feeding


◦ They define clear vision and constraints
◦ Not responsible for delivery

It is only within this confines does self-organization happen


Myth 6: There’s only one way to do Agile
• The Agile Manifesto
consists of four values
and 12 principles.

• Each style has benefits,


as well as weaknesses,
and one must evaluate
their own specific
situation to determine
which interpretation is
the best match.

• As long as you are


adhering to the Agile
Manifesto’s values and
principles, you should be
considered agile.
Myth 7: Agile processes are less disciplined and structured than those of
waterfall.

– Successful Agile implementations are more


process-driven and coordinated than traditional
waterfall implementations.
Myth 8: Agile only works for small projects….
DSDM
www.dsdm.org

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

67% of Version One survey


respondents say managing
distributed teams was better when
using Agile.

23

You might also like