(Alias: methodology, method)
Companies work by different rules. They don't just create; they execute and compete and coordinate the efforts of many different people, and the organisations that are most successful at that task are the ones where the system is the star.
The talent myth assumes that people make organisations smart. More often than not, it's the other way around.
- What the Dog Saw, The Talent Myth, Malcolm Gladwell
A process is a documented set of activities that are performed to meet a defined objective. Effective processes are documented with process scripts, have a systematic approach to data gathering and feature standards to indicate product quality.
Examples of Processes
Examples are: requirements elicitation process, project management process, configuration management process and design process.
Processes are Partitioned into Activities and Tasks
The Process Approach
Modern thinking on the management of any business calls for a "process approach". ISO 90011 encourages businesses to characterise their operations as a set of interacting processes as follows:
For an organisation to function effectively, it has to determine and manage numerous linked activities. An activity or set of activities using resources, and managed in order to enable the transformation of inputs into outputs, can be considered as a process. Often the output from one process directly forms the input to the next.
The application of a system of processes within an organisation, together with the identification and interactions of these processes, and their management to produce the desired outcome, can be referred to as the "process approach".
Benefits of the Process Approach
Software development organisations who define all their operations as a set of processes reap the following rewards:
- Improve the way the work is done.
A business process that is defined in detail and rigourously followed can be progressively improved. The intellectual energy of all those involved can be focused on making it better. An undefined process is subject to the whims of individuals and does not support organisational learning and improvement.
- Improve the accuracy of estimates.
If a software development process is well defined metrics can be gathered on the effort historically required to complete individual activities. Over time this improves the accuracy of estimates.
- Support process performance measurement and improvement.
A defined process supports development of benchmarks for performance. For example, an organisation may determine that development of a 10 function point unit of software should take two weeks.
- Measure quality - define what "good" means.
In a software development organisation an optimised process definition provides a complete and unambiguous statement of "the professional approach" to the work.
- Avoid method reinvention for each project.
If the software development process is well defined all the intellectual energy of a project team can be focused on doing the work rather than figuring out how it should be done.
- Make training effective.
Vocational training can be extremely effective if trainees are trained on the processes they will be performing when they return to their desks. In this way employee skills are directly aligned with those required to move the organisation forward.
- Enable tool support and use.
Development support facilities such as computer aided software engineering tools provide little benefit unless they support an organisation's software development processes. The rational approach is to first define the software development process and then identify a tool that supports it.
- Make people mobile between projects.
If an organisation has many project streams all following the same development process, people may be moved between projects with minimal disruption as there is no requirement to relearn the way things are done.