Theory of Constraints in Software Engineering

From apppm
(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
Theory of Constraints (TOC) is a methodology invented by Dr. Eliyahu M. Goldratt, a scientist, physicist, author, educator and consultant [3]. With the methodology the most important limiting factor, that hinders a goal to be achieved, is identified and then that factor (i.e. constraint) is improved until it is no longer the limiting factor.  Since Goldratt introduced the Theory of Constraints in his bestselling 1984 novel, “The Goal”, the methodology has continued to evolve and develop into many different fields including Software Engineering.[2]
+
Theory of Constraints (TOC) is a methodology invented by Dr. Eliyahu M. Goldratt, a scientist, physicist, author, educator and consultant [3]. With the methodology the most important limiting factor, that hinders a goal to be achieved, is identified and then that factor (i.e. constraint) is improved until it is no longer the limiting factor.  Since Goldratt introduced the Theory of Constraints in his bestselling 1984 novel, ''“The Goal”'', the methodology has continued to evolve and develop into many different fields including Software Engineering.[2]
  
 
The goals of Software Engineering is the creation of software systems that meet the needs of customers and are efficient, maintainable and reliable in addition the systems should meet project schedules and budgets along with being produced in an economical way [1, bls 21]. Applying analogous set of approaches to the development of software, one can expect the production of software that meets the goals of Software Engineering [1, bls 22].  
 
The goals of Software Engineering is the creation of software systems that meet the needs of customers and are efficient, maintainable and reliable in addition the systems should meet project schedules and budgets along with being produced in an economical way [1, bls 21]. Applying analogous set of approaches to the development of software, one can expect the production of software that meets the goals of Software Engineering [1, bls 22].  

Revision as of 21:47, 11 September 2016

Theory of Constraints (TOC) is a methodology invented by Dr. Eliyahu M. Goldratt, a scientist, physicist, author, educator and consultant [3]. With the methodology the most important limiting factor, that hinders a goal to be achieved, is identified and then that factor (i.e. constraint) is improved until it is no longer the limiting factor. Since Goldratt introduced the Theory of Constraints in his bestselling 1984 novel, “The Goal”, the methodology has continued to evolve and develop into many different fields including Software Engineering.[2]

The goals of Software Engineering is the creation of software systems that meet the needs of customers and are efficient, maintainable and reliable in addition the systems should meet project schedules and budgets along with being produced in an economical way [1, bls 21]. Applying analogous set of approaches to the development of software, one can expect the production of software that meets the goals of Software Engineering [1, bls 22].

This article will introduce how Theory of Constraints can be used in Software Engineering along with guidance to apply the methodology.


Contents

Theory of Constraints

The Five Focusing Steps

The Thinking processes

Throughput Accounting

Theory of Constraints in Software Engineering

When applying TOC the constraints that cause inventory or buffer have to be identified and managed. Inventory in Software Engineering can be expressed in different ways, depending on the software methodology used. A unit of inventory could be, for instance:

  • A Use Case in UDP [a.k.a. RUP].
  • A Story Point in XP (eXtreme Programming).
  • A Feature in FDD (Feature-Driven Development).
  • A Backlog Item in Scrum.
  • A Function Point in traditional SDLC structured methods.

[4]


Applying TOC in Software Engineering

1. Identify

2. Exploit

3. Subordinate

4. Elevate

5. Repeat

Limitations and advantage

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox