AWS PM logo

Home | About | Site Map
Processes | Best Practices | Process Groups | Typical Project Team | Project Documentation |
                   Project Life Cycles | PMBOK vs Methodology | Development Models |
                                      Selected Bibliography | Suggested Reading Path | Hyperlinks |
subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link
subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link

Development Models

AWS logo

Sequential Development

 

Waterfall model

This model suggests a linear development technique where one phase must be completed before the next phase can start.

Original planning covers the whole project.

Customer must be involved early in the process.

Assuming that all requirements can be defined up front becomes a major drawback .

Some practitioners have introduced “iterative back steps” or “back pass”.

Often does not accommodate time-to-market.

 

The ROLLING WAVE variant – The first phase is planned in detail and the remaining phases at a higher level of detail. Once completed, then the next phase is planned out in detail and this process continues until the future is clear

 

The TIMEBOXING variant – Of the triple constraints, the scope or functionality becomes the only flexible or negotiable variable. The timeframe and the pool of resources are constrained. The preferred timeframe is from 4 to 6 months

 

V-model

The “V” is for verification and validation.

The connection between development and test activities is emphasized.

The test plan and strategy is worked out at the end each phase.

Test, debug and change tasks at every phase.

 

W-model

A second “V” dedicated to testing is integrated into the original V-model.

Test plan created as soon as the basis for it is ready.

Tight interaction between testing and the changes in implementation is clarified in cycles of testing, debugging, changing and retesting.

 

 

Iterative Development

 

Spiral model (Barry Boehm)

Introduces the notion of Project Risk: project size grows but resources remain constant (1986).

 

Each spiral loop represents one phase split into 4 sectors of major activities.

 

 

RAD model (James Martin)

RAD – Rapid Application Development (1991) to build usable systems in 60-90 days

RAD essentials

Tools – (code generators, 4GLs, prototyping tools)

Methodology – (use tools effectively during phases)

People – (motivated with right skills and talents)

Management – ( not place obstacles)

Infrastructure – (collocation)

Important factors

Extensive user involvement

Joint Application Design sessions (JAD)

Joint Requirements Planning sessions (JRP)

Prototyping

Integrated CASE tools

Iterative (incremental prototyping)

Timeboxing

Process Model Phases

Requirements planning

User Design

Construction

Cutover

Joint Requirements Planning (JRP) & Joint Application Design (JAD)

JRP to identify requirements at strategic level

JAD is top-down approach to user design

Both forms of workshops follow the same pattern

Structured meetings with facilitator, pin/whiteboards and CASE tools

CASE Tools

Acronym for Computer-aided software engineering

To be used in all phases (including code generation)

Model use more suitable when:

Business objectives are well defined

Simple analysis or reporting of the data

Decisions made by a small number of collocated people

Small project team (6 or less)

Proven technology already in place

 

 

Microsoft Solutions Framework (MSF)

MSF is called a framework instead of a methodology. As a framework, it provides guidance without imposing much prescriptive detail.

Foundational Principles of MSF (version 3)

The Team Model

The Process Model

The Project Management Discipline

The Risk Management Discipline

The Readiness Management Discipline

 

Foundational Principles of MSF (version 3)

Foster open communications

Work toward a shared vision

Empower team members

Establish clear accountability and shared responsibility

Focus on delivering business value

Stay agile, expect change

Invest in quality

Learn from all experiences

 

The Team Model

Team Model Role Clusters

Product Management

Program Management

Development

Test

Release Management

User’s Experience

 

The Process Model

Three distinctive features of the Process Model

Phase and milestone-based

Iterative approach (versioned releases)

Integrated view of development and deployment

Process Model Phases and Milestones

Envisioning

Planning

Developing

Stabilizing

Deploying

 

The Project Management Discipline

Planning, Tracking, Change Control

Scope Management

Schedule Management

Cost Management

Staff Resource Management

Communication Management

Risk Management

Procurement Management

Quality Management

 

The Risk Management Discipline

Identification

Analysis and Prioritization

Planning and Scheduling

Tracking and Reporting

Control

Learning

 

The Readiness Management Discipline

Define readiness as a measurement of the current state versus the desired state of knowledge, skills and abilities of individual in the organization

Proven practices

Carry out readiness planning

Measure and track skills and goals

Treat readiness gaps as risks

Readiness Process

Define

Assess

Change

Evaluate

 

 

Rational Unified Process (RUP)

Captures many of the best practices in modern software development:

Develop software iteratively

Manage requirements

Use component-based architecture (COM, etc.)

Visually model software (UML by Rational Software )

Verify software quality

Control change to software

 

Deliverable driven where you manage the risks more than the dates

 

The Time Dimension - Phases and Iterations

Inception

Elaboration

Construction

Transition

The Static Structure

Workers

Activities

Artifacts (piece of information)

Workflows

 

Core process and supporting workflows (9)

Business Modeling

Requirements

Analysis & Design

Implementation

Test

Deployment

Project Management

Configuration & Change Management

Environment

 

 

Agile Development

In February 2001, the Manifesto for Agile Software Development was signed by 17 experienced and recognized software development practitioners.

“We are uncovering better ways of developing by doing it and helping other do it. Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan”

 

Agility

Agility is the ability to both create and respond to change in order to profit in a turbulent business environment

 

Agile model

A holistic environment that includes 3 interwoven components:

A “chaordic” perspective (chaos, order)

Collaborative values and principles

Barely sufficient methodology

 

Agile model effectiveness increases quickly over rigorous methodologies for projects characterized by change, speed and complexity.

 

 

SCRUM

SCRUM Essentials

Development is not a “defined process”, as rigorous methodologies assume, but an “empirical process”

Empirical processes cannot be consistently repeated and require constant monitoring and adaptation

SCRUM has a project management emphasis to facilitate the interaction of the team members

 

Process Model Phases

Pre-Sprint Planning

Sprint (30-day period, no-change rule)

Post-Sprint Meeting

Daily 20-minute informational meeting (not development meeting) attended by all team members.

 

Dynamic Systems Development Method (DSDM)

DSDM was created (1997) and is maintained by a consortium of independent companies to improve on RAD

DSDM principles:

Active user involvement

Team members must be empowered to make decisions

Focus is on frequent delivery of products

Fitness for business purpose is the essential criterion for acceptance

Iterative and incremental development

All change during development are reversible

Requirements are baselined at a high level

Testing is integrated throughout the life cycle

A collaborative and cooperative approach between all stakeholders

 

Use of 3 interacting iterative models with 2 to 6 week time-boxes

Prototypes: business, usability, performance and capacity

Functionality is allowed to vary over the course of project, control is maintained by using time-boxes

Use of prototypes rather than documents to capture information

Excellent manual and support materials available to consortium member companies

Primary target is small- to medium-sized projects with significant user interface component

 

The DSDM Process Model

Functional Model Iteration (documented in prototypes)

Design & Build Iteration

Implementation

 

 

Extreme Programming (XP)

XP Practices

Planning Game (3-week iteration, stories)

Small Releases

Metaphor (overall coherent theme)

Simple Design

Refactoring (ongoing redesign, design patterns)

Testing

Pair Programming

Collective Ownership

Continuous Integration

Sustainability

On-site Customer

Coding Standards

 

 

 

Frequent-Built Technique

Also known as build-and-smoke-test, daily built or continuous integration is frequently integrated to agile and iterative development.

All source files are compiled and linked to build an executable system as often as possible, daily if possible.

Test may vary from superficial to thorough, according to needs and possibilities.

 

 

Other Agile models

Crystal Methods

First-order focus on people and communication and second-order relates to process and tools (A. Cockburn)

 

Feature-Driven Development

Scale-up projects (250 people, 18-month period, Jeff De Luca, Peter Coad)

 

Lean Development

The most strategic-oriented model derived from the principles of Lean Production of the 1980's (Bob Charette)

 

Adaptive Software Development

A Change-Oriented Life Cycle dedicated to continuous learning and oriented to reevaluation, peering into uncertain future, and intense collaboration (Jim Highsmith)

 

 

Integrated Product Development

Capabilities Maturity Model Integration (CMMI)

The 1990s were the Decade of Process for IT. We were determined to plan the work and work the plan.

Based on the CMM model where the underlying assumption is good processes lead to good results.

Developed by the Software Engineering Institute ( Carnegie Mellon University ).

 

CMM version 1.0 released in 1991, version 1.1 in 1993, version 2.o has been overtaken by CMMI.

Latest CMMI version includes : systems engineering (SE), software engineering (SW), integrated product and process development (IPPD) and supplier sourcing (SS) (CMMI-SE/SW/IPPD/SS V1.1, continuous and staged, 03/2002).

 

 

Process areas in CMMI are divided into 4 main groups:

Process management (definition, performance)

Project Management (planning, control, risks)

Engineering (requirements, solution, verification)

Support (configuration management, QA)

 

 

AWS logo Top of Page | Site Map | Home |  Copyright ©2004 AWS PM. All rights reserved. July 8, 2005 .