agile and iterative methods with bmc remedy ar system › servlet › jiveservlet... · of several...
TRANSCRIPT
9/5/2006
Agile and Iterative Methods with BMC Remedy AR System
Rich O’Connell, Enterprise System Architect, YellowTwist Inc.
9/5/2006 ©2006 BMC Software2
Overview
Agile and Iterative methods with BMC® Remedy® Action RequestSystem® (AR System®)
› Description of Agile and Iterative methods› The problem Agile and Iterative methods are trying to address› How they differ from other methods› How they can be incorporated into AR System development› Case Studies› Summary› References› Questions
9/5/2006 ©2006 BMC Software3
Agile and Iterative methods with AR System Iterative Methods – Definition
› Iterative Development– An approach to building software in which the overall lifecycle is composed
of several small phases or iterations in a sequence.– Each iteration is a self contained mini project– The goal of each iteration is to produce stable, tested, partially complete
software.– Most iterations are internally released to solicit feedback from select
customer representatives, product managers, QA, etc.– The final iteration is the production release.
9/5/2006 ©2006 BMC Software4
Agile and Iterative methods with AR System Agile Methods - Description
› The Agile Software Alliance, a group of 17 software methodologists, formulated a collection of principles to address the shortcomings of the traditional software development process.
› The core tenets of agile development are:– Individuals and interactions over process and tools– Working software over comprehensive documentation– Customer collaboration over contract negotiation– Responding to change over rigidly following a project plan
› Agile methods are a subset of iterative methods
9/5/2006 ©2006 BMC Software5
Agile and Iterative methods with AR System The Problem – Why is this important
› “Analysts report that as many as 71 percent of software projects that fail do so because of poor requirements, making it the single biggest reason for project failure—bigger than bad technology, missed deadlines or change management fiascoes.”
CIO Magazine – 11/15/2005
9/5/2006 ©2006 BMC Software6
Agile and Iterative methods with AR System Factors that contribute to Poor Requirements (Customer)
› Customer Problems with Requirements– Are not sure what they want.– Have difficulty articulating all they want and know.– The details of what they want are only revealed during development.– The details are overwhelmingly complex.– As they see the product develop, they change their mind.– External forces (e.g. competitor’s products) lead to changes or enhancement
requests.
9/5/2006 ©2006 BMC Software7
Agile and Iterative methods with AR System Factors that contribute to Poor Requirements (IT)
› IT Problems with Requirements:– Has difficulty capturing, organizing and managing requirements. – Does a poor job of ensuring that requirements are understood.– Is too eager to please and does a poor job of assessing needs vs. wants
9/5/2006 ©2006 BMC Software8
Agile and Iterative methods with AR SystemIT and Customer Communication
9/5/2006 ©2006 BMC Software9
Agile and Iterative methods with AR SystemThe Agile and Iterative Lifecycle
Feedback
Build for Some Requirements
Build for Some Requirements
Build for Some Requirements
Feedback
CustomerRelease
InternalReleaseInternal
Release
CodeBase
Time
9/5/2006 ©2006 BMC Software10
Agile and Iterative Methods with AR SystemHow do they address the problem ?
› How Agile Methods Help– Divide the problem into smaller, more manageable pieces.– Addresses high risk areas early in the process.– Focuses on what is most important to the customer.– Accept change as inevitable and plan for it as part of the lifecycle.– Constantly solicit input from real customers and allow for incorporating it into
the product.– Better Communication between customers and IT Staff !!!
9/5/2006 ©2006 BMC Software11
Agile and Iterative Methods with AR System How is it different from other Methods
› Waterfall Methodology› Prototyping Methodology
9/5/2006 ©2006 BMC Software12
Agile and Iterative methods with AR System Waterfall Methodology –Definition
› Waterfall Methodology Definition– Requirements are known up front – Each phase is dependent on completion of previous phase– Customer works from documents and specifications– Software is delivered in the final stage of the lifecycle– Little or no accommodation for change
9/5/2006 ©2006 BMC Software13
Agile and Iterative methods with AR System Waterfall Methodology Lifecycle
Analysis
Design
Code
Test
Maintain
Implement
9/5/2006 ©2006 BMC Software14
Agile and Iterative methods with AR System Waterfall Methodology - Problems
› Waterfall Methodology Problems– Assumes that requirements are known and stable – Does not inherently address high risk areas early in the process– Customer doesn’t see any working software until late in the process– Does not accommodate change
9/5/2006 ©2006 BMC Software15
Agile and Iterative methods with AR System Waterfall Methodology - Rope Swing Analogy
As proposed by the project sponsor
9/5/2006 ©2006 BMC Software16
Agile and Iterative Methods with AR System Waterfall Waterfall Methodology – Rope Swing Analogy
As specified in the requirements document
9/5/2006 ©2006 BMC Software17
Agile and Iterative methods with AR System Waterfall Methodology – Rope Swing Analogy
As designed by the senior analyst
9/5/2006 ©2006 BMC Software18
Agile and Iterative methods with AR System Waterfall Methodology – Rope Swing Analogy
As produced by the programmers
9/5/2006 ©2006 BMC Software19
Agile and Iterative methods with AR System Waterfall Methodology – Rope Swing Analogy
What the customer really wanted
9/5/2006 ©2006 BMC Software20
Agile and Iterative methods with AR System Prototype Methodology –Description› Prototyping - Definition
– A mockup or prototype of the system is built (paper or software)– The prototype is used to refine/clarify requirements– Requirements are declared complete after a number of prototype revisions– System design, build and test start after prototype and requirements are
complete.
9/5/2006 ©2006 BMC Software21
Agile and Iterative methods with AR System AR System Application Development Lifecycle
RefineRequirements
UsabilityCheckpoint
User Input / Changes
Go-Live Checkpoint
RequirementsAnalysis
System Design /Prototype Development User Review /
Testing Implementation Maintenance
Stage 1 Stage 2 Stage 3
© BMC Corporation
9/5/2006 ©2006 BMC Software22
Agile and Iterative methods with AR System Prototyping Method - Problems
› Prototyping Methodology Problems– Assumes that requirements are known and stable after prototype is
complete.– Does not inherently focus on risk areas first.– Customer doesn’t see any working software until later in the process– Does not accommodate changing requirements after prototyping is
complete.– Carries an inherent risk that a “thrown together” software prototype will be
forced into production.
9/5/2006 ©2006 BMC Software23
Agile and Iterative methods with AR SystemThe Agile and Iterative Lifecycle
Feedback
Build for Some Requirements
Build for Some Requirements
Build for Some Requirements
Feedback
CustomerRelease
InternalReleaseInternal
Release
CodeBase
Time
9/5/2006 ©2006 BMC Software24
Agile and Iterative methods with AR System Agile and Iterative Rope Swing Analogy
Iteration 1 – Choose tree branch• Customer verifies height, strength of the branch • Choose different branch if necessary
Iteration 2 – Attach rope to branch and cut to length• Customer verifies rope length and knot• Re-tie or adjust length as necessary.
Iteration 3 – Attach rope to tire• Customer verifies knot and height of swing
from ground.• Re-tie or adjust length as necessary.
Iteration 4 – Swing tire• Customer verifies swing action• Adjust knots as necessary
The Agile way
9/5/2006 ©2006 BMC Software25
Agile and Iterative methods with AR System How to apply this to AR System development
› Develop an iteration plan based on:– High Risk areas – complex critical workflow, performance considerations– Customer importance– Dependencies between developers or system interfaces– Time
› Adapt and Adjust– Solicit feedback from customers– Adjust and change based on feedback and risk areas– Produce working software– Re-work iteration plan
9/5/2006 ©2006 BMC Software26
Agile and Iterative methods with AR System Agile and Iterative Methods – AR System components
Early Iterations Later IterationsTime
Data/GUI• Critical Forms,
Fields• Menus,
Navigation Active Links
Simple Workflow• More complex Active
Links• Filters
Critical System Interfaces
• APIs, Web Services, DSO
Complex Workflow, Reports, etc
• SR Routing• Reports• Other required
workflow
9/5/2006 ©2006 BMC Software27
Increment 1
Code Base TargetEnvironments
Data Persistence• Forms (Main)• Fields• Help Text• GUI Design• Core Components
Increment 2
Menus/Navigation• Menus• Navigation to/from forms• Lookup Data• Corrections from previous increments
Increment 3Business Rules• Field Validation• System Interfaces• Simple Workflow
Increment 4
Complex Biz Rules• Routing• Complex Biz Rules• Corrections from previous increments
Release Packages
QA/Test
CustomerTest
Increment n(Time boxed)
Additional Biz Rules• Additional business rules• Corrections from previous increments
. . .
Agile and Iterative methods with AR System Iteration Plan in AR System Development (Sample)
9/5/2006 ©2006 BMC Software28
Agile and Iterative methods with AR System Agile/Iterative Methods – Case Studies – Customer A
› Manufacturing Business– Custom Change Management AR System Application– Heavily Process Oriented– Traditional users of the Waterfall methodology
› Used iterative techniques to address:– Large development team with lots of interdependencies– Customer request to have working software early in the process– Complex product with complex business rules– High risk areas
› Iteration Plan– Major Forms and fields in first iteration – focus on GUI and data– Menus and navigation workflow in second iteration – focus on flow of
application– Time boxed iteration (weekly) for complex workflow, reports, etc for
subsequent iterations.
9/5/2006 ©2006 BMC Software29
Agile and Iterative methods with AR System Agile/Iterative Methods – Case Studies – Customer A
› Company A Results– Successes
• Dependencies between developers were satisfied early on (large team)• Code Integration was forced earlier in the process• Areas of high risk were addressed up front• Customers were able to interact with a partially functioning system early in the
lifecycle.– Difficulties
• Customers and testers were uncomfortable with partially working software• It was difficult to keep the specs/test scripts (as dictated by the process) up to
date with the changing software.• The code promotion process had difficulty keeping up with the rate of change
– Conclusions• Some success was achieved• The organization’s inability to adapt to change made it difficult to fully realize all
of the benefits of agile and iterative methods.
9/5/2006 ©2006 BMC Software30
Agile and Iterative methods with AR System Agile/Iterative Methods – Case Studies – Customer B
› Telecommunications Business– Custom Help Desk AR System Application– Not Process Oriented– Traditional users of the varied methods (if any)
› Used iterative techniques to address:– Customers’ request to have working software early in the process– Complex product with complex business rules
› Iteration Plan– Major Forms and fields in first iteration – focus on GUI and data– Time boxed iteration (weekly, then bi-weekly) for more complex workflow,
reports, etc for subsequent iterations.– Iteration content was customer driven based on business priority.
9/5/2006 ©2006 BMC Software31
Agile and Iterative methods with AR System Agile Iterative Methodology – Case Studies – Customer B
› Company B Results– Successes
• Dependencies between developers were satisfied early on• Code Integration was forced earlier in the process• Areas of high risk were addressed up front• Customers were able to interact with a partially functioning system early in the lifecycle.• Customers were fully engaged in the requirements feedback loop early on.• Processes for code promotion, testing, etc were flexible and light enough to accommodate
the high rate of change.
– Difficulties• Documentation was not kept up to date
– Conclusions• Success was achieved• Customers were very satisfied with the implementation• The organization’s ability to adapt to change allowed it to fully realize all the benefits of
agile/iterative methods.
9/5/2006 ©2006 BMC Software32
Agile and Iterative methods with AR System Agile and Iterative Methods– Application Appropriateness
› Appropriate for applications– Where there is a high degree of novelty or complexity– Where the system is a complete redesign of an existing business process– Where its never been done before
› Inappropriate for applications– For "cookie cutter" applications – Slight modification of out of the box solutions (i.e. change management
installation)
9/5/2006 ©2006 BMC Software33
Agile and Iterative methods with AR System Agile and Iterative – Organizational Considerations
› More Successful Implementations– Companies that are used to a high rate of change and have processes that
can support it.– Organizations that have no barriers in engaging with customers.– Companies where customers are willing to take an active role in the process.– Companies where IT Staff are willing to try something new.
› Less Successful Implementations– Companies that are used to complete up-front design and engineering.– Companies where the introduction of change is disruptive
9/5/2006 ©2006 BMC Software34
Agile and Iterative methods with AR System Specific Agile and Iterative Methods
XP - Extreme Programming– Small Frequent Releases– Simple Design– Test Driven Development– Pair Programming– Continuous Integration– Just enough Documentation
Scrum – Self Directed Teams– Daily Stand-ups– 30 day iteration cycle– Customer Demos– Client Driven adaptive Planning
9/5/2006 ©2006 BMC Software35
Agile and Iterative methods with AR System Agile and Iterative – Web Resources
› Agile in General – www.agilealliance.com› XP Programming – www.extremeprogramming.org› Agile Modeling – www.agilemodeling.com› Agile Project Management – www.cutter.com› Agile Methods – www.martinfowler.com› Agile Management – www.craiglarman.com› Agile Wiki – www.c2.com/cgi/wiki?FindPage› Agile and AR System – www.yellowtwist.com
9/5/2006 ©2006 BMC Software36
Agile and Iterative methods with AR System Q&A
› Questions ???