Empirical process (process control model)

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Empirical software engineering requires the scientific use of quantitative and qualitative data to understand and improve the software product, software development process and software management.

There are two major approaches to controlling any process:

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[edit]

The empirical model of process control is constituted of three parts: visibility, inspection, and adapation.

Visibility[edit]

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[edit]

Visibility requires that various aspects of the process be inspected frequently enough so that unacceptable variances in the process can be detected.

Adaptation[edit]

Adaptation requires that the inspector should adjust the process if one or more aspects of the process are in an unacceptable range.

Software Development[edit]

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 interst 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[edit]

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[edit]

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 posses 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 (often Java). In addition, each team needs a team leader who can see the big picture, guide the team in the right direction, and when needed, assist the team in resolving impediments.

Books[edit]

References[edit]

  1. ^ "Stakeholders." Software Systems Architecture Stakeholders Comments. Rozanski Woods, 29 Nov. 2011. Web. Nov.-Dec. 2014.
  2. ^ 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.
  3. ^ 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.
  4. ^ 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.
  5. ^ Thomas, Steven. "Empirical Project Management: Agile Estimation and Being "Done"" Project Research Institute. Athabasca University, 6 June 2012. Web. 17 Nov. 2014.
  6. ^ 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.