Prestwood Software Development Process�
|
Prestwood
Software Development Process� (PSDP) is a proven process that features
scalability and flexibility geared toward managing the development of software
systems, applications, components, web sites, and web applications. PSDP is an
iteration-centric full life-cycle software development process. Iteration, as
defined in PSDP, is a deployed version of the software to the end users. A
project usually contains one iteration of the software and that version is
usually numbered 1.0, 1.1, 2.0a, etc. Although PSDP is iteration-centric, it
does offer mechanisms for enterprise modeling, multiple iterations, and the
maintenance that occurs between iterations. |
Public Standard * Proven * Straightforward * Scalable * Flexible * Object Oriented |
Minimalist Philosophy
PSDP takes a minimalist philosophy toward software development. This
minimalist philosophy manifests throughout PSDP with the minimum necessary
project tasks, documentation, and testing required for the estimated size and
desired quality of the software. A minimalist philosophy helps keep costs down
and the project pace up.
Joint Responsibility
With PSDP, project success depends on both the development team and user
community. The user community members must take responsibility for understanding
PSDP and their role within it. Both the user community and development team
should understand and follow the standards, suggestions, concepts, and advice
contained within PSDP. Success of each project depends on a complete
understanding and implementation of PSDP.
The PSDP
Difference
The following are some of the key features of PSDP:
Advanced Project Tracking
|
A good process has mechanisms for
easy and accurate project tracking. In the large, PSDP marks the start and
end of phases clearly with a single event. In the small, PSDP tracks phase
tasks with checkpoints. These tracking mechanisms are compatible with
sequential, overlapping, and iterative project management. |
Easy to Use
|
PSDP is based on a minimalist
philosophy that manifests throughout with the minimum necessary project
tasks, documentation, and testing required for the estimated size and
desired quality of the software. When documenting a software development
process, it is common practice to try to include every known step in an
effort to make sure nothing is left out. This approach leads to an
impressive but mostly unusable process. PSDP is lean and practical. |
Establish Success Early
|
PSDP defines both process success
and project success. Process success is defined as part of PSDP and the user
community defines project success as success factors. The critical success
factors are established in the inception phase and are often included in the
software development agreement. The rest of the success factors are
initially gathered during the feasibility phase and finalized during the
requirements phase. |
Scalable
|
PSDP contains mechanisms that
allow the project team to scale each project whether the project is an
80-hour project involving one or two project team members, or a five-year
project involving a dozen project team members. Throughout this document,
PSDP will introduce scale and give suggestions and guidelines on how to
scale PSDP based on estimated size and desired quality of the iteration. |
Flexible
|
Because of the varying talent
level of a project team and varying cultures of organizations, a software
development process must be flexible. PSDP is goal oriented and therefore
gives a certain amount of flexibility to the development team. This includes
a certain amount of flexibility for the project manager in how he or she
manages the process and to the developers in what methods (techniques) are
used to complete the project tasks. The project stays on track because PSDP
establishes a minimum set of checkpoints (project tasks) based on the
estimated size and desired quality of the iteration that the project team
must meet. |
The Tough Stuff First
|
One of the reasons why projects
end up taking longer than estimated and therefore costing more is because
the tough stuff is left to the end or at least not accomplished first.
Sometimes the development team takes too much time on the project �fine
tuning� unimportant or at least less-important features. PSDP uses the proof
of concept method at key points of the software development process. With
large and very large projects, a proof of concept for a particularly tough
aspect of the software generally will be performed either during the
feasibility or requirements phase. This practice is carried through the
design phase completing more proof-of-concepts. By the time the development
team reaches the initial coding phase, the development team should have
implemented the tough stuff, at least in a rough way. Proof-of-concepts are
particularly important when working with new technology or extreme business
rules. For example, if the software must communicate to LED signs through a
particular piece of hardware, PSDP recommends the development team perform a
proof of concept for that aspect of the software as soon as possible. |
Sequential Phases
|
PSDP rolls from one phase to
another in more or less a sequential order. This allows for clear tracking
of the software development process. |
Overlapping Phases
|
The phases can overlap! This is an
important concept that fully utilizes the resources assigned to the project.
Care must be taken by the project manager to make sure the overlap makes
sense in the context of the given project. |
Natural Discovery
|
PSDP allows for natural discovery.
For example, during the feasibility phase, the focus of the development team
is on gathering high-level requirements with the user community. Frequently
the development team discovers detailed requirements during the feasibility
phase. PSDP suggests the development team capture any detailed requirements
in a rough Requirements Specification for later use. |
Iterative Methods
|
Within each phase, iterative
methods (techniques) are used to fully involve the entire development team
and key members of the user community. |
|