Adopting Agile/Iterative Software Development
Iterative Software Development
Choosing An Approach To Agile/Iterative Software Development
Adopting AGILE In Your SDLC Shop
This document defines the iterDev Iterative Project Delivery System. The Project Delivery System substantially automates the following, recurring project tasks:
The process consists of a collection of process automation tools and custom scripts. The system commands available are:
Combining and iterating the cycles above will generate a Managed Project Release. Facilitating a Managed Project Release that meet all of the Managed Project�s deliverable and process requirements is the entire purpose of this system.
The Project Delivery System specified here is based on the following assumptions:
The Project Initiation command is an automated script to create a named, managed, project development environment on any development workstation. The work product of the Project Initiation command is a complete Deliverable Prototype with documentation.
The structure of the development environment is dictated by department standards, the structure required by the Configuration Manager and the Deliverable Prototype.
With the proper Automation tool, this step is completely automated.
Project Initiation consists of the following configurable steps:
The Requirements Management Cycle command encapsulates the activities needed to gather, vet and express requirements for the project as a whole, or for individual milestones.
The work product of the Requirements Management Cycle is an updated User Requirements Document, Technical Design Document, Project Schedule and Requirements Traceability Matrix associating user requirements with technical design and development tasks.
During the Requirements Management Cycle, changes or additions to the requirements set, resulting from the most recent deliverable prototype demonstration, are made.
With the proper Requirements Management tool, this step is mostly automated.
Assuming the use of a requirements management tool, such as Enterprise Architect, the Project Manager and Development Staff perform the following actions:
The Project Documentation Cycle updates the set of user requirements for the project as a whole and identifies the subset of requirements assigned to the next Iterative Development Cycle. The work product of the Project Documentation Cycle is updated requirements, designs for the project team and, optionally, an updated Project Notebook suitable for delivery to the customer.
For Project Documentation Cycles that are not part of a Milestone or Managed Release, Source Code and User Help documentation updates are optional.
With the proper Requirements Management tool, this step is completely automated.
Assuming the use of a Requirements Management Tool, such as Enterprise Architect, Project Management performs the following actions:
An Iterative Development Cycle is the central development activity in this model. Iterative Development Cycles include are driven by the list of requirements assigned to this cycle. Each new or updated requirement is vetted to assess impact on other requirements and their design elements. Each affected design element is vetted and updated as needed to reflect changes needed to meet assigned requirements. Developers perform check out, coding, testing and debugging cycles as needed until all assigned requirements are met and ready for system test.
Within the SCRUM-Agile methodology this is called a Sprint.
The work product of an Iterative Development Cycle is a set of updated, tested, documented source files ready for use in a Project Build and Demonstration Cycle.
A Project Build and Demonstration Cycle performs each cycle needed to generate the complete set of updated project deliverables required by the calling cycle.
The work product of a Project Build and Demonstration Cycle is an incremental build of project deliverables that have been updated, unit tested. If the enclosing cycle is not a Project Milestone Cycle or Managed Project Release, updated Documentation and Project Deployment are optional.
With the proper Build/Continuous Integration tool this step is completely automated.
A Project Deployment Cycle consists of running all current build automation projects and any manual scripts necessary to build a project completely from source files in the project configuration management repository.
The work product of a Project Deployment Cycle is a set of updated project deliverables available on the targeted deployment platform: development test, alpha/system test/ beta/public test or production.
With the proper Build/Continuous Integration tool this step is completely automated.
A Project Milestone Cycle consists of a Project Build & Demonstration Cycle and Project Deployment Cycle. User community feedback is solicited into new or updated requirements which are fed into a Requirements Management Cycle. Management support/test staff and user community feedback determine if project deliverables meet requirements for a Managed Project Release.
The work product of a Project Milestone Cycle is a deployed partial or full application, to beta or production environments.
A Managed Project Release combines and iterates other project cycles to generate project release.
The work product of a Managed Project Release is a deployed application to beta or production environments.
The sections of this presentation are structured to be read once, sequentially, and then as needed in any order. The navigation links to the left and section descriptions below appear on every page.
To continue now with the iterDev.com Iterative Development Process, click each of the links to on the left in order. A brief description of each document's contents is below. The 'Home' link returns you to the home page.
Foreword - iterDev.com Home page and Author's Foreword to the Iterative Software Development web site.
Introduction - iterDev.com Introduction, Background and The Iterative Development Force Multiplier.
Iterative Process Model - The Iterative Development Process Model, its place in the Software Development Lifecycle and expected benefits.
Deliverable Prototype - The Deliverable Prototype, its down stream Advantages for projects and the Work Product that delivers them.
Development Process - The Iterative Development Process, Activities and their mapping to SDLC and a closer look at the core Iterative Development Cycle.
Project Delivery System - The Project Delivery System: Activities, Activity Specifications and how they combine to produce Managed Project Releases.
Epilog - A few final thoughts. A request for comments. What I hope to achieve with this site.