CPE 205 Job Descriptions


A job is a continuous work assignment that has no particular start/end date. There are ten jobs listed.  If your team has fewer than ten people, you will probably need to double up on jobs. The first five jobs listed below are the major jobs; no one person should take on two of these jobs.  The remaining jobs are less demanding and can be taken on as secondary jobs in addition to a major job. This list is ONLY A SUGGESTION.  You must allocate tasks according to the unique character of your project and the individuals on your team.  Feel free to divide the labor in a different manner than shown here, striving for an equitable distribution of work.

There may be some tasks on this list that are not performed by your team.  There are certainly other tasks that your team must perform that are NOT listed.  Part of what you are to learn in this class is what activities are necessary in a large software project and how best to complete them.

Project Manager

The Project Manager is the administrative coordinator for all project activities. The manager is responsible for delivering  the product on time and within budget.
Coordinates creation of Team Expectations and Project Vision statements.
The Manager writes and monitors the Project Plan (SPMP).
Set the agenda and schedule for lab time.
Identify, allocate, and track individual job assignments (action items).
Identify, gather, and allocate needed resources.
Collect weekly individual status reports.
Write weekly progress report (or attend weekly manager meeting, as determined by instructor).
Maintain the project detailed schedule and provided visibility to project status via team Web page.
Present project schedule and status to team each week during class.
Write Project Journal throughout the project.
Create or select Time Accounting procedures.
 

Quality Assurance (QA)

The QA person ensures that the product meets the specifications and satisfies the product's release criteria. The QA person is ultimately responsibile for the quality of the deliverables.
Writes QA plan.
Coordinates all metrics collection and reporting.
Plans, coordinates and monitors all formal reviews and inspections.
Writes Review Summary reports.
Assures deliverables conform to project standards and meet QA criteria.
Coordinates Testing effort.
Setup appropriate Defect Reporting and Tracking Procedures.
 

Analyst / customer liaison

The analyst's job is to understand all of the problem requirements.  The analyst is the "point person" for all customer contact and is responsible for ensuring the product meets the customer's needs.  It is the analysts responsibility to communicate the customer needs to the other group members.
Negotiate with all other team members and customer on product features.
The analyst coordinates production of the specification document, though they may delegate people to work on specific sections.
Negotiate and administer the non-functional requirements.

 

User Interface Designer

Coordinate design, production and maintenance of the user interface prototype.
 

Designer/Architect

The designer creates and maintains the high-level software design. This job may be decomposed in some situations (e.g., Database, User Interface, Business/Game Logic, Networking).
Maintains and defends the Design Issues and Rationale.
Writes the Design Overview.
Distributes design tasks and integrates work into the complete deliverable.
Writes and maintains the Requirements Traceability matrix.
Coordinates production of the detailed design (a.k.a. "method designs").

Implementation Manager

Coordinates creation of a feasibility prototype (a.k.a. "proof of concept prototype").
Assists Designer with detailed design planning and supervision.
Develops Implementation and Integration Plan. (Stiller Ch 7)
Supervises programmers during implementation.

Configuration Manager / Web Master

All 205 team project documentation is maintained on the Web. This person designs and administers the project web page.
Ensure that all relevant team material (deliverables, processess, decisions, ...) are on the web page and are kept current.
Manages changes to all documents and to the product under development.
Create an Anonymous Feedback channel.
Maintain the What's New history list.
  Note: On some teams where the CM has many tasks, the web page administration is performed by the Manager.

Training Coordinator

Responsible that all project personnel are trained to a level of competency that enables them to perform their technical responsibilities. The coordinator does NOT have to be the technical expert. The coordinator gathers necessary resources (experts, tutorials, manuals, etc) that can provide the training.
Writes and administers the Training Plan.
 

Toolsmith

Obtain and install any needed development tools.
Provide training on all development tools.
Assist team members in installations on their individual machines.
Provide tech support for the target platform (hardware, o/s, and language).
 
Risk Manager
Write/maintain top 10 risks list.
Presents weekly risk status report.


Programmer - All

Everyone on the team will serve as a developer / programmer. A programmer does the detailed design for certain modules assigned by the Designer.
Responsible for becoming competent with the development tools.
Follows all established processes and adheres to standards.