CPE 308 Job Descriptions

A job is a continuous work assignment that has no particular start/end date and may not create milestones or deliverables.

Project Manager

Work Product: Project Plan

The Project Manager is the administrative coordinator for all project activities. This job is critical to completing the final deliverable on time. 
Creates cost and schedule estimates.
Coordinates creation of Team Expectations and Project Vision statements.
The Manager writes, maintains, and administers the Project Plan (SPMP).
Maintain the project detailed schedule and provides visibility to project status via Trac.
Identify, allocate, and track individual task assignments (action items) via Trac.
Present project schedule and status to team each week during class.
Identify, gather, and allocate needed resources.
Ensures all staff receive appropriate training in their required skills.
Collect weekly individual status reports.
Set the agenda and schedule for lab time.
Create or select Time Accounting procedures.
Write weekly progress report (or attend weekly manager meeting, as determined by instructor).
Write performance appraisals of team members.
Risk Manager.

Quality Assurance (QA)

Work Product: QA Plan, System Test Cases, FTR Summary Report

Assures deliverables conform to project standards and meet QA criteria.
Writes and maintains QA plan. 
Coordinates all metrics collection and reporting.
Plans, coordinates and monitors all formal reviews and inspections.  (At least one Formal Technical Review is required).
Writes Review Summary reports.
Establishes and monitors appropriate Defect Reporting and Tracking Procedures via Trac.

Change Manager / Toolsmith

Work Product: CM Plan, Deployment Plan

Maintains all project documentation in the team's Trac wiki.
Ensure that all relevant team material (deliverables, work products, processes, rationale, ...) are on the wiki and are kept current.
Manages changes to all documents and to the product under development.
Manages the team's source code repository on Trac.
Specifies and administers all change control procedures.
Obtains and installs necessary software development tools (See Project Plan), guides team in their installation and use.  Troubleshoots problems with tools.
Coordinates any required 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).

Analyst / customer liaison

Deliverable: System Requirements Specification (SRS)

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.
The analyst coordinates production of the specification document (SRS), though he/she may delegate people to work on specific sections.
Prioritize requirements and negotiate with all other team members and customer on product features.
Maintain consistency between all work products to ensure product validity.

User Interface Designer

Work Product: UI Prototype, Usability Evaluation, and Swing GUI

This role is required for products with a significant user interface component.
Responsible for the behavioral requirements section of the SRS: screen layouts, storyboards, prototypes, etc that specify the external behavior of the system.
Perform a Usability evaluation with an outside user.  (Fall 2015 - probably UserTesting.com)
Uses a GUI builder tool (such as NetBeans) to create the production code for the graphical user interface.


Work Product: Feasibility Prototype, High Level Design

The designer creates and maintains the high-level software design. This job may be decomposed in some situations where the design can be clearly decomposed (e.g., database, User Interface, Concurrency).
Maintains and defends the Design Issues and Rationale.
Distributes design tasks and integrates work into the complete deliverable.
Creates the feasibility prototype.
If required, coordinates development of the functional prototype, (aka "extended prototype"): a working application that demonstrates all the functional requirements but not the non-functional ones. 

Programmer - All

Everyone on the team will serve as a developer / programmer.
Creates a detailed design for certain modules assigned by the Designer.
Implements (write Java source code) for assigned modules.
Performs unit testing on assigned modules.
Responsible for becoming competent with the development tools.
Follows all established processes and adheres to standards.

(7-person team) Product Manager

Job description.