using the agile methodology to mitigate the risks of ... · pdf file• agile software...
TRANSCRIPT
Transdyne CorporationCMMI Implementations in Small & Medium Organizations
SM CMM, CMMI, SCAMPI, SCAMPI Lead Assessor, SCAMPI Lead Appraiser, and SEI are service marks of Carnegie Mellon University.
CMM and CMMI are registered in the U.S. Patent and Trademark Office by Carnegie Mellon University.
Using the Agile Methodology to Mitigate the Risks of Highly Adaptive Projects
Dana RobersonQuality Software Engineer
NNSA Service Center
AndDr. Mary Anne HerndonTransdyne Corporation
2
Today
• Risks in Highly Adaptive Projects
• Typical Management Scenarios
• Agile Software Development Methodology
• Steps for Implementing CMMI-DEV Practices in
Agile Projects
• Strategy Map for Using Agile Practices
• Benefits
• Lessons Learned
Agenda: Using the Agile Methodology to Mitigate the Risks of Highly Adaptive Projects
CMMI
Agile
3
Using the Agile Methodology to Manage Risks of Highly Adaptive Projects
Dynamic Requirements Impact of customer co-location on requirements management & tasking
Aggressive Schedule Immediate effect of changing customer priorities & direction
Limited Resources Typical work performed on a fixed LOE or time & material basis
Agile Methodology for Risk Management Transdyne Corporationhttp://transdynecorp.comCMMI Implementations in Small & Medium Organizations
Dynamic RequirementsAggressive Schedule
Limited Resources
Risks In Technology & Support Projects
The requirements are ALWAYS changing.
Time and schedules are ALWAYS aggressive.
Resources will ALWAYS be tight.
To mitigate these risks you need processes that address these risks to allow rapid adaptation.
5
Scenario for Risk Management Practices in Small Businesses
Transdyne Corporationhttp://transdynecorp.comCMMI Implementations in Small & Medium Organizations
Small businesses often function in focused markets as:• Suppliers of specialized on-site
technical services, key personnel, applications or products
• Domain specialists• Staff augmentationThese focused markets may not provide needed revenue or market share growth to readily prosper in today’s economy.
Costs of improving project and risk management practices are considered key investments in these vulnerable cash flow environments.
Both near and long term cash flow analysis typically includes factors such as:• Customer base stability & revenue cycles • Projected revenue growth• Costs of acquiring appropriate resources to improve
management practices, such as training, process engineers and collaborative software and hardware.
6
Understanding and improving project management and risk management practices is a key factor in revenue growth.Planning improvements typically includes assessment of critical factors such as:• Required resources (available staff, feasible schedule,
platforms, facilities, collaborative tools)• Past performance data (costs, schedules, lessons
learned) • Training in the domain and software development
method (Agile)• Risk identification and impact assessment• Risk mitigationA practical knowledge base useful for improving management practices can be provided by process models, such as CMMI and ISO 9000. Obtaining CMMI benchmarks and ISO 9000 certifications are often stepping stones to expand government and commercial customers.
Selecting and implementing any process and life cycle models is both costly and can be risky as there are no guarantees of success on-site with the customer.
Scenario for Implementing Risk Management Practices in Small Businesses (continued)
Transdyne Corporationhttp://transdynecorp.comCMMI Implementations in Small & Medium Organizations
$$$
Planning a process improvement strategy typically includes identifying problematic projects with typical issues such as:
• Limited resources and ambitious schedules• Lack of experience and staff training• Excessive staff turnover rate• Stability of current customer base• Projection of market growth• Over commitment of key staff• Inaccurate planning data for costs and schedule
Implementing a process improvement strategy, small businesses should customize a path of small, adjustable steps.
An example of a path of small steps is a hybrid approach of improving project and risk management practices in CMMI-DEV first.
The next step is a selection of a life cycle model that is suitable for the work requirements, location and level of customer participation.
Scenario for Implementing Risk Management in Small – Medium Businesses (continued)
Transdyne Corporationhttp://transdynecorp.comCMMI Implementations in Small & Medium Organizations
8
Building Bridges Using CMMI-DEV and Agile to Manage Risk
Measurement
& Analysis
Resource Management
Continuous Improvement
Process Approach
Customer Focused
CMMI-DEV
Agile life cycle model
CMMI Is Designed to Be Tailoredto Your Business Environment.
Fully align process improvement with your business goals
Look at what you are actually doing, If a “good fit” – document and follow Leverage off existing activities – e.g.
Agile Promote maximum flexibility and
efficiency in your process improvement approach
Emphasize measurement and analysis
Key Process Improvement Factors & Sources of Risks
Resources
Contract Type
Communication
Processes
Business Case
Training
ProjectPlanning
DomainExperience
Life Cycle Models
All KEY process improvement factors introduce sources of risks to developers!
Choosing an incompatible life cycle development modelimpacts all other key process improvement factors.
10
Waterfall
cycle times
impact of changing requirements
direct end user involvement
Agileinadequate training
customer awarenessmanagement advocacy
Spiral
cycle times
impact of changing requirements
direct end user involvement
Sources of Risks in Life Cycle Models
spiral
waterfall
11 11
Practice Implementation Across Small Organizations
CMMIProcess
Management
CMMIProject
Management
CMMISupport
CMMIEngineering
Framework of the CMMI-DEV model provides:1. Increases in implementation
efficiency due to redundancyin model functions, such asProject Management & Support Process Areas and generic practices.
2. Minimal opportunities for conflicts with customer, staff and resources with adequate model understanding
Process Engineer
Organization
12
Steps for Implementing Risk Management with CMMI-DEV & Agile
Understand the Risks
market arearevenue/profitprojected growth
Identify risks:•project specific•technical impacts•mitigation plans•customer involvement
High Medium
Low
Risk Template
Evaluate business opportunity
“Risk of winning”Develop Agile project plan
Lessons Learned
What did we do well?Where were we lucky?What do we need to
improve?
Status risks
Impact Metrics
CostScheduleTechnical
Evaluatemitigation
plansContract typeNew customerTechnical complexityStaff
Key growth Investments:Process & Agile trainingCollaborative H/W & S/WProcess engineer support
13 13
Strategy Map for Implementing Risk ManagementUsing Agile and CMMI-DEV
Dynamic requirements
Aggressive schedule
Scrums
Burn Down (MS Excel)
White BoardsPeer Reviews –
Impromptu & Team Programming
Risk management tools
Agile Method Engineering Techniques
CMMI-DEV Engineering Management Support
Quality Assurance
Configuration Management Measurement Structured
Decisions
Limited resources
Risk reduction is NOT fighting fires or “just in time solutions.”
Reduce variation.
Recognize and document best practices.
• It is simply a way of looking at how we can do our work better.
• A series of actions taken to identify, analyze and improve existing processes.
• These actions often follow a specific methodology or strategy to create successful results.
• Remove activities that have no value to the organization.
• Improve customer satisfaction.• Process improvement is important as it
has often been said that process accounts for 80% of all problems while people account for the remaining 20%.
• Provide lessons learned.• Encourage staff members
to contribute!
Risk Reduction Solution - Process Improvement
Examples of Best Practices BenefitsProven Models – i.e. CMMI-DEV, ISO 9001
Project Planning
Measurement and Control
Peer Reviews
Risk Management
Quality Assurance
Status Reporting
Configuration Management
Agile Software Development
Risks are reduced & mitigated
Repeatability is achieved
Clarity and understanding areincreased
Common terminologies and consistent styles are developedand followed
What are Best Practices and Benefits?
Best practices are effective, high-leverage technical and management PROCESSES that have been implemented and proven on successful projects.
Resistance to Change Lack of Commitment and Resources
“We tried processimprovement before, and itdidn’t buy us anything.”
“CMMI /TQM/Agile/Lean SixSigma/ and best practicesare just another fad.”
“Who’s paying for it? If it isn’t paid for, we’re not doing it.”
“I’m retiring/transferring fromthis job soon, I don’t have to get involved.”
Developers don’t have the time because there is so much rework.
Typical “Roadblocks and Hurdles” to Process Improvement
AGILE Software Development Methodology
Activities are known as 'timeboxes‘.
Each iteration passes through a full software development cycle, including:
planning, requirements analysis, design, unit tests, Quality Assurance testing,coding until the unit tests pass and a working product is finally demonstrated to stakeholders.
“Documentation is no different than software design and coding for assuring repeatability and re-generation.
Strong team discipline is required to code for agility.
At the end of each iteration, stakeholders re-evaluate project priorities with a view to optimizing their return on investment.
Agile emphasizes face to face communication with all stakeholders!
CMMI-DEV
Agile
Quality Product
CMMI-DEV provides process
discipline
Scrum enhances adaptability
and commitment
Agile means being able to
quickly change direction
Agile development methods minimize risk by developing software in multiple 'iterations' of short time frames
Each iteration passes through a full software development cycle
In our Agile projects, SCRUM Boards, Burndown charts and other project and working artifacts were defined and identified as “CMMI artifacts”.
Face to face communication & EA reviews ensure peer review.
At the end of each iteration, stakeholders re-evaluate project priorities and risks.
Agile – Navigating Class IV Rapids (AKA Risk Reduction)
Agilizing CMMI – SCRUM and CMMI
Incorporating CMMI ProcessesTailoring processes to incorporate Agile iterationsMapping CMMI SPs to Agile iterations and artifactsMonitoring and controlling projects
requirements and changestestingdefects
Using Agile at our shop
Software Tools Agile & CMMI-DEV Processes(Process Asset Library)
Visual Source SafeConfiguration ManagementSource Control
Visual StudioDevelopment Environment
SQL Management StudioDevelopment environment
Enterprise ArchitectRequirements managementRequirements traceability
Axosoft OnTimeDefect Management
Defined processesScrumsScrum BoardsSprintsBurn Down – (MS Excel)White BoardsPeer ReviewsTeam programmingPerformance metrics
Where to Start?
• Look at what you have in place– What are you doing well - right now
• Establish your SEPG• Tailor the CMMI process descriptions to map to current processes
– “By-in” by Software Engineering and Management– PAL
• Develop processes for things you are not doing now• Discuss with Software Engineering Team • Train the Team !
• Follow up on how processes are being implemented and• Modify if necessary to get a “best fit” !
Process Area Description
Standards – Developed by TWG within the SEPGavailable to all developers on SharePoint Site
Work Environment Standards Web Design and Usability Guidelines Coding Standards
Process Descriptions – Diagrams
DevelopmentInitial Planning CycleProject BacklogEA
Management –Tracked in EA through testing
Process Descriptions – Mapping
DevelopmentInitial Planning CycleProject BacklogEA
Management –Tracked in EA through testing
Sprint Plan• Testing is built
into each sprint
Sprint Planning• Requirements• Available
resources• Development &
QA
Scrum• Assign tasks
to resources• Reassign
based on burndown
Defect Workflow• Maintenance
resources• QA
assignment
Agile Focus on Quality – Built-In
Agile Resources to Develop Quality Products
class Scrum Process - Logical View
Scrum Lifecycle (Iterative)
Product Backlog
Sprint Backlog
Sprint Planning
Daily Scrum Meeting
Scrum Board
DependentOn
DependentOn
DependentOn
Updates
Updates
Sprint Planning/Scrum
Sprint Planning/PlanDetermine sprint timelineDetermine available resources – risks
ScrumWhat doneWhat PlannedObstacles - Risks
Who, what, howRequirementsCodingTestingBaselinesDocumentation
DeliverableDemonstration to stake holders/CCBDeployment to User Acceptance Testing
Sprint Planning
• Sprint Planning/Plan– Determine sprint timeline– Determine available resources -
• Who, what how– Requirements– Coding– Testing– Baselines– Documentation
• Deliverable– Demonstration to stake holders/CCB– Deployment to User Acceptance Testing
Design Process
• Project Plan– Overall Design
• Sprint Planning• Daily Scrum
– Developer review (Peer)
Gathering, Reviewing and Testing the Requirements
Requirements Definition (Enterprise
Architect)
Requirements Review (EA export to web interface)• Peer Review• Developer review• CCB review
Requirements tied to activities and tests for
traceability
Enterprise Architect
Coding/Unit Testing & Documentation
• Development– Development of Functional unit on DEV environment– Get latest of all code, unit test – Check in Code to Visual Source Safe– At prescribed interval, build full project,
deploy to internal – testing environment– Automated Baseline Capture developed
by team
• Well commented code• Document changes to other developers code• Context sensitive help in development
environment and customer environment• Notes and resolutions in Axosoft OnTime
Developer Interaction with QA reduces Risk
Internal Testing (DEV/QA)• Developer notifies QA of
functionality ready for testing
• Defect found by QA –entered into Axosoft Ontime
• Developer fixes defect rebuilds- workflow in Ontime Ready for testing on TEST
• “Defect Fixed” or “Failed Retest”
User Acceptance Testing (STAGE) Production (PROD)
Testing is built into the development cycle
Early and frequent delivery ensures adequate time for feedback and reduces risk
Agile benefits the IT department assisting in quicker better quality and reduced work
Stressing repeatable processes for project management
Monitoring and Controlling by Establishing Measurement Objectives
The NNSA SC ITD Apps Team maintains the Measurement and Analysis Plan (MAP).
MAP defines the process performance measurement foundation established by applying the Goal Question Metrics (GQM) to the Applications Mission Statement
The Apps Team leverages higher maturity level process performance management tools to:
Build process performance databases using statistical process control (SPC).
Track variance analyses (control charts with standard deviations)
Analyze defects, accuracy of resource estimation, development and maintenance productivity and customer satisfaction
MAP
Measurement Objectives
Low-cost of high-quality software applications and services, deliveredrapidly, which supports high levels of customer satisfaction.
(Mission Statement)
43
Lessons Learned in Managing Risks Using CMMI-DEV and Agile
Management of complexity requires process discipline WHILE
Management of change requires rapid adaptability.
CMMI provides process discipline.
SCRUM (Agile) enhances adaptability and commitment.
Transdyne Corporationhttp://transdynecorp.comCMMI Implementations in Small & Medium Organizations
44
Lessons Learned in Managing Risks Using CMMI-DEV and Agile
Understand that all process improvement opportunities, as with all investments, have costs and risks. Introducing Agile, as with any new technology, needs the advocacy of all project stakeholders.
Participation of key staff members in planning practice implementation is needed to understand the continuity and costs and identify the key risks, such as customer culture.
The CMMI Risk Management Process Area practices are easily tailored and implemented via a suitable template for Agile based projects.
The Agile method emphasizes on-going requirements & design verification, daily SCRUMS with customer participation and team “espirit de corp”. The Agile emphasis on these activities provides engineering practices that reduce risks in software engineering tasks.
Transdyne Corporationhttp://transdynecorp.comCMMI Implementations in Small & Medium Organizations
CMMI-DEV is a process model, NOT a process description.
CMMI-DEV only defines “WHAT” to do, not “HOW” to do it.
Plan the process implementation so that you are taking advantage of the CMMI-DEV practices AND
Use the Agile Methodology for rapid turn around for low cost quality product.
Remember
46
You have just seen key benefits of using CMMI-DEV and Agile to reduce risks in software engineering from the “30,000 feet” level.
Questions or Comments ?
The EndTransdyne Corporationhttp://transdynecorp.comCMMI Implementations in Small & Medium Organizations