CSC 402 Group Job Descriptions



Note: This is adapted and used by permission of Dan Stearns. I have added and modified some of the material.

Organizations often divide jobs and assign them to multiple people. Depending on the job, this may or may not be a good idea. A good general principle, for all professions, is to assign a person a task with the authority and responsibility to complete that task. Each of the jobs listed below is assigned (my opinion) a divide coefficient (dq): This means division of responsibility; it is always possible to subtask any job. (e.g. Joe, please go fetch my printout!)
0 - don't even think about dividing the job.
1 - job can be divided depending on circumstances; discuss it.
2 - job is suitable for division.
3 - job should be divided.

Pervasive Step (Fisher process notation) Jobs

Boss (dq=0)
For this project, the boss is your course instructor. You will have a formal meeting with the boss every week.

Feasibility Programmer (dq=3)
On many projects, technical difficulties arise during the implementation phase. Many of those problems (e.g. version problems, non-working device drivers, interface incompatibilities, vaporware) should be caught early in the project by the feasibility programmer.

Project Planner (dq=0)
The project planner coordinates the group's plan, ensures that it is continually accurate and serves as the editor for the document. The project plan will be presented at every group meeting with the boss.

Researcher (dq=3)
There are many questions that may need to be answered, on a variety of topics, in the course of a software project. The researcher's job is to obtain those answers.

QA Specialist (dq=0)
This person plans and manages the verification and validation work on all project phases.

Reviewee (dq=2)
The reviewee is the liaison person for a review. The reviewee normally will require substantial help from other group members.

Reviewer (dq=0)
A reviewer examines the work of another work and writes a review report. The examination is always guided by a checklist that is prepared and discussed prior to a review. In some organizations (not CSC 402), the reviewer assumes some responsibility for the reviewed work. Ask to hear some of my reviewer stories....

Tester (dq=3)
Many people think this is a grunt job - it is in many companies. In CSC 406, we will learn how testing should be done. In CSC 402, we will do testing of our Requirements and other activities related to testing of the product.

Toolsmith (dq=3)
The toolsmith takes responsibility for the tools used by a project team. She installs, learns, teaches, patches, uses and evangelizes tools. This is an important job; many projects fail because everyone trys to learn all the tools at the expense of the real work.

Requirements Document Jobs

Analyst (dq=1)
The analyst's job is to completely understand the system requirements. The analyst interacts with the user and communicates the requirements to other group members. The analyst reviews the specification, prototype and design documentation.

Editor (dq=0)
The editor is responsible for producing a high quality professional deliverable.

Data Dictionary Writer (dq=2)
The data dictionary writer documents all of the problem domain entities in the system.  This job requires precision, a good sense of the domain and the ability to incorporate criticism into the work :-)

Functional Requirements Writer(dq=2)
The functional requirements are the heart of the document. Everyone in the group should write some of the scenarios.

Non-functional Requirements Writer (dq=0)
The person who writes the non-functional requirements has a global view of the system and enjoys that view.

Prototyper (dq=1)
The prototyper constructs a system prototype. Sometimes, the work is done by a team comprising a toolsmith and a user; this is an excellent way for the user to participate in a project.

UML Class Diagram Writer (dq=0)
This person draws a class diagram showing the class relationships in the problem domain. It's a one person job but requires much coordination with all members of the group.

UML Use Case Diagram Writer (dq=2)
This person determines the use cases for the system.

User Interface Architect (dq=0)
The architect designs the "look-and-feel" of the system and ensures that an appropriate UI specification is created. A major part of her job is to ensure the UI has conceptual integrity and meets the user's interface requirements.

User (dq=0)
The user is the person who has commissioned the system under construction. Users change their minds a great deal and drive analysts crazy. Each group must identify a user for their project; the user can be anyone outside the group. Normally, Professor Stearns will serve as the user for all groups.

Writer (dq=3)
There is considerable plain writing to do in a requirements document.

Domain Specialist (dq=1)
The underlying domain, its tools and language must be well understood in order to make sense of customer requirements.  Considerable research, discussion, and simple prototyping are involved.  This job may be related to the Prototyper.


High-Level Design Jobs

Class Definer (dq=3)
A class definer writes class definition files; think of this work as the API (application program interface) used by the programmers. (header files or Javadocs)
Each member of your group is required to define at least 1 class.

Lead Designer (dq=0)
This is the technical job that pays in 6 figures (except in CSC 402). The lead designer knows everything about the software design. Some companies use a management process that gives total authority to the lead designer. (See Brooks Chapter 3)

Pattern Reseacher (dq=1)
This person finds appropriate design patterns for your design. This work is not required except for groups that have members with pattern design experience.

Software Architect (dq=0)
The architect determines the overall software architecture . In CSC 402, the boss will consult with each group to determine your architecture.

UML Class Diagram Modeler (dq=0)
This person transforms the problem state diagram to a software diagram. The job requires good knowledge of the target platform language and class libraries.

UML Interaction Diagram Modeler (dq=3)
Interaction diagrams describe the run-time behavior of your software in great detail. Each member of the group is required to write at least 1 interaction diagram.

Low-Level Design/Implementation Jobs (CSC 405)


Integration Programmer (dq=0)
This is the person that makes the system work. A good object oriented design will simplify this job.

Programmer (dq=3)
The grunt job. The foxhole digger. The nail pounder. The programmer designs algorithms, determines data/file structures and writes code.

UI Programmer (dq=0)
This person converts the prototype or storyboards to code. Too bad we aren't using NeXts; they have the Interface Builder which does this job automatically.


Last updated on 9/05