small Project:
1. Sit down with the customer and develop a complete set of detailed,
end-to-end USE CASES. This requires 3 hackers, representing Backend,
Frontend, and UML, in addition to the customer. All 3 hackers
collaborate to create the initial Rational Rose model and the USE CASE
views. Get the customer's signature on the final USE CASES report, as
this describes the requirements and the scope of the Project.
2. Hacker 1 prototypes the Backend. Hacker 2 works with the customer to
iteratively design the User Interface. Hacker 3 creates the Rational
Rose models.
3. At this point work can be distributed to various workers for code and
test.
large Project:
Proposal:
the goals and milestones are defined.
Leads/Hardware Staffing:
the miminum staff required to create prototype, standards, process.
Prototype:
one simple task demonstrated on the hardware.
Standards:
design and coding standards.
Process:
detailed descriptions of each task.
Metrics:
functions are ranked by criticality, metrics are targeted towards specific milestones.
if the milestones change, the functions are re-ranked and new metrics created.
Main Staffing:
personnel are assigned according to estimates of man hours from the metrics
and area of expertise, and staffed in order of function criticality.
SRS:
system requirements specifications are kept as high level as possible,
while still giving system testers enough detail to complete system tests.
SRD:
software requirements are described in uses cases, starting with
the primary scenario, and adding other scenarios later.
SDD:
software design description is mainly a series of flowcharts and UML that
give a rough sketch of how the software is organized, what each routine
does, and how the routine does it.
Code:
coding is completed in order of scenario criticality.
Reviews:
SRS,SRD,SDD,and Code is reviewed by peers after each major scenario is completed.
Configuration Management:
for each milestone that requires a delivery or demonstration of new capability,
the SRS,SRD,SDD,and Code is copied to a CM area and the Build is created from
there and tested on the hardware before release.
Testing:
each engineer is responsible for creating an isolated test environment for each
function, and testing each scenario. System tests are performed on the hardware
by independent testers using the SRS.
Change Requests:
CRs are created during the program to remind engineers to complete noncritical
functionality, or they are created by the customer. The CRs are reviewed
periodically and assigned an engineer if deemed important enough.
back