Empirical process (process control model)
Empirical software process has empirical focus. It requires the use of agile approach to understand how to improve the software product, software development process and software management.
There are two main approaches to process control for any process:
- The empirical process control model.
The empirical model of process control provides and exercises control through frequent inspection and adaptation for processes that are imperfectly defined and generate unpredictable and unrepeatable outputs. See statistical process control.
Definition
The empirical model of process control is constituted of three parts: visibility, inspection, and adaptation.
Visibility
Transparency or visibility means that any aspects of the process that affect the outcome must be visible and known to everybody involved in the project process. The collection of those involved with the project are referred to as stakeholders.[1]
Inspection
Inspection requires that various aspects of the process be inspected frequently enough so that unacceptable variances in the process can be detected.
Adaptation
Adaptation requires that the inspector should adjust the process if one or more aspects of the process are in an unacceptable range.
Software Development
For many years software development methodologies have been based on the defined process control model. But software development isn’t a process that generates the same output every time given a certain input, the basis of requirements for the defined process. There is a growing interest in empirical study in software engineering, both for validating mature technologies and for guiding improvements of less-mature technologies.[2]
The agile software development method Scrum is based on the empirical process control model. As a remedy for the shortcomings of the traditional methods, agile software development methods, including Scrum, EXtreme Programming, Crystal, and Adaptive Software Development (ASD), have been created and evolved by practitioners since the 1990s; they are designed to embrace, rather than reject, high rates of change. Adoption of the Empirical Process has not been 100% for multiple reasons, with one of those being these methods are not adequate for highly stable projects.[3]
Positives
Empirical processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.[4] Teams using Lean-Agile take an empirical approach; they test and retest their plans with evidence of progress so that corrective action can be taken as soon as possible.[5]
The empirical process control model also provides the ability to control and manipulate project solutions based upon the environment and goals set for the project knowledge based upon empirical and experimental evidence of what works and does not work and under what conditions.[6]
Negatives
While many positive benefits of the empirical process have been published, there have been few empirical studies of the negative benefits of the empirical process control model. When an organization decides to employ the empirical methods, the organization needs to reorganize their existing development and testing resources into functionally specific, enduring teams. Team members, collectively, must possess the knowledge and skills necessary for completing assigned work efforts. The most common skills that are needed on an IT focused team are capturing business logic in a human friendly format, the effective use of both development and testing tools, and writing code using one or more programming languages. In addition, each team needs a team member who can see the big picture, guide the team in the right direction with respect to processes, and when needed, assist the team in resolving impediments.
Books
- Schwaber, Ken; Beedle, Mike (2002), Agile Software Development with Scrum (PDF), Upper Saddle River: Prentice Hall, ISBN 0-13-067634-9
- Ogunnaike Babatunde A. and Harmon Ray W., Process Dynamics, Modeling and Control, Oxford University Press, 1994.
References
- ↑ "Stakeholders." Software Systems Architecture Stakeholders Comments. Rozanski Woods, 29 Nov. 2011. Web. Nov.-Dec. 2014.
- ↑ Shull, Forest, Jeffrey Carver, and Guilherme H. Travassos. An Empirical Methodology for Introducing Software Processes (n.d.): n. pag. Computer Science Department. University of Maryland. Web. 17 Nov. 2014.
- ↑ Cho, Juyun J. "AN EXPLORATORY STUDY ON ISSUES AND CHALLENGES OF AGILE SOFTWARE DEVELOPMENT WITH SCRUM." Utah State University. Utah State University, 2010. Web. 17 Nov. 2014.
- ↑ Cho, Juyun J. "AN EXPLORATORY STUDY ON ISSUES AND CHALLENGES OF AGILE SOFTWARE DEVELOPMENT WITH SCRUM." Utah State University. Utah State University, 2010. Web. 17 Nov. 2014.
- ↑ Thomas, Steven. "Empirical Project Management: Agile Estimation and Being "Done"" Project Research Institute. Athabasca University, 6 June 2012. Web. 17 Nov. 2014.
- ↑ Rombach, Dieter. Empirical Model Building and Methods. N.p.: n.p., n.d. Kaiserslautern University of Technology. Kaiserslautern University of Technology, 2011. Web. 15 Nov. 2014.