Course Description
Transitioning From Waterfall To Agile
Overview
There are significant benefits available when utilizing
an Agile approach that can address the risks, unknowns, and uncertainties that
affect nearly all software development projects. These complexities can best be
addressed with a flexible and adaptable model that turns traditional problems
into advantages and provides the tools to change the way work is done through
addressing organizational issues head on. In this course you will learn how
Agile addresses these traditional project challenges and finally resolve these
ever-present constraints. Learn to overcome these hurdles and interweave your
traditional practices with Agile practices to develop the best software for
your organization and your customer.
After considering all of the ways in which the Agile methods will affect your
organization and considering the benefits and challenges associated with each,
you will be ready to plan your Agile adoption strategy. In this course you will
gain all the tools, skills and knowledge to return to your office and
successfully implement an Agile transition strategy that best fits your
environment.
- Explore the problems your
organization is currently experiencing with software projects
- Solidify and strengthen
any Agile concepts that your organization has already accepted and explore
those that you have yet to implement
- Implement strategies for
how you can build collaborative, self-directed teams
- Discover how you can
institute incremental planning and adaptation on your projects
- Harvest methods to move
your projects to a more customer-centric, change-tolerant requirements
process
- Enlighten you organization
on how you can make quality the job of each and every team member
- Prioritize the Agile
changes you can make, identifying the "best of breed" strategies
to achieve success
- Create the beginnings of
your Agile transition action plan
Substitution & Cancellation Policy:
You may cancel or reschedule up to 21 days prior to the start date of the class at no penalty. For any cancellation or reschedule requests within 21 days, the full course tuition is still due and not eligible for refund. Any paid tuition will be credited towards a future class and must be used within 12 months.
*Partner delivered courses may be subject to different cancellation terms
Agenda
Course Outline
1. Introduction to Agility
Agility is comprised of a unique set of principles and
values that must be understood and embraced before the organization can employ
Agile practices. In this section, we will survey the essence of Agility.
Exercise
Identify the problems that you are experiencing with
software projects in your organization. You will use this list throughout the
course to evaluate the benefits of Agility. Compare notes with other students.
- The
Essence of Agility
- The
Agile Lifecycle
- Learning
and Adaptation
- Collaboration
- Customer
Focus
- Self-Directed
Teams
- Lean
Principles
- Progressive
Requirements Elaboration
- Incremental
Delivery
- Iterative
Planning and Adaptation
Exercise
Identify the Agile concepts that have already gained
acceptance in your organization. Compare notes with other students.
2. Us vs. Them Teams
The heart of every project is the team. Yet in traditional
approaches, the team often operates as a collection of competing individuals,
rather than as a unit. Even worse, many organizations have divided
responsibilities in ways that pit different groups against each other, when the
project desperately needs cooperation.
Agility means establishing a single team for each project,
and ensuring that it comprises all of the necessary people. Agile practices
ensure that all team members are constantly collaborating and driving the
project toward success.
- Traditional
practices
- The
project manager
- Shielding
developers & customers from each other
- Building
silos of responsibility
- Documents
as the primary means of communication
- Lessons
Learned at project end
- Contrast
w/the Agile approach
- Product
Owner
- The
Agile coach
- One
small co-located team
- Continuous
collaboration
- Face-to-face
communication
- Regular
feedback
- Regular
retrospectives
Case Studies
We will discuss the unique needs and situations of one of
the three Case Study organizations, and determine how to make the transition
from us-vs.-them teams to Agile Teams.
- Sell
the benefits of Agile teams
- Defuse
misconceptions about Agile teaming
- Address
the challenges of adopting Agile teaming
- Define
the Agile teaming process
- Train
personnel to be Agile team members
Exercise
Determine how to introduce the Agile teaming on projects in
your organization. Identify the benefits you would realize and the challenges
you would face. Compare notes with other students.
3. My Project Plan, Right or Wrong
Traditional approaches are often referred to as “plan-based”
because of the importance they put on up-front planning and then controlling
the project so it conforms to the plan. Of course, some organizations go to the
other extreme, paying little attention to their plans after the project starts,
or even foregoing planning altogether.
Agility means planning just enough, doing that planning when
it is needed, and accepting the fact that reality often works out differently
from our plans. Agile projects value achieving the project goals; the plan is
merely a tool to help them do that.
- Traditional
practices
- Predictive
planning
- Command
and control management
- Corrective
action (Conformance to plan)
- Periodic
Status Reporting
- Document
review/sign-off as milestones
- Contrast
w/the Agile approach
- Time-boxed
projects & iterations
- Incremental
planning & estimation
- Self-directed
teams
- Daily
status checks & periodic review
- Adaptation
to new information
- Information
Radiators
- Delivered
software as milestones
Case Studies
We will discuss the unique needs and situations of one of
the three Case Study organizations, and determine how to make the transition
from the plan-based approach to Agile planning.
- Sell
the benefits of Agile planning
- Defuse
misconceptions about Agile planning
- Address
the challenges of adopting Agile planning
- Define
the Agile planning process
- Train
personnel to use Agile planning techniques
Exercise
Determine how to introduce the Agile planning on projects in
your organization. Identify the benefits you would realize and the challenges
you would face. Compare notes with other students.
4. The Insidious Creeping Scope
Traditional approaches usually begin with an important (and
sometimes long and drawn out) Requirements phase during which all of the
product requirements are elicited, analyzed and documented. Everyone in the
project commits to the resulting specification, and then significant effort is
expended in Change Control. Conformance to the Requirements Specification
becomes the measure of project success. (Until the customer complains!)
Agility means documenting requirements just enough,
eliciting more detailed information when it is needed, and accepting the fact
that thing will change before the project is over. Agile projects value
delivering what the customer needs; the requirements are merely a tool to help
them do that.
- Traditional
practices
- Big-bang,
up-front requirements definition
- Requirements
sign-off
- Little
customer involvement after requirements
- Restrictive
change control
- Conformance
to specification
- Product
delivered/accepted at project end
- Contrast
w/the Agile approach
- Progressive
requirements elaboration
- Prioritization
by the customer
- Incremental
product acceptance & feedback
- Welcome
changing requirements
Case Studies
We will discuss the unique needs and situations of one of
the three Case Study organizations, and determine how to make the transition
from up-front requirements to Agile requirements.
- Sell
the benefits of Agile requirements
- Defuse
misconceptions about Agile requirements
- Address
the challenges of adopting Agile requirements
- Define
the Agile requirements process
- Train
personnel to use Agile requirements techniques
Exercise
Determine how to introduce the Agile requirements on
projects in your organization. Identify the benefits you would realize and the
challenges you would face. Compare notes with other students.
5. Where's the Quality?
Traditional projects are often quality-challenged. The
testing phase at the end of the project seems to be never-ending, and in spite
of all that time and effort, a defective product is delivered. This results in
high support costs, unhappy customers and out of control costs.
Agility means keeping the focus on quality from the very
beginning of the project, testing continuously and ensuring that every piece of
code is technically excellent. And because testing is not saved for the end,
quality surprises are eliminated. Agility means producing production-ready
software regularly throughout the project!
- Traditional
practices
- Little
focus on developer verification
- Separation
of responsibilities (testers vs. developers)
- Testers
responsible for quality
- Testing
postponed to the project end
- Contrast
w/the Agile approach
- Developers
focused on technical excellence
- Developer/tester/customer
collaboration/feedback
- Testers
as members of the development team
- Early
and regular "System" & "Acceptance" testing
- Each
product increment production-quality
Case Studies
We will discuss the unique needs and situations of one of
the three Case Study organizations, and determine how to make the transition
from traditional quality practices to Agile quality practices.
- Sell
the benefits of Agile quality practices
- Defuse
misconceptions about Agile quality practices
- Address
the challenges of adopting Agile quality practices
- Define
the Agile quality process
- Train
personnel to use Agile quality practices
Exercise
Determine how to introduce the Agile quality practices on
projects in your organization. Identify the benefits you would realize and the
challenges you would face. Compare notes with other students.