IISP International Institute for Software ProcessCertified Software Process Improvement Professional Certification (CSPIP) Company

 


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

Most corporations are still fairly traditionally structured even though many software development teams are heading full steam into modern incremental, and highly iterative software development techniques and exploring other new technologies such as MDA. This leaves management stuck coping with an organizational and technical paradigm shift that traditional project management practices are inadequate to handle. In the highly iterative, fast-paced environment characteristic of these modern software development projects, traditional approaches to budgeting, testing, quality assurance, requirements gathering, scheduling and estimating break down. Managers trying to encourage best practices as recommended by CMMI and SPICE find themselves at odds with developers trying to adopt best practices as recommended by the agile manifesto. In the end no one wins. Because of the constraints of corporate policies and management edicts, developers can't fully adopt modern software engineering practices. Because the developers do adopt as much of the iterative processes as they can get away with, team leads find that traditional approaches to management don't work. Such projects must succeed in what I call a quasi agile development environment.

In my experience these quasi agile development environments characterize a large percentage of today's significant software projects. Lack of explicit understanding of this reality, and failure to actively adapt to it, is causing significant problems in many software development organizations.

This tutorial explains practical ways to adapt the formal process control inherent in CMMI recommendations to the more flexible practices of agile development.  

The attendee will learn how to:

  • modify project management practices to mesh with modern, iterative software development techniques.
  • successfully plan, track, estimate, schedule, and allocate resources for an iterative project.
  • adapt agile practices so that they work on larger scale projects and in more traditional environments.
  • integrate testing and QA activities with iterative software development processes.
  • adjust hiring, personnel management, and team management to quasi agile development environments
  • adapt CMMI recommendations to an agile development environment

  • Unit 1 – Modern Software Development Techniques
    • Implication of process and technology choice to managers
    • Iterative
    • Incremental
    • Component based
    • Process spectrum
    • Agile Manifesto
    • Mixed culture projects
    • Fitting process to projects
    • Why mixed culture projects characterize so many of today's significant software development projects
  • Unit 2 – How the Fundamentals of Managing Are Affected by a Modern Iterative, Incremental Software Development Process
    • Scaling
    • Management fundamentals
    • Politics
    • Stakeholders
    • Evolution
    • Courage
    • Resources
    • Planning
    • Knowledge points
    • Estimation techniques
    • Iteration planning
    • Tracking
    • Incremental scheduling
    • Contracts
    • Lightweight process for change
    • Hiring and personnel management
    • Team management
    • Conflict resolution
    • Balance and direction
    • The primary function of a manager
  • Unit 3 – From Agile to Quasi Agile
    • Agile Manifesto revisited
    • Documentation requirement
    • Impact of multiple scarce stakeholders
    • Architectures and conceptual distance
    • Measuring progress
    • Contracts
    • Responding to change
    • Conformance to plan
    • Value to the client
    • Major changes
    • Minor changes
    • Extensions
  • Unit 4 – How the Associated Testing and QA Processes Are Affected
    • Process integration
    • Organizational issues
    • New skill sets
    • Guided inspections
    • Testing early increments
    • Testing refactored code
    • Automating system testing
    • Testing under the interface
  • Unit 5 – Reconciling Formal Process Control and Iterative Techniques
    • ISO 900x case study
    • Baseline reviews versus delta reviews
    • CMMI vs. the Agile Manifesto
    • Empirical vs. defined processes
    • Institutionalization of knowledge
  • Unit 5 – How the fundamentals of testing are affected by a modern iterative, incremental
    software development
    • Test planning
    • Test budgeting
    • Test execution
    • Test evaluation and process improvement
    • Interactions between the test team and development team
  • Unit 6 – Summary and Conclusions
    • Balancing agility and discipline
    • Collaborative values and principles
    • Top 10 potential pitfalls
    • Top 10 factors for success
    • Once upon a time - Boehm vs. Beck

Dr. Timothy Korson has had a decade of substantial experience working on a large variety of systems developed using modern software engineering techniques. This experience includes distributed, real time, embedded systems as well as business information systems in an n-tier, client-server environment. Dr. Korson's typical involvement on a project is as a senior management consultant with additional technical responsibilities to ensure high quality, robust test and quality assurance processes and practices. Dr. Korson has authored numerous articles, and co-authored a book on Object Technology Centers. He has given frequent invited lectures at major international conferences and has contributed to the discipline through original research. The lectures and training classes he presents are highly rated by the attendees.

©2008 International Institute for Software Process