Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

33
Introduction to Agile Introduction to Agile Software Development Software Development Matt Henson Matt Henson Mt. Baker PMI Mt. Baker PMI

Transcript of Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

Page 1: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

Introduction to Agile Introduction to Agile Software DevelopmentSoftware Development

Matt HensonMatt HensonMt. Baker PMIMt. Baker PMI

Page 2: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

AgendaAgenda

About the Speaker

Software Development Process

Review of Traditional/Waterfall

Introduction to Agile

Example Agile Project Breakdown

Common myths and misconceptions

Mt. Baker PMI2

Page 3: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

Who am I?Who am I? IT Professional

BS in Computer Science; MBA

~25 years of IT experience in Healthcare (Acute Care and Insurance)

Experienced in the following roles:Developer, System Administrator, DBA, PC/Network Support, IT Management, Project Management

Certified PMP

Currently working as “Lead Environment Coordinator” for The Regence Group IT Infrastructure Project Management

Strategic Environment Management across the project portfolio

Mt. Baker PMI3

Page 4: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

Software Development ProcessSoftware Development Process

A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle and software process.

There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.

4Mt. Baker PMI

•Courtesy of Wikipedia

Page 5: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

Waterfall Development ProcessWaterfall Development Process

The waterfall model is a sequential development process, in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance.

The first formal description of the waterfall model is often cited to be an article published by Winston W. Royce in 1970 although Royce did not use the term "waterfall" in this article.

5Mt. Baker PMI

•Courtesy of Wikipedia

Page 6: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

Traditional Software DevelopmentTraditional Software DevelopmentAlso called “Waterfall”Also called “Waterfall”

Mt. Baker PMI6

•Courtesy of Wikipedia

Page 7: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

Waterfall PrinciplesWaterfall Principles Basic principles of the waterfall model are:

Project is divided into sequential phases, with some overlap and splash-back acceptable between phases.

Emphasis is on planning, time schedules, target dates, budgets and implementation of an entire system at one time.

Tight control is maintained over the life of the project through the use of extensive written documentation, as well as through formal reviews and approval/signoff by the user and information technology management occurring at the end of most phases before beginning the next phase.

7Mt. Baker PMI

•Courtesy of Wikipedia

Page 8: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

8

Waterfall ManifestoWaterfall Manifesto

Mt. Baker PMI8

Page 9: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

Some interesting facts …Some interesting facts …

1995 : The CHAOS Report ** Type 1 : Project Success

On time on budget, all features are delivered (16.2%)

Type 2 : Project Challenged Completed and operational but over budget, fewer features

than specified (52.7%)

Type 3 : Project Impaired Cancelled at some stage (31.1%)

**Tom Clancy 1995 | The Standish Group International

Mt. Baker PMI9

Page 10: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

Dilbert on Software Development ProjectsDilbert on Software Development Projects

Mt. Baker PMI10

Page 11: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

Mt. Baker PMI11

Page 12: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

12

The Results Please…The Results Please…

Waterfall Development is often ineffective

Customers unhappy / Perceive lack of quality

Requirement Changes are dealt through risk avoidance strategy Resist requirement change

Eliminating change means decreased business satisfaction (aka “quality”)

This has led to evolutions in the way we approach software development

Mt. Baker PMI12

Page 13: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

13

Introducing AgileIntroducing Agile

A brave new way of developing software

Don’t avoid risk, take it as unavoidable and accept it; Manage It!

Requirement Changes are dealt through risk acceptance strategy

Mt. Baker PMI13

Page 14: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

14

Evolution of AgileEvolution of Agile

Agile is evolutionary not revolutionary

The context of developing software is changing

Technology driven business innovation

Dynamic Market conditions

Decreased Time to Market

Decreased Requirement Stability

What does it mean for software development?

Pushes Traditional IT out of the “comfort zone”, but into a focus on “what’s next”

Mt. Baker PMI14

Page 15: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

15

Definition of AgileDefinition of Agile

Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams.

The term was coined in the year 2001 when the Agile Manifesto was formulated.

Mt. Baker PMI15

•Courtesy of Wikipedia

Page 16: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

16

Agile ManifestoAgile Manifesto

We are uncovering better ways of developing software by doing it and helping others do it. Through this work

we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Mt. Baker PMI16

Page 17: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

17

Different Types of AgileDifferent Types of Agile

Mt. Baker PMI17

XP = Extreme Programming;

DSDM = Dynamic Systems Development Method

FDD = Feature Driven Development

Page 18: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

18

Principles Behind Agile ManifestoPrinciples Behind Agile Manifesto

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software

Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage

Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale

Mt. Baker PMI18

Page 19: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

19

Principles Behind Agile ManifestoPrinciples Behind Agile Manifesto

Business people and developers must work together daily throughout the project

Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done

The most efficient and effective method of conveying information to and within a development team is face-to-face conversation

Working software is the primary measure of progress

Mt. Baker PMI19

Page 20: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

20

Principles Behind Agile ManifestoPrinciples Behind Agile Manifesto

Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely

Continuous attention to technical excellence and good design enhances agility

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

The best architectures, requirements, and designs emerge from self-organizing teams.

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Mt. Baker PMI20

Page 21: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

21

Risk Management thru Iterative DevelopmentRisk Management thru Iterative Development

Minimize risk by developing software in short timeboxes, called iterations, which typically last one to four weeks

Each iteration is like a miniature software project of its own, and includes all of the tasks necessary to release the mini-increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation

Mt. Baker PMI21

Page 22: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

22

Common Agile Terms/ConceptsCommon Agile Terms/Concepts

JAD Sessions (Joint Application Design) StoryCard (method for documenting high-level

requirements) Use Cases (method for documenting detail-level

requirements) Sprint/Iteration (1-4 week period used to focus on

specific deliverables) Scrum (daily meetings among project team, focused

on the following: What was accomplished yesterday? What is planned for today? What are my current challenges? Need help resolving?

Mt. Baker PMI22

Page 23: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

23

Example Iterations PlanExample Iterations Plan

Mt. Baker PMI23

Page 24: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

24

Example Iterations (2-3 week cycles)Example Iterations (2-3 week cycles)

Initiation: Insurance Subscriber/Member Application Develop initial list of Requirements/Break into Story Cards:

Login: Login to the Application Register: Register New User MemInq: Membership Inquiry ClmInq: Claims Inquiry ID Card: Request for Member ID Card DisplayPHR: Display Personal Health Record EditPHR: Edit Personal Health Record Chat: Online Support Chat

Mt. Baker PMI24

Page 25: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

25

Example Iterations (continued)Example Iterations (continued)

Iteration 1: Elaboration: Delineate Story Cards: Login, Register, Chat Construction: Draft Initial Architecture/Identify Infrastructure

Iteration 2: Elaboration: Delineate Story Cards: MemInq, ID Card, ClmInq Construction: Do Proof of Concept for Online Support Chat Construction: Begin Dev Infrastructure

Iteration 3: Elaboration: Delineate Story Cards: DisplayPHR, EditPHR, Chat Construction: Development on Story Cards: Login, Register Construction: Finish Dev/Begin Test Infrastructure

Mt. Baker PMI25

Page 26: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

26

Example Iterations (continued)Example Iterations (continued)

Iteration 4: Test: Validation of Story Cards : Login, Register Construction: Dev on Story Cards: MemInq, Chat Construction: Finish Test/Begin PROD Infrastructure

Iteration 5: Test: Validation of Story Cards: MemInq, Chat Construction: Dev on Story Cards: EditPHR, ClmInq Construction: Finish PROD Infrastructure

Iteration 6: Test: Validation of Story Cards : EditPHR, ClmInq Construction: Dev on Story Cards: IDCard, DisplayPHR Construction: Bug fixes

Mt. Baker PMI26

Page 27: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

27

Example Iterations (continued)Example Iterations (continued)

Iteration 7: Test: Validation of Story Cards : IDCard, DisplayPHR, Bug Fixes Test: Data Preparation for User Acceptance Testing Construction: Bug Fixes

Iteration 8: Test: Begin User Acceptance Testing Test: Begin Performance Testing

Iteration 9: Test: Complete User Acceptance Testing Construction: Bug Fixes for Production Issues Transition: Go-Live w/ Application

Mt. Baker PMI27

Page 28: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

28

Myths & MisconceptionsMyths & Misconceptions

Agile __________ Is a silver bullet Will solve my resource issues Has no planning/ documentation/architecture/

<insert pet peeve> Is a license to hack Creates quality issues Is undisciplined Doesn’t build on my previous experience /

expertise Is not proven Is not being used by industry leaders

Mt. Baker PMI28

Page 29: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

29

Myths & MisconceptionsMyths & Misconceptions

Agile methods are sometimes characterized as being at the opposite end of the spectrum from "plan-driven" or "disciplined" methodologies This distinction is misleading, as it implies

that agile methods are "unplanned" or "undisciplined“

A more accurate distinction is to say that methods exist on a continuum from “Agile/Adaptive" to “Waterfall/Predictive”

Mt. Baker PMI29

Page 30: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

30

Myths & MisconceptionsMyths & Misconceptions

Adaptive methods focus on adapting quickly to changing realities

When the needs of a project change, an Agile team changes as well

An Agile team will have difficulty describing exactly what will happen in the future. The further away a date is, the more vague an Agile method will be about what will happen on that date

An Agile team can report exactly what tasks are being done next week, but only which features are planned for next month. When asked about a release six months from now, an Agile team may only be able to report the mission statement for the release, or a statement of expected value vs. cost.

Mt. Baker PMI30

Page 31: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

31

Myths & MisconceptionsMyths & Misconceptions

Waterfall methods, in contrast, focus on planning the future in detail

A Waterfall team can report exactly what features and tasks are planned for the entire length of the development process

The plan is typically optimized for the original destination and changing direction can cause completed work to be thrown away and done over differently

Waterfall teams have difficulty changing direction

Mt. Baker PMI31

Page 32: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

32

Myths & MisconceptionsMyths & Misconceptions

Agile methods vs Capability Maturity Model (CMM) CMM/CMMi is NOT a method or a process

model

It is a reference process benchmark

CMM/CMMi don’t prescribe what process (for developing software that is) to use

Agile Software Development process can be benchmarked on CMM/CMMi models

Initial, Managed, Defined, Quantitatively Managed & Optimizing

Mt. Baker PMI32

Page 33: Introduction to Agile Software Development Matt Henson Mt. Baker PMI.

Questions?Questions?

Thank You!Thank You!