Applying Agile and Software Development Techniques to Process Development (CKA #1)

This tutorial covers CKA area #1 of the International Software Process Improvement Certification (ISPIC) requirements.

Concepts

This tutorial presents techniques borrowed from the Agile and software development world to both design processes and to reduce the overall time to achieve institutionalization of new processes.

Participants will learn:
  • Gain a high-level understanding of agile software development techniques
  • Explore how agile techniques might apply to process development
  • Get hands-on experience with a defined process development methodology
  • Learn how to develop processes using this methodology while doing it in an agile way
  • Gain an understanding on how to deploy, refine and monitor processes within the organization
  • Gain additional insight from real-world lessons learned
Outline
  • Learning Objectives 
  • Learning Mechanism                       
  • Unit #1: What is Agile?
    • What is Agile Development
    • What Are Its Strengths?
    • What Are Its Challenges?
    • How Do We Manage It?
    • Can It Be Used By Other Disciplines?
  • Unit #2: Applying Agile to Process Development
    • (Agile Development) Defined
    • Agile (Process Development) Defined
    • It’s A Balancing Act: The Ying-Yang Of Left & Right
    • Use A Defined Process As A Guide
    • Focus On The Fundamentals
    • Make Small But Continuous Changes
    • Create An Effective Strategy
    • Fix People’s Biggest Problems First
    • Fill Best Practice Gaps
    • Deliver Outputs First, Processes Later
    • Pilot Solid Ideas Not Final Solutions
    • Enlist The Help Of Champions
    • Work As A Team To Create Synergy
    • Coach And Mentor To Stay On Track
    • Let It Take On A Life Of Its Own
    • Inject More Details And Iterate Until Complete
  • Unit #3: Process Development in 7 Easy Steps
    • Step 1: Develop a context diagram
    • Step 2: Identify information and work products exchanged, deliverables, communications, and data
    • Step 3: Identify and Describe Major Processes
    • Step 4: Analyze process data flows and relationships
    • Step 5: Draft high level processes (aka process “cheat” sheets) and QA checklists
    • Step 6: Create output product templates, forms, tools
    • Step 7: Develop detailed processes
    • Overview of Process Description Elements
  • Unit #4: Process Improvement Planning
    • Process Improvement Considerations
    • Planning Guidelines
    • Estimation
    • Planning Simplified
  • Unit #5: Managing Process Improvement
    • Managing a moving target
    • Using Simple Lists
    • Example Task List
    • Use data to adjust plan
    • Focus on process stability before improvements
    • Add statistical analysis
    • Continually improve
  • Unit #6: Let’s Get Agile!
    • Planning Agile Process Development
    • Example of incremental piloting
  • Unit #7: Process Rollout
    • Rollout tasks to consider
    • Process Rollout Management
    • Example tracker
    • Case I: 3 Projects, Same Start Date
    • Case II: 3 Projects, 1 Project With Later Start Date
    • Reprioritizing
    • Evaluating Processes
  • Unit #8: Process Improvement
    • Using the Deming Management Method
    • Hold process improvement workshops
    • Avoiding the pain of process improvement
  • Unit #9: Process Tailoring
    • One size does not fit all
    • Tailoring considerations
    • Describing approved tailoring alternatives
    • Examples of tailoring for processes in analysis, testing, training and auditing
  • Unit #10: Real-World Example and Lessons Learned
    • Real-World Example of agile techniques applied to CMMI process development
    • Lessons Learned
  • Summary
  • Q&A