The Modern Agile Application Lifecycle Management...

39
The Modern Agile Application Lifecycle Management Methodology & Tools Alon Fliess, Chief Architect http:// codevalue.net [email protected] Modern ALM - Scrum & TFS 1

Transcript of The Modern Agile Application Lifecycle Management...

The Modern AgileApplication Lifecycle Management

Methodology & Tools

Alon Fliess, Chief Architect

http://[email protected]

Modern ALM - Scrum & TFS1

The Lecture Goal

Introduce the Modern TFS based Agile (Scrum) ALM process in order to improve your application development method

Modern ALM - Scrum & TFS2

About CodeValue

Modern ALM - Scrum & TFS3

CodeValue is the home of software experts. CodeValue builds software tools, foundations and products for the software industry. CodeValue offers mentoring, consulting and project development services.

http://codevalue.net

Agenda• Introduction to Agile Methodologies

• Introduction to Scrum

• TFS – Modern ALM Tool for Agile Teams

• The Scrum Process in TFS

• Best Practices

Modern ALM - Scrum & TFS

Introduction to Agile Methodologies• Individuals and interactions over processes and

tools

• Working software over comprehensive documentation

• Customer collaboration over contract negotiation

• Responding to change over following a plan

Modern ALM - Scrum & TFS

Twelve principles underlie the Agile Manifesto• Customer satisfaction by rapid delivery of useful software

• Welcome changing requirements, even late in development

• Working software is delivered frequently (weeks rather than months)

• Working software is the principal measure of progress

• Sustainable development, able to maintain a constant pace

• Close, daily co-operation between business people and developers

• Face-to-face conversation is the best form of communication (co-location)

• Projects are built around motivated individuals, who should be trusted

• Continuous attention to technical excellence and good design

• Simplicity- The art of maximizing the amount of work not done - is essential

• Self-organizing teams

• Regular adaptation to changing circumstances

Modern ALM - Scrum & TFS

Introduction to Scrum

• Scrum is a process implementation of Agile

• Developed early 1990’s by Ken Schwaber and Jeff Sutherland

• First published on 1995

• Surpassed waterfall on 2008

Modern ALM - Scrum & TFS

Scrum Principles• Transparency

– The process must be visible

• Inspection– Scrum users must frequently inspect Scrum artifacts and progress toward a

goal to detect undesirable variances

• Adaptation– If an issue is inspected the process must be adjusted

– An adjustment must be made as soon as possible to minimize further deviation

Complete Guide: http://www.scrum.org/scrumguides

Modern ALM - Scrum & TFS

Scrum Roles

Scrum Master

Product Owner

Team (Dev & QA)

Modern ALM - Scrum & TFS

Other Stakeholders- Managers

- Customers

- External Users

The Scrum Team• The Scrum Team consists of a Product Owner, the

Development Team, and a Scrum Master

• The team model in Scrum is designed to optimize flexibility, creativity, and productivity

• The Product Owner is the sole person responsible for managing the Product Backlog

• The Scrum Master is responsible for ensuring Scrum is understood and enacted

Modern ALM - Scrum & TFS10

The Product Backlog• The Product Backlog is an ordered list of everything that might be

needed in the product• It is the single source of requirements• The Product Owner is responsible for the Product Backlog

– its content, availability, and ordering

• A Product Backlog is never complete– It evolves as the product and the environment in which it will be used

evolves

• The Product Backlog lists all features, functions, requirements, enhancements, and fixes

• Product Backlog items have the attributes of a description, order, and estimate

Modern ALM - Scrum & TFS11

Sprint – The Heart of Scrum• Duration: a week, two, three or a month• A “Done”, useable, and releasable product Increment is created• A new Sprint starts immediately after the conclusion of the previous Sprint• Sprints contain Sprint Planning Meeting, Daily Scrums, the development

work, the Sprint Review, and the Sprint Retrospective• During the Sprint:

– No changes are made that would affect the Sprint Goal– Development Team composition remains constant– Quality goals do not decrease

• Each Sprint has a definition of what is to be built• Sprints enable predictability by ensuring inspection and adaptation of

progress • Sprints also limit risk to (max) one calendar month of cost

Modern ALM - Scrum & TFS12

13

Ask for

Feedback

Stakeholder Gives Feedback

Feedback

Incorporated

Plan

a Sprint

Run

a Sprint

Daily Cycles

Manage the

Backlog

Deploy to

Stakeholders

Telling the

story

Scrum Process CycleScrum Basics

• Product Backlog

• Sprint

• Sprint Backlog

• Tasks

• Meetings

Modern ALM - Scrum & TFS

Scrum MeetingsRelease Planning

Plan the scope of a Release

Sprint Planning Plan the scope of a Sprint in a Release

Daily Meeting What did you do yesterday? What will you do today? Are there any impediments in your way?

Sprint Review Reviewing what was done in the Sprint

Sprint Retrospective What worked? What didn't work? What will we do differently?

15

Agile Analysis• Let’s begin by describing what agile analysis isn’t:

– It isn’t a phase in the lifecycle of your project

– It isn’t a task on your project schedule

– It isn’t a means unto itself

• What it should be:– Communication rich

– Highly iterative & incremental (Analysis Through the Lifecycle)

– Exploration and illumination of the problem space

– Estimation and prioritization of requirements

– Results in artifacts that are just good enough

Introduction to TFS

Modern ALM - Scrum & TFS18

• The first ALM tool designed for Windows\.NET ecosystem

• First release by Microsoft in 2005

• Key features:

– Version Control

– Work Item Tracking

– Build Automation

– Project Management

– Test Planning & Automation

– Reporting

TFS – The Tool for Modern ALM

Modern ALM - Scrum & TFS19

Define Design Develop Build Test Deploy

Scrum Process Implementation in TFS

Modern ALM - Scrum & TFS20

• New Team Project with a scrum process template

• Users & Groups

• Areas & Iterations

• Work Items

• Feedback

• Reporting

Team Project

A team project is a collection of work items, code, tests, work products, metrics, that is used by a defined team to track a common set of related work

Modern ALM - Scrum & TFS21

You can customize the process template

Users & Groups

Modern ALM - Scrum & TFS22

(Global) ServiceTechnical Writers

Administrating Users & Groups:

Product OwnersScrum MastersDevelopersQA ManagersTestersProject ManagersApplication

Work Items Types

Modern ALM - Scrum & TFS23

• What is a work item?

Types:

• Product Backlog Item

• Task

• Bug

• Sprint

• Test Case (+Shared Step)

Custom Work Item Types:• Your Specific Work Item• Examples:

• HLD• Custom Code Review• Enhancement Request

Work Items Relations

Modern ALM - Scrum & TFS24

Product Owner ResponsibilitiesTFS Actions:

Modern ALM - Scrum & TFS25

• Creating a new PBI

• Viewing the Backlog

• Assigning iteration

• Assigning priority

• Approving or Removing PBIs

PBI

Modern ALM - Scrum & TFS26

• The Product Backlog Items (PBIs) define the individual features (User Story)

• The PBI needs to be approved, committed and when all tasks and tests are done, its done

Scrum Master ResponsibilitiesTFS Actions:

Modern ALM - Scrum & TFS27

• Viewing the approved PBIs

• Linking a new Task to a PBI

• Assigning a sprint

• Assigning tasks to the team

• Creating new Sprints and Iterations

• Handles Impediments

Impediments• Impediments are obstacles to progress• If a task, bug or PBI is blocked, then an impediment is

created• Each impediment is linked to a PBI, task or bug • The Scrum Master’s responsibility is to remove

impediments• Examples of impediment:

– Technical issues - missing a hardware– Human resource - Sickness– Unclear requirement

Modern ALM - Scrum & TFS28

Team ResponsibilitiesTFS Actions:

Modern ALM - Scrum & TFS29

• Linking a new Task to a PBI

• Update states

• Update remaining

• Report Impediments

Development Task

30

• Each development task must be linked to at least one of the following:– Parent PBI

– Another task

– Or a bug

• Each task should be tested by a test case

• A task is done by a developer, mean “ready for testing”

Bug

Modern ALM - Scrum & TFS31

• Each bug must be linked to at least one parent PBI or task

• Each new bug should be tested by a test case

• A bug is done by a tester, mean “verified as fixed”

TFS Clients

Visual Studio Team Explorer

Web Access

Excel, Outlook, Word

MS Project

Modern ALM - Scrum & TFS32

Command line (tf.exe)

3rd party tools (TFS-API)

Report – Burndown Chart

Modern ALM - Scrum & TFS33

More Reports

Modern ALM - Scrum & TFS34

Agile With TFS Summary

Modern ALM - Scrum & TFS35

Benefits Obtained From Implementing Agile

• VersionOne Research:

Modern ALM - Scrum & TFS36

Q & A

37 Modern ALM - Scrum & TFS

Learning Resources

Agile Planning Tools In Visual Studio Team System

http://msdn.microsoft.com/en-us/magazine/dd347827.aspx

Analyzing Work Item and Test Case Data Using the Work Item Perspective

http://msdn.microsoft.com/en-us/library/ms244678

Course Title38

Modern ALM - Scrum & TFS39