Software Development Models

These models and simulations have been tagged “Software Development”.

A model illustrating the tension between waterfall and iterative approaches
A model illustrating the tension between waterfall and iterative approaches
4 months ago
Models the process by which a software team is expanded and trained up to full productivity.
Models the process by which a software team is expanded and trained up to full productivity.
 Demonstration of Brooks' Law: 
  "adding manpower to a late software project makes it later" (http://en.wikipedia.org/wiki/Brooks's_law) 
 Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html  Adding more than 11 new developers extends the project schedule

Demonstration of Brooks' Law:

"adding manpower to a late software project makes it later"(http://en.wikipedia.org/wiki/Brooks's_law)

Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html


Adding more than 11 new developers extends the project schedule
Developers Productivity and Learning curve.
Basd on Madachys Software Process Dynamics
Developers Productivity and Learning curve. Basd on Madachys Software Process Dynamics
  Stock : Bugs: measured by the number of errors or defects in the code)      Balancing Loop 1 : Internal quality      When the number of errors in the code increases, the effort dedicated to software maintenance is increased.  This leads to the identification and correction of underlying issues in
Stock: Bugs: measured by the number of errors or defects in the code)

Balancing Loop 1: Internal quality

When the number of errors in the code increases, the effort dedicated to software maintenance is increased.
This leads to the identification and correction of underlying issues in the software's architecture and design that might be causing recurring errors.
As these underlying issues are addressed, the internal quality of the software improves and the number of errors in the code decreases.

Balancing Loop 2: External quality

When the number of errors in the code increases, the effort dedicated to quality control is increased.
This leads to the identification and correction of errors.
As errors are corrected, the external quality of the software improves and the number of errors in the code decreases.

In this system, both balancing feedback loops compete to improve software quality, but they focus on different aspects of the process (external quality versus internal quality). As errors and underlying issues in the code are addressed and resolved, the internal quality of the software improves, which in turn reduces the amount of effort required for quality control and maintenance. This is similar to the thermostat example, where the two balancing feedback loops work together to maintain a desired temperature.
5 months ago
Models the process by which a software team is expanded and trained up to full productivity.
Models the process by which a software team is expanded and trained up to full productivity.
 Demonstration of Brooks' Law: 
  "adding manpower to a late software project makes it later" (http://en.wikipedia.org/wiki/Brooks's_law) 
 Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html  Adding more than 11 new developers extends the project schedule

Demonstration of Brooks' Law:

"adding manpower to a late software project makes it later"(http://en.wikipedia.org/wiki/Brooks's_law)

Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html


Adding more than 11 new developers extends the project schedule
  Stock : Bugs: measured by the number of errors or defects in the code)      Balancing Loop 1 : Internal quality      When the number of errors in the code increases, the effort dedicated to software maintenance is increased.  This leads to the identification and correction of underlying issues in
Stock: Bugs: measured by the number of errors or defects in the code)

Balancing Loop 1: Internal quality

When the number of errors in the code increases, the effort dedicated to software maintenance is increased.
This leads to the identification and correction of underlying issues in the software's architecture and design that might be causing recurring errors.
As these underlying issues are addressed, the internal quality of the software improves and the number of errors in the code decreases.

Balancing Loop 2: External quality

When the number of errors in the code increases, the effort dedicated to quality control is increased.
This leads to the identification and correction of errors.
As errors are corrected, the external quality of the software improves and the number of errors in the code decreases.

In this system, both balancing feedback loops compete to improve software quality, but they focus on different aspects of the process (external quality versus internal quality). As errors and underlying issues in the code are addressed and resolved, the internal quality of the software improves, which in turn reduces the amount of effort required for quality control and maintenance. This is similar to the thermostat example, where the two balancing feedback loops work together to maintain a desired temperature.
   The trap: Rule beating   
 Rules to govern a system can lead to rule beating—perverse behavior that gives the appearance of obeying the rules or achieving the goals, but that actually distorts the system.   The way out   

 Design, or redesign, rules to release creativity not in the direction of

The trap: Rule beating

Rules to govern a system can lead to rule beating—perverse behavior that gives the appearance of obeying the rules or achieving the goals, but that actually distorts the system.

The way out

Design, or redesign, rules to release creativity not in the direction of beating the rules, but in the direction of achieving the purpose of the rules.

From “Thinking in Systems” by Donella H. Meadows

In this system, the rule is the number of tests that must be written weekly. The developer has a self-allotted time to be spent per week to write tests and there is an amount of time needed to write a good quality test. If the rule is changed to increase the number of tests mandated per week and the developer does not allocate more time to writing tests, then the programmer will meet the requirements of the rule by writing lower-quality tests.


 Generalisation of Brooks' Law: 
  "adding manpower to a late software project makes it later" (http://en.wikipedia.org/wiki/Brooks's_law) 
 Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html  Adding more than 11 new staff extends the project schedule

Generalisation of Brooks' Law:

"adding manpower to a late software project makes it later"(http://en.wikipedia.org/wiki/Brooks's_law)

Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html


Adding more than 11 new staff extends the project schedule
 Demonstration of Brooks' Law: 
  "adding manpower to a late software project makes it later" (http://en.wikipedia.org/wiki/Brooks's_law) 
 Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html  Adding more than 11 new developers extends the project schedule

Demonstration of Brooks' Law:

"adding manpower to a late software project makes it later"(http://en.wikipedia.org/wiki/Brooks's_law)

Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html


Adding more than 11 new developers extends the project schedule
  Stock : A backlog of pending tasks of features and improvements to be implemented in the software      Input Flow : New feature and improvement requests (coming from users, development team, etc.)   Output Flow : Implementation of features and improvements (developed by the development team)
Stock: A backlog of pending tasks of features and improvements to be implemented in the software

Input Flow: New feature and improvement requests (coming from users, development team, etc.)
Output Flow: Implementation of features and improvements (developed by the development team)

Delay: The time it takes for the development team to analyze, design, develop, test, and implement the features and improvements in the software.

In this example, it's necessary to maintain a backlog of tasks that can satisfy development demands during the time it takes to analyze, design, develop, test, and implement the features and improvements. This backlog acts as a buffer in case there are delays in the arrival of new feature and improvement requests or in the availability of the development team's resources.

The development team needs to maintain a healthy balance in the backlog to ensure that there's always work available and, at the same time, prevent the backlog from growing to a point where it becomes difficult to manage. To achieve this balance, the team may need to adjust the rate at which it accepts new requests or allocates resources to work on pending tasks.
 Demonstration of Brooks' Law: 
  "adding manpower to a late software project makes it later" (http://en.wikipedia.org/wiki/Brooks's_law) 
 Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html  Adding more than 11 new developers extends the project schedule

Demonstration of Brooks' Law:

"adding manpower to a late software project makes it later"(http://en.wikipedia.org/wiki/Brooks's_law)

Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html


Adding more than 11 new developers extends the project schedule
Models the process by which a software team is expanded and trained up to full productivity.
Models the process by which a software team is expanded and trained up to full productivity.
This insight show various ways scrum teams can organize themselves
This insight show various ways scrum teams can organize themselves
10 months ago
 Demonstration of Brooks' Law: 
  "adding manpower to a late software project makes it later" (http://en.wikipedia.org/wiki/Brooks's_law) 
 Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html 
  Adding more than 11 new developers extends the project schedule

Demonstration of Brooks' Law:

"adding manpower to a late software project makes it later"(http://en.wikipedia.org/wiki/Brooks's_law)

Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html


Adding more than 11 new developers extends the project schedule

Developers Productivity and Learning curve.
Basd on Madachys Software Process Dynamics
Developers Productivity and Learning curve. Basd on Madachys Software Process Dynamics
 Demonstration of Brooks' Law: 
  "adding manpower to a late software project makes it later" (http://en.wikipedia.org/wiki/Brooks's_law) 
 Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html  Adding more than 11 new developers extends the project schedule

Demonstration of Brooks' Law:

"adding manpower to a late software project makes it later"(http://en.wikipedia.org/wiki/Brooks's_law)

Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html


Adding more than 11 new developers extends the project schedule
 Demonstration of Brooks' Law: 
  "adding manpower to a late software project makes it later" (http://en.wikipedia.org/wiki/Brooks's_law) 
 Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html  Adding more than 11 new developers extends the project schedule

Demonstration of Brooks' Law:

"adding manpower to a late software project makes it later"(http://en.wikipedia.org/wiki/Brooks's_law)

Based on: http://sunset.usc.edu/classes/cs599_99/spd/spd.html


Adding more than 11 new developers extends the project schedule
9 months ago
Models the process by which a software team is expanded and trained up to full productivity.
Models the process by which a software team is expanded and trained up to full productivity.
4 months ago