Introduction
Software development can be managed most effectively when it is viewed as a process with measurable processes and results. Both time and cost overruns can be minimized or avoided entirely by utilizing process definition and process metrics appropriately. The Carolla Process has grown from extensive involvement in project management, and is derived from best practices utilized in a variety of environments.
Carolla Process is built on the following precepts:
The Process:
The Process breaks projects down into definable components/modules and logically approaches each step in a certain order, which allows appropriate planning decisions to be made early in the development process and avoid or reduce "re-coding" and workaround solutions. Use of OOAD (Object Oriented Analysis and Design) further aids development by building an abstract business model, then refining it to adapt and optimize it for real-world issues. The ability to think through the process thoroughly assists developers in coding for "what the customer really wants." The four major phases of the Carolla Process are Project Scoping, Requirements & Project Planning, Construction, and Product Transition.
Project Scoping involves defining Project Concept as well as Technical and Business Planning. Thorough scoping helps determine project feasibility, define project goals, and establish and validate business alignment.
Requirements and Project Planning includes Requirements Data Collection (finding out what the product should do) followed by Requirements Modeling & Validation (illustrating the process), leading to High-Level System Design. Development Planning and Test Planning occur concurrently with that series of activities.
Only when Requirements are validated and Test Planning is complete does coding begin. The Carolla Process recommends a 2-3 week "build cycle" of incremental/modular development. This build cycle length allows for consistent testing of code as it is written, preparation of documentation concurrently with code segments, and aids in breaking up coding tasks into logical and discrete units for developers.
Once the product is complete, Product Transition follows, moving through System Testing, General Release & Migration, and Post-Release Assessment.
Details Within the Framework:
Working within the Carolla Process involves completion of various documents at specific stages – gathering the information necessary to complete a document ensures that proper resources and data are available to allow the next step to occur. Examples of these documents include Project Charter, Product Requirements Document (PRD), Software Requirements Specification (SRS), and Master Test Plan (MTP).
The Carolla Process is built on the premise of accountability. It includes a
formalized meeting and note-taking structure that leads to lists of issues and
action items (doable, assigned tasks). In addition, formalized use of the
Delphi Consensus Technique leads to resolution of issues, elimination of
extraneous factors, and general agreement which moves projects forward.
Typical roles involved in projects may include: Executive Sponsor, Project
Sponsor, Project Manager, Customer Advocate, Technical Analyst, Project Lead,
Developer, Test Manager, Tester, Technical Writer and Quality Assurance. In the
Carolla Process, each role has specific items of responsibility, the sum of
which results in a project completed on time, on budget, and often with zero
defects.
Finally, the Carolla Process suits all types of projects and is scalable for
large or small projects. Carolla Development, Inc. currently markets the document components supporting
the process in the form of Document Templates for Microsoft Word. Use of these
templates ensures complete structural integrity and reduces opportunities for
the errors by omission, which plague many projects. In addition, the documents
and process are continually being refined and improved.
Summary:
When the Carolla Process is followed closely, each individual involved fills a specific role and meets defined objectives. Project Managers are able to track progress within a consistent framework and adjust time schedules accordingly. Applying scientific principles to improve the development process results in measurably improved "final product."