2. Agenda and Objectives
• Overview of Agile 101
• Advantages of Agile thinking
– What Agile Can do for you?
• Concepts of Timeboxed Agile
Objectives:
• Understand the Agile 101 basics
• Introduction to Agile @ ShoreTel Sky
3. Agile is NOT a Silver Bullet
Embracing Agile promises faster time to market, higher quality and
improved responsiveness to constantly changing market conditions. But…..
4. Wishful Thinking
• The customer knows what they want
• The developers know how to build it
• Nothing will change along the way
3 things we have to live with
• The customer discovers what they want
• The developers discover how to build it
• Many things change along the way
Product
and/or
Service
System of Production
and/or Service
9. Principles of Agile
• Satisfying customer is top priority
• Deliver working software frequently
• Development teams and business work together
• The primary measure of success is working software
• The Team regularly reflects on work
• Build projects around motivated people
• Continuous attention to technical excellence and good design
• Simplicity is essential
– maximizing the amount of work not done
• Architectures, requirements and designs emerge
• Agile processes promote sustainable development
10. Agile Manifesto
We are uncovering better ways of developing software by doing it and helping others do it.
“Responding to
change over
following a plan”
“Customer
collaboration over
contract negotiation”
“Working software
over comprehensive
documentation”
“Individuals and
interactions over process
and tools”
Values
“The most efficient and
effective method of
conveying information
to and within a
development team is
face-to-face
conversation.”
“Welcome changing
requirements, even
late in development.
Agile processes
harness change
for the customer's
competitive
advantage.”
“Working software is
the primary measure
of progress.”
“Agile processes promote
sustainable
development. The
sponsors, developers, an
d users should be able to
maintain a constant
pace indefinitely.” “Our highest priority is
to satisfy the customer
through early and
continuous delivery of
valuable software.”
“Deliver working
software
frequently, from a
couple of weeks to a
couple of months, with
a preference to the
shorter timescale.”
“At regular
intervals, the team
reflects on how to
become more
effective, then tunes
and adjusts its
behavior
accordingly.”
“Continuous attention
to technical excellence
and good design
enhances agility.”
“Business people and
developers must work
together daily
throughout the
project.”
“Build projects around
motivated
individuals, give them
the environment and
support they need, and
trust them to get the job
done.
“Simplicity -- the art of
maximizing the
amount of work not
done – is essential.”
“The best
architectures, requireme
nts, and designs emerge
from self-organizing
Principles
11. Lean and Agile Relationship
LEAN AGILE
Running enterprises and businesses Rapid delivery of complex products
and services
Minimize the time between customer
request and customer fulfillment
Minimizes risk by incremental delivery
Emphasizes work simple enough to
understand, do and manage
Emphasizes real time collaboration,
automation
Continually improving the whole
process – CI - Kaizen
Mistake proof development practices
Eliminate Waste and reducing non-
value added work
Uses business value as the primary
measure of progress
Develop individuals through team
problem-solving, and engage people
through their contribution to team
performance
Self-organizing, X-functional teams,
working collaboratively
Lean
AgileTQM
Value Stream
Mapping
SECI –
Knowledge
Dimensions
TRIZ
(TIPS)
SPC –
Statistical Process
Control
6 Sigma
12. Agile is a Culture
Agile Methods/Frameworks/Practices
Scrum
XP
TDD
Crystal
Clear
Agile PM -
APM
DSDM
Atern
KanbanFDD
Lean
Development
RAD
ShoreTel
??
13. The 5 Core XP Values
• Communication - Building and disseminating institutional knowledge
among development team, enables a shared vision. Happens through
collaboration between users and developers, frequent verbal
communication, and feedback, simple design, common metaphors.
• Simplicity - Start with a simple solution. Extra functionality can be
added later.
• Feedback - Feedback looked in three dimensions : Feedback from
the system, the customer and the developers.
• Courage - Developers feel comfortable with refactoring, knowing
when to throw away; courage to remove source code when obsolete
• Respect – Respect for other as well as self-respect.
– For example: developers should never delay the work of their peers
14. Agile Benefits
• All the benefits of getting to “done”… frequently!
• IT can focus on building things right
• Business and IT have a better partnership for building
the right thing
• Every Sprint the business can
– Get a demonstration of real working software
– Change Portfolio and project level priorities
– Change Portfolio level investments
– Decide whether to release or not
• Shared feeling of accomplishment
18. Iterative, Incremental development
GUI
Client
Server
DB schema
C
• Iterative = don’t expect to get it all right the first time
• Incremental = build in ”vertical” slices (features) rather
than ”horizontal” (layers)
Monolithic development
1
2
3
4
1
Incremental development
2 3
Maybe we don’t
even need to
build the rest!
C
GUI
Client
Server
DB schema
19. Waterfall vs. Incremental Delivery
Feasibility
Definition
Design
Construction
Release
Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5 Iteration 6 Iteration 7 Iteration 8
Release #1
2 wks2 wks 2 wks2 wks 2 wks 2 wks 2 wks 2 wks
Release #3Release #2
Agile
What if this is
enough?
Waterfall
20. Makes Money Faster
Early delivery drives first to market,
fast feedback, and profitability
Market Value of
a feature over
time
Waterfall
Cumulative
Gross Margins
Agile
Cumulative
Gross Margins
Time
ValueDelivered
21. Delivers Better Fit for Purpose
23
What the
Customer
requested
What the
Customer
would like
Time
Agile Adaptive
Plan result
Waterfall Plan result
24. Agile in 20 words: Some Values
• Change – expect and embrace it, Adapt to your environment.
• Communication - frequent verbal, building and disseminating knowledge.
• Collaboration - between and amongst users and developers.
• Feedback - from the system, the customer and the developers.
• Courage - comfort in refactoring, finding your voice.
• Respect - Respect for others as well as self-respect.
• Transparency - Make work and a shared vision visible.
• Sequenced - queue of work, Success is working software.
• Quality - Continuous attention to excellence, Innovate on solutions.
• Simplicity - Start with a simple solution, show Value.
• Self-Organise - regularly reflect on work, determine the best way.
• Motivate - build teams of motivated people, promote Sustainable cadence.
• Satisfy customer and Deliver working software frequently.
25. AGILE OVERVIEW – DONE!
Continues the series with: ShoreTel Scrum
- How Scrum is implemented @ ShoreTel Sky
Notas do Editor
Iterative A development process which breaks the finished product into smaller projects (called iterations). The lessons from each iteration are applied in the next and subsequent iterations.WaterfallA sequential software development process where each phase is completed before moving to the next phase: requirements, software design, software development, system test, integration, and maintenance.ScrumA popular agile software development method for project management. Work is delivered in two- or four-week sprints. After each sprint, the team demonstrates their results to the product owner (and others). There’s a prioritized backlog of problems to solve.Rapid Application DesignA development methodology that uses CASE (computer-aided software engineering) tools, prototypes, and user-interaction to achieve the goals of high quality and speed.Extreme ProgrammingOne of several agile software development methodologies, prescribing a set of daily stakeholder practices that embody and encourage particular agile values. Proponents believe that exercising these practices—traditional software engineering practices taken to so-called "extreme" levels—leads to a development process that is more responsive to customer needs ("agile") than traditional methods, while creating software of better quality.Test-Driven DevelopmentA software development technique consisting of short iterations where new test cases covering the desired improvement or new functionality are written first, then the production code necessary to pass the tests is implemented, and finally the software is refactored to accommodate the changes.LeanLean manufacturing is the production of goods using less of everything compared to mass production: less human effort, less manufacturing space, less investment in tools, and less engineering time to develop a new product. Lean manufacturing is a generic process management philosophy derived mostly from the Toyota Production System and is often linked with Six Sigma.