Transitioning from Waterfall to Agile

COURSE OUTLINE:

Description

Identify the challenges you will face when implementing an Agile method andplan for a successful transition from waterfall or other traditional softwaredevelopment approaches! This is your Agile method foundation course.

Agile software development methods represent a departure from traditionalwaterfall approaches in significant ways. Yet there are long standing and highlysuccessful approaches from industry that historically support concepts ofagility going back at least thirty years. Capturing a clear understanding ofthese concepts, you will be able to capitalize on them to gain the cooperationand acceptance of stakeholders who must approve and participate. There aresignificant benefits available with Agile methods that can address the highrisks, unknowns, and uncertainties that beset contemporary projects. Thesecomplexities can best be addressed with a flexible and adaptable model thatfaces the problems and provides the tools to change the way work is done andaddress the issues head on.

In this course, you will experience several case study scenarios that typifythe attributes of most projects in your organization, each providing arecognition point as you explore and discuss the hurdles to Agile. Learn toovercome these hurdles and interweave your traditional practices with Agility todevelop the best software for your organization.

Audience

  • Software Development Manager
  • Software Project Manager
  • Software Team Lead
  • Quality Assurance Specialist
  • Process Engineer
  • Software Developer or Tester
  • Software Project Customer
  • IT Director or Manager

Prerequisites

Working knowledge of software development and software testing project management techniques

Learning Objectives

  • Align Agile practices with PMI's A Guide to the Project ManagementBody of Knowledge�
  • Implement Agile practices that are compatible with the SEI's CMMI�
  • Adopt Agile requirements practices that conform to the Business AnalysisBody of Knowledge™
  • Eliminate the 'dirty dozen' traditional practices that sabotageproject flexibility and success
  • Embrace the five philosophies that enable Agility and implement the three coreAgile practices
  • Identify software problems in your organization that are addressed byAgile approaches
  • Redefine the project manager's role to be a leader and coach
  • Ensure that the software you deliver provides the highest possible valuein your customer's eyes
  • Neutralize the disruptive effects of change through iterative planningand adaptation

1. Fundamentals of Agility

  • Agile Essentials
    • The Agile Manifesto
    • The Agile Lifecycle
    • Learning and Adaptation
    • Collaboration
    • Customer Focus
    • Self-Directed Teams
    • Lean Principles
    • Progressive Requirements Elaboration (PMI states that a project is aProgressive Elaboration!)
    • Incremental Delivery
    • Iterative Planning and Adaptation
    • Cost-Effective, Risk-Mitigation Strategy

2. Waterfall and Case Studies

  • Adaptive Planning
    • Waterfall practice
      • 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
    • Agile practice
      • The Agile coach
      • Team focused
      • Continuous collaboration
      • Face-to-face communication
      • Self-directed teams
      • Regular feedback and retrospectives
  • Requirements
    • Waterfall Practice
      • JAD Sessions
      • Q & A
      • All requirements documented and signed off before work begins
      • Changes to requirements downstream demand a top heavy Change ControlProcess
      • All requirements are a #1 priority
    • Agile Practice
      • Users describe what they need in 'story' format ('userstories')
      • The feature list is prioritized by the customer (product owner) in anoverall product 'backlog'
      • The highest priority features undergo detailed elaboration for the firstproduct iteration

Key Agile Skills: Gemba visits and development of story cards

  • Scope Creep
    • Waterfall Practice
      • Changes from baseline must be assessed for timeline and dollar impacts
      • The change process must be documented in detail
      • Customer signoff is required
      • Change Control Board meeting is required to either accept or reject thechange
    • Agile Practice
      • Change is welcomed as an expected consequence of Progressive Elaboration
      • Changes are added to the backlog resulting in a changed feature setprioritization
      • Adjustments in schedule as the team adapts to the new elements
      • The customer adjusts priorities as required by business needs, changes inthe market, new regulations, etc.
  • Quality
    • Waterfall Practice
      • Developers perform Unit testing only
      • Code is thrown 'over the wall' for QA testing
      • System testing in a monolithic 'QA Slam' at the end of development
      • QA is responsible for quality
    • Agile Practice
      • Development, the customer, and QA collaborate
      • Product increments developed, tested, released to production standards
      • Everyone is responsible for quality
      • With each completed iteration, code from earlier iterations is testedregressively and multiple times, creating a very robust code set
      • Quality is designed into the product/process and not inspected in withfinal test cycle

Key Agile Practice: Strong Unit testing practice (Zero Quality Control and/orTest-Driven development)

  • Command and Control
    • Waterfall Practice
      • Project manager assigns work to the team
      • Command process is not collaborative
      • The project plan is 'etched in stone'
      • Assumes project execution is linear
      • Top-down methodology usually followed
      • Variances are usually considered negative
    • Agile Practice
      • Self organizing team selects its own work
      • Project manager is a facilitator and a coach
      • Design evolves as more is understood about the project
      • Collaboration between the team and client results in higher productivityand ownership
      • Mistakes are tolerated as a necessary component of learning

Key Agile Practice and Skill: The daily standup

  • 'Big Bangvs. Incremental Delivery
    • Waterfall Practice
      • Project generally proceeds with sequential analysis, requirements,design, coding, and test phases
      • Customer does not see a working product until close to the end of thetest cycle
      • The Processes Change Averse: Discovery or missed requirements can causedelays and add significant dollars to the project budget
      • The entire feature set is worked as a single top priority element
      • Risk is generally managed by exception and handled as it occurs
    • Agile Practice
      • Highest priority features are developed first
      • Highest risk factors are addressed early in the project: concurrentengineering practices result in the best architectures and best overall design
      • Working elements of the product are delivered in measured increments: thecustomer sees and experiences the product growing before their eyes
      • Discovery and new requirements are merged with the existing productbacklog; rework and delays are relatively small or insignificant

Key Agile Skills: Agile Risk Management and defining the project lifecycle asseparate from the project management lifecycle

3. Transition Strategies

  • All or Nothing
  • Traction with Agility
  • Overcoming Resistance
    • Predictive planning
    • Command and control management
    • Reliance on corrective action to 'fix' problems (Conformance toplan)
    • Agility is seen as 'undisciplined', weak on documentation,lightweight
    • Agility is nothing but 'galloping scope creep'
    • Jobs may change or be eliminated
    • No desire to expose 'bad wiring' and/or fix the broken processes
    • The WIIFM syndrome (what's in it for me?) and how to approach

4. Course Wrap-Up