Date post: | 18-Jan-2016 |
Category: |
Documents |
Upload: | clarissa-bradley |
View: | 223 times |
Download: | 0 times |
Introduction to Agile Introduction to Agile Software DevelopmentSoftware Development
Matt HensonMatt HensonMt. Baker PMIMt. 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
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
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
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
Traditional Software DevelopmentTraditional Software DevelopmentAlso called “Waterfall”Also called “Waterfall”
Mt. Baker PMI6
•Courtesy of Wikipedia
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
8
Waterfall ManifestoWaterfall Manifesto
Mt. Baker PMI8
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
Dilbert on Software Development ProjectsDilbert on Software Development Projects
Mt. Baker PMI10
Mt. Baker PMI11
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
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
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
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
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
17
Different Types of AgileDifferent Types of Agile
Mt. Baker PMI17
XP = Extreme Programming;
DSDM = Dynamic Systems Development Method
FDD = Feature Driven Development
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
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
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
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
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
23
Example Iterations PlanExample Iterations Plan
Mt. Baker PMI23
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
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
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
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
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
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
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
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
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
Questions?Questions?
Thank You!Thank You!