Succeeding with Agile and Scrum (2 day course)

Background

While agile has provided the solutions for many software development problems, it is not a silver bullet and has still to overcome issues that more traditional project development lifecycles handle. The role of the traditional project manager typically changes from managing a team with a sequential lifecycle to facilitating an empowered team working in an iterative and incremental manner. Traditional planning and estimating processes need to be adapted to handle this new environment. Different practices, tools, testing strategies, roles, etc. need to be defined/agreed to maximise the chances of success for agile projects. Agile methods such as Scrum typically need augmentation to work in specific contexts and roles such as ScrumMaster and Product Owner need interpretation to your environment.

This course will provide those looking to work on Scrum teams with the competencies and skills required to effectively combine the processes, people and technologies for a successful Agile/Scrum delivery. Exercises are used to get hands on experience with the practices presented. It focuses on the Scrum method but references practices from other agile methods such as eXtreme Programming (XP) and also from Lean Software Development and Kanban. It also introduces ways to apply Agile practices successfully and ensure a sustainable transition, so that Agile becomes the standard approach for projects.


Who Should Attend

This course is intended for Project Managers, Team Leaders as well as cross-functional team members such as Developers, Testers, DBAs, Business Analysts, etc. and project support personnel who will benefit from an understanding of Agile/Scrum.


Learning Objectives

Upon completion of this course you will be able to:

  • Define the key agile values and principles
  • Describe SCRUM and how variations or hybrid approaches (utilising elements of agile with more traditional approaches) are sometimes implemented in practice
  • Map appropriate roles for Scrum teams from your current teams
  • Define and use user stories
  • Perform planning and estimation in an agile environment
  • Perform key Scrum ceremonies such as standups, retrospectives, etc.
  • Define appropriate testing strategies for agile projects, keeping control of quality in an Agile lifecycle and avoiding the common pitfalls
  • Undertake steps needed to get started with Scrum on your project
  • Use Scrum with distributed teams
  • Avoid the common pitfalls with Agile/Scrum

Topics Covered


Day 1

Overview of Agile Principles
  • Agile values, principles and practices
  • Explain the essence of agile methods in terms of the significant mindset change required
  • Exercise: discussion of participant's issues/challenges with agile from pre-course questionnaires
Key elements of Scrum
  • Typical agile lifecycle - incremental and iterative development
  • Overview of Scrum ceremonies and artifacts
  • Roles and responsibilities in Scrum teams
    • ScrumMaster
    • Product owner
    • Scrum Team
    • Distributed team roles
    • People and cultural issues in agile
    • Exercise: mapping your current roles to Scrum roles
Requirements in Scrum
  • Customer/user involvement and managing requirements in agile
  • User stories
    • defining value-centric requirements
    • templates and criteria for effective user stories
  • Exercise: defining and prioritising user stories

Day 2

Planning and estimation with Scrum
  • Project and Release planning
  • Iteration/Sprint planning - timeboxing and prioritisation
  • Principles of team board design
    • Exercise: design the team task board
  • Estimation
    • The need for estimation with incremental development
    • Estimation for user stories: story points
      • Exercise: planning poker for story points
    • Additional estimation options
      • ideal days
      • task estimation
    • Project velocity and sustainable development
      • Minimising technical debt
  • Risk
    • Risks in Scrum projects
    • Managing project risks in Scrum
Working as a Scrum team
  • Daily scrums
  • The implications of self-direction
  • Monitoring and reporting
    • backlogs
  • Project reviews and retrospectives
  • Exercise: agree reporting formats needed
Agile Testing
  • Agile test strategies
    • Different Test Levels/phases applicable to agile and how they need to be adapted
    • Where the different types of testing fit into an agile development lifecycle
    • Exploratory testing and its role in agile
    • Agreeing the definition of 'done'
  • Test automation approaches - the automation pyramid
    • Test Driven Development (TDD), Automated Unit Testing, API testing, GUI testing
  • Acceptance testing, testing and the customer/user
  • Exercise: define acceptance tests for user stories

Pitfalls and Lessons Learnt

This module will discuss some of the risks and common pitfalls experienced in practice by Scrum teams and how these can be avoided.


Summary and next steps

Action planning