QA/QC Appendix B, PNNL-11880
Roles and Functions of Project Team Members
Each new software system for risk analysis in multiple environmental media or major revision to an existing system is developed using a multidisciplinary project team. Depending on system requirements and available resources, an individual might fill more than one role on a team, or serve different roles on different teams. In addition, team members may change over time.
Despite these changes, each team will have at least one subject matter expert and either a module custodian or a framework custodian as well as a project custodian and project manager. Specific roles and functions for various team members are outlined below in alphabetical order. At the end of this list, Table B.1 shows key activities and the project team member responsible.
Applications Expert
- Definition: team member responsible for ensuring that the modules and frameworks can be applied according to user needs
- Requirement Phase Responsibilities: assist in development of project management plan or statement of work; assist in development of requirements package by representing general user needs
- Design and Development Phase Responsibilities: approve modifications to baselined frameworks, no required activity in the module design
- New System Testing Phase Responsibilities: develop test process for both framework and modules, provide information to summarize the reason for the test as well as the scope of the test; complete software test package initial information; agree after the tests on the comprehensiveness of testing with the subject matter expert and custodians; provide completed software test package to project custodian
- Modified System Testing Phase Responsibilities: develop test process for both framework and modules modifications, provide information to summarize the reason for the test as well as the scope of the test; for minor changes, run the test and provide results to the project custodian; for major changes conduct activities described for new module testing
- Implementation Phase Responsibilities: review user’s guidance and/or training to ensure client and general user needs are met
- Definition: team member responsible for developing a particular section of code to support a specific module or the framework
- Requirement Phase Responsibilities: none
- New System Design and Development Phase Responsibilities: design and develop code under the leadership of either the module custodian or the framework custodian
- Modified System Design and Development Phase Responsibilities: assist in initiation of a change request as needed; design and develop code under the leadership of either the module custodian or the framework custodian
- Testing Phase Responsibilities: assist in development of software test package as needed; revise code as needed based on test results
- Implementation Phase Responsibilities: serve as reference for project custodian in supporting client implementation
- Definition: team member responsible for developing and maintaining a system framework user interface, including ensuring that all components within a the given framework are understandable, compatible and provide the correct inputs and outputs, and developing and maintaining file transfer specifications and related software
- Requirement Phase Responsibilities: none, unless input is requested by the subject matter expert
- New System Framework Design and Development Phase Responsibilities: lead team of code developers (or conduct design and development alone for smaller frameworks) in designing and developing framework user interface to meet client needs; develop specifications; approve the design with the subject matter expert and applications expert; complete the software development package for the framework
- Modified Framework Design and Development Phase Responsibilities: complete change requests; attempt to reproduce problems in the framework; determine potential ways to solve the problem; evaluate change for appropriateness and effect on other segments of the code; approve changes with the subject matter expert and applications expert; implement or lead implementation of change; complete change package, keeping copy
- New System Framework Testing Phase Responsibilities: provide information to the application expert to aid in summarizing the reason for the test as well as the scope of the test
- Modified System Framework Testing Phase Responsibilities: provide information to the application expert to aid in summarizing the reason for the test as well as the scope of the test
- Implementation Phase Responsibilities: assist in development of user’s guidance and training for the framework as needed; serve as reference for project custodian in supporting client implementation
- Definition: team member responsible for ensuring that all quality documentation reflects (in a manner that meets client needs) the activities that were accomplished and the state of the framework user interface, module user interface, models, and pre- and post-processors at each point in the software life cycle
- Requirement Phase Responsibilities: support development of project management plan or statement of work; support development of requirements package
- New System Design and Development Phase Responsibilities: support development of software development package
- Modified System Design and Development Phase Responsibilities: support development of change package and change request summary
- Testing Phase Responsibilities: support development of software test package
- Implementation Phase Responsibilities: support development of user’s guidance or training; ensure all quality documentation has been completed and is ready for project or task closeout
- Definition: team member responsible for developing and maintaining a specific module that might be used within a framework, including module user interface, underlying scientific models, and pre/post-processors.
- Requirement Phase Responsibilities: understand client and user requirements for module
- New Module Design and Development Phase Responsibilities: lead team of code developers (or conduct design and development alone for smaller modules) in designing and developing module user interface, scientific models, and pre/post-processors to meet client needs; determine appropriate databases and file structures of the inputs and outputs from them; describe the major components of the design for the software development package, perhaps by using a flowchart or block diagram; complete the software development package for the module
- Modified Module Design and Development Phase Responsibilities: initiate change request; attempt to reproduce problems in the module; determine potential ways to solve the problem; evaluate change for appropriateness and effect on other segments of the code; approve changes with the subject matter expert; provide change document to project custodian should subject matter expert deny changes; implement or lead the implementation of changes; complete change package for module, keeping copy; assist development of change request summary
- New Module Testing Phase Responsibilities: provide information to the application expert to aid in summarizing the reason for the test as well as the scope of the test
- Modified Module Testing Phase Responsibilities: provide information to the application expert to aid in summarizing the reason for the test as well as the scope of the test
- Implementation Phase Responsibilities: assist in development of user’s guidance and training as needed for module to support client implementation
- Definition: team member responsible for ensuring quality throughout the software life cycle through careful tracking of activities and archiving of development and application results
- Requirement Phase Responsibilities: assist in development of project management plan or statement of work; assist in development of requirements package
- New System Design and Development Phase Responsibilities: assist in development of software development package
- Modified System Design and Development Phase Responsibilities: assign tracking number to change request, enter information into database, and distribute information to affected module or framework custodians; ensure changes that require additional evaluation are resolved; ensure completeness of change package; complete change request summary; alert users as needed to changes
- Testing Phase Responsibilities: assist in development and implementation of test process as well as test package
- Implementation Phase Responsibilities: develop user’s guidance and training as needed to support client implementation; serve as primary point of contact for general user support
- Definition: team member responsible for interfacing with the client, communicating client needs to the rest of the project team, ensuring that all Laboratory and client requirements are met throughout the project, and providing leadership throughout the project
- Requirement Phase Responsibilities: work with client to identify requirements and needs; develop project management plan or statement of work and gain internal as well as needed external approvals; communicate requirements to team members; assist in development of requirements package; ensure project will meet Laboratory and client needs
- Design and Development Phase Responsibilities: ensure project is meeting Laboratory and client needs; approve potential changes to baselined code with task leader (if one is assigned)
- Testing Phase Responsibilities: ensure project is meeting Laboratory and client needs
- Implementation Phase Responsibilities: ensure project is meeting Laboratory and client needs; ensure appropriate closeout of project activities
- System Framework Definition: team member responsible for ensuring the appropriateness the framework in addressing client and user needs; ensuring that framework specifications are accurate and documented; ensuring the user interface is logical and predictable; and for providing technical leadership
- Module Definition: team member responsible for ensuring that the underlying scientific models for a particular module are scientifically accurate and predictable, and provide useful results, and for providing technical leadership
- Requirement Phase Responsibilities: assist in development of project management plan or statement of work; determine requirements for framework or module; develop requirements package for framework or module; responsible for gathering client and general user needs and expectations.
- System Framework Design and Development Phase Responsibilities: provide support to framework custodian understanding requirements and their relative importance; approve design for new systems; review and approve baselined system
- Module Design and Development Phase Responsibilities: provide formulations and model information for new systems; approve design for module for new systems; review and approve modifications to baselined systems
- Testing Phase Responsibilities: provide information to the application expert to aid in summarizing the reason for the test as well as the scope of the test with the module or framework custodian; ensure model results are appropriate
- Implementation Phase Responsibilities: assist in development of user’s guidance and training as needed
- Definition: team member responsible for ensuring that all activities associated with a particular task are accomplished on time, within budget, and according to client and Laboratory requirements
- Requirements Phase Responsibilities: assist in development of project management plan or statement of work; understand client and user requirements for task; assist in development of requirements package
- Design and Development Phase Responsibilities: ensure task contributes to overall project; approve potential changes to baselined code
- Testing Phase Responsibilities: ensure task contributes to overall project
- Implementation Phase Responsibilities: ensure task contributes to overall project; ensure appropriate closeout of task activities
- Definition: team member responsible for providing a "second opinion" on the scientific accuracy of a specific model, its predictability, and/or its ability to provide useful results or to provide a similar opinion on the utility of coding in a framework system, module user interface, model, or pre/post-processors.
- Requirement Phase Responsibilities: understand client and user requirements; review requirements package if needed
- Design and Development Phase Responsibilities: review software development package if needed for new systems; review change package if needed for modified systems
- Testing Phase Responsibilities: review test results if needed
- Implementation Phase Responsibilities: review user’s guidance and training as needed
- Definition: team member responsible for ensuring that software performs according to the software test package and for documenting the results of tests
- Requirements Phase Responsibilities: understand client and user requirements
- Design and Development Phase Responsibilities: understand design and development constraints
- Testing Phase Responsibilities: assist in development of software test package; implement testing process and provide documentation of test results for both new and modified systems
- Implementation Phase Responsibilities: serve as reference to project custodian to support client implementation
Table B.1. Key Activities During the Software Life Cycle and Project Team Members Responsible*
Project Team Member | PMP or SOW | Requirements Package | Software Development Package | Software Test Package | User’s Guidance or Training | Change Request | Change Package | Change Request Summary |
Applications Expert |
|
|
|
|
|
|||
Code Developer |
|
|
|
|||||
Framework Custodian |
|
|
|
|
|
|
||
Documentation Manager |
|
|
|
|
|
|
||
Module Custodian |
|
|
|
|
|
|
||
Project Custodian |
|
|
|
|
|
|
|
|
Project Manager |
|
|
||||||
Subject Matter Expert |
|
|
|
|
|
|||
Task Leader |
|
|
||||||
Technical Reviewer |
|
|
|
|
||||
Tester |
|
*Abbreviations used in table: In Heading Row—PMP = Project Management Plan; SOW = Statement of Work. In other rows: R = responsible; A = assists responsible team member; r = reviews as needed.
The individuals assigned for each role is determined by the project manager at the onset of a specific project.