The Role of the Process Engineer
The primary objective of the process engineer is to implement a software development methodology within an organisation that is appropriate to the nature of the project, technologies in use and people involved on a project-by-project basis. The methodology implemented should reduce uncertainty within the project and provide early visibility of any significant technical risks.
The delivery of the role is extremely challenging as it crosses both organisational culture and technical delivery boundaries and therefore requires a mature, experienced and multi-faceted individual (or team) that can manage intricate technical scenarios whilst concurrently handling complex organisational change issues.
A challenge for the process engineer is to apply the correct amount of methodology weight to the project, given its problem size (complexity), criticality and size of the project (number of people). Too light a methodology and the end result will become unpredictable. Too heavy, and the teams will get bogged down in details, documentation and reporting. Therefore, whatever methodologies are implemented in an organisation, they must be elastic enough to adapt to the project at hand.
Top Activities for the Process Engineer:
1. Assess the organisation's software development methodology
2. Describe the methodology to be used in the project
3. Collaborate with the project manager to incorporate the methodology into the software development plan
4. Implement the methodology
5. Assess and improve the methodology on an ongoing basis
6. Assist in technical risk management
7. Keep abreast of software process improvement methods and tools
Assess the organisation's software development methodology: This need not be done against a standard of software process maturity, such as SEI's SW-CMM and ISO 9001. Analyse the organisational culture, current development processes, the reasons for change and the project attributes that will affect the target methodology. Understand the effects the project members' characteristics will have on the project. Audit the skills and competencies of project participants. Identify the key people in the project who will assist with the ongoing development and implementation of the target methodology.
Describe the methodology to be used in the project: Based on the outcome of the organisation's software methodology assessment, define the disciplines and roles to cover in the methodology. Define the structure of the lifecycle, viz. the phases, increments and/or iterations. In conjunction with the key people in each selected discipline, define the most appropriate activities and deliverables. Map the roles onto job positions. A key output from this activity is a sample iteration plan, per project phase. This enables the project members and stakeholders to understand the newly developed methodology.
Collaborate with the project manager to incorporate the methodology into the software development plan: It is vital that the methodology is reflected in the project plan. This will include not only the lifecycle model, but also the process-oriented tasks and key deliverables per iteration.
Implement the methodology: Publish the methodology in an appropriate, highly visible area. Rollout of the methodology will require training and mentoring; an efficient rollout may require the involvement of the key people. Ensure that the methodology is introduced to all new project members, in an appropriate fashion.
Assess and improve the methodology on an ongoing basis: Throughout the lifecycle of the project, continuously evaluate the effectiveness of the process. Encourage feedback from the project members and interfacing teams. Apply improvements to the process framework, as needed.
Assist in technical risk management: The process engineer, while assessing the organisation, will be in a position to provide early views of potential risks relating to the process. These are risk areas that will be mitigated by the introduced methodology, and will need to be closely monitored.
Keep abreast of Software Process Improvement methods and tools: Software Process Improvement is a very dynamic, contentious field. In order to provide the organisation with an appropriate methodology, the process engineer must be able to evaluate emerging methodologies and judge their applicability to the project at hand.