Skip to content
Matthew Hall edited this page Jan 2, 2018 · 47 revisions

[DRAFT] A Guided Approach for Agile Development Teams

Purpose

The purpose of the this wiki is not to recreate the many good sources of documentation on the various aspects of Agile development. Rather it is meant to answer the many questions that a new Agile Development team will have as the make the transition from doing traditional waterfall projects over to an agile approach.

Team self assessment questions
Frequently Ask Questions

Background Material

There's lots to read. Here's a few good places to start

Name Purpose Source
Service Design Service Design Playbook, Phases, Methods and Tools BC Government - GCPE
18f deliver efficient, easy-to-use digital services US Government
NRS SDLC Standards Traditional SDLC Standards BC Government - CSNR
18 Criteria for digital services A digital service standard UK Government
Operational Agile Guides best practice for delivering government services in an agile way UK Government
Innovators Toolkit An Open Source Project for Digital Service teams BC Government - DevExchange
The Lean Startup learn more quickly what works, and discard what doesn't theleanstartup.com
SAFe Scaled Agile Framework Scaled Agile Inc.
DAD Disciplined Agile Delivery - A process decision framework www.disciplinedagiledelivery.com
LeSS A framework for how to scale Scrum The LeSS Company B.V.
Agile Lifecycle How the Agile Manifesto, Test-Driven Design (TDD), database refactoring, and agile change management all fit together Scott W. Ambler

This guide intends to provide the following functionality:

Function Description
Project Context Give context to your development team for how you are implementing agile for your project
Toolkit There are tools that can be used to produce better project outcomes. Learning how, when, where and why to use them will help your team mature and be successful.
Maturity Assessment of the organization and the product team
Find advice on where in the development of your product you may benefit from the use of a methodology
Identify the purposes for using the various activities in a methodology and what you can achieve or produce from it
Visualize the link between methodologies (e.g. Service Design, Behavioural Insights, Lean Startup, Scrum, Roadmapping) and the various phases of the agile development life cycle
Make sure you are using processes that are leading you to successful goals (Match the right operational method for how to best achieve a desired outcome) i.e. do things that work
Process While there is value in a flexible process, teams should have access to best practice information or successful project examples that can help them decide what to do first
Describe the sequence of activities in agile product development
Suggest templates, tools, processes, and standards that can support the production of valuable working code
Demonstrate the alignment of various artefacts to the outcome required by the project

Behavioural Changes

This guide should support your efforts to:

  • Improve the maturity of your team in Continuous Service Improvement
  • Speed up the time for on-boarding new team members
  • Enable the team to achieve the desired the level of discipline
  • Make transparent the approach for implementing Agile Development projects
  • Support the hypothesis and experimentation to evolve the approach for implementing your agile project

Maturity Framework

For the Organization as well as the Product team. Separate assessment of the maturity will help.

Level 3 Advanced 2 Mature 1 Evolving 0 Basic -1 :(
Backlog
User Focus
Transparency
Inspection
Adaptation
Culture
DevOps
Planning
Review
Lean

Concept Phase: Pre-Project Planning

Conduct Service Design

Purpose

To research the user journey towards a given outcome, examining both digital and non-digital touch points.
Please review to the BC Government Service Design website: <www.gov.bc.ca/servicedesign/>
Outputs from these activities may be used to work on a digital service or do a Lean start-up. Service-Design

Behavioural Insights

There are trained staff who can assist in conduct specific behavioural research to identify opportunities to improve services through various behavioural modification techniques and monitor the improvements.

Conduct a Lean startup project

Purpose

Use this activity as a guide for lean product design, definition of success metrics, conduct the first few iterations of your product development, and determine the "go/no-go" exit points. Lean-Start-Up.JPG

Lean Product Design

Success Metrics

  • Behavioural Insights Findings
  • Continuous Improvement Target (nudges)
  • Metrics for measuring success
  • Analytics

First Iterations

  • Scrum Team Building
  • Scrum Sprints
  • Produce an MVP / Highest Value Delivery
  • Plan your releases / epics

Go/No-Go Planning

  • Events the allow you to pivot and refocus
  • Decide early to stop building the wrong thing

Outcome

To define the business opportunity and quickly produce something of value

Tools

  • 5S Plan,
  • Paper or digital mockups
  • User Stories
  • Journey Map
  • Personas
  • Research Plan
  • Scrum Ceremonies
  • Product Backlog
  • Issue Tracker
  • Project Principles
  • Product Roadmap

Inception / Warm Up Phase: Project Initiation

Project Sponsorship

Purpose:

  • Garnering project support
  • Project funding
  • Form the Agile team

Agile DevOps Processes and Tools

Purpose:
Artefacts:

  • Establish Team Collaboration channels (e.g. Slack channel on https://devopspathfinder.gov.bc.ca)
  • Set up Documentation Repository (e.g. Public: Github Wiki on your code repository, Private: Confluence, SharePoint)

Determine the initial architecture

Purpose:
Artefacts:

Architecture Strategy

DevOps Tool-chain (Prepare a Development Environment)

Purpose:

Configure Deployment Pipeline Features

Feature Notes
Merging Pull Requests a github webhook notifies jenkins of a commit
Code Compilation oc build is called by jenkins
Integration Tests written in python, see tests.py
Deployment oc deply called after the built image is tagged
Functional Tests each test scenario template will be run, each having many test permutations
Code Testing Coverage Report will show what lines of code the tests are activating
Code Complexity Analysis an assessment of the code
Code Security Scan displays bugs and errors to be adressed
Data Model Inspection shows reports of the tables, columns, relationships, constraints

Deployment Pipeline Tools

Tool Purpose and Usage
Jira or Trello Manage Product Backlog and Task completion status
Github, Git or Stash, Bitbucket Manage Source Code, documentation of code changes
Jenkins Control the pipeline flow
NavUnit Functional Testing
Gradlew or Maven Builds the software
Sonarqube Scans code for various testing purposes like test coverage, code complexity or code quality
Schema Spy Graphical inspection of the physical database as implemented

Estimate

Purpose

  • To refine the Roadmap timelines
  • Be able to report on changes to Scope and/or Budget
  • Understand the definition of done

Tools

  • Backlog of User Stories with story points
  • An initial range estimate of team velocity
  • Burn down chart using the gross and net velocity to give a date range

Construction Iterations

Requirements, Design, Development and Testing

Purpose

To

Tools

  • Behavior Driven Development
  • Low Fidelity Mockups for rapid user feedback and design
  • Description of the Data, logical data model
  • High Fidelity Mockups to clarify the Definition of Done for a feature
  • Data Model Development (Spreadsheet for logical model)
  • Behavior Driven Development (BDD) Scenarios, (Tests)
  • Automated Code Generation
    • CRUD operations for all data objects
    • API to calls on the CRUD operations
    • Physical Database Models
  • Custom API Specification & System Functions development
  • Automated Integration Tests (ensure that APIs function)
  • Functional Tests

Reference Materials:

  1. Agile-Resources