Software Development Models

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

Insight diagram
Models the process by which a software team is expanded and trained up to full productivity.
Development Ramp Up
Insight diagram
Developers Productivity and Learning curve. Basd on Madachys Software Process Dynamics
Software Development Productivity
Insight diagram

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.

Inspired by Rule Beating Trap by Luciano Gonzalez

Rule Beating Trap - Tests per week
Insight diagram
Drift to low performance - Software Quality
Insight diagram

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
Brooks' Law
Insight diagram
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.
Internal Quality vs External Quality
Insight diagram

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
Clone of Brooks' Law
Insight diagram

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
Clone of Brooks' Law
Insight diagram
Phase 3 Development
Insight diagram

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

Clone of Brooks' Law
Insight diagram
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.
Software Development Backlog Management
Insight diagram
Overfit for Hello World
Insight diagram

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
Clone of Brooks' Law
Insight diagram
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.
Clone of Internal Quality vs External Quality
Insight diagram
Models the process by which a software team is expanded and trained up to full productivity.
Clone of Development Ramp Up
Insight diagram

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
Clone of Brooks' Law
Insight diagram

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
Clone of Clone of Brooks' Law
Insight diagram
Developers Productivity and Learning curve. Basd on Madachys Software Process Dynamics
Clone of Software Development Productivity
Insight diagram
This insight show various ways scrum teams can organize themselves
Scrum Teams
Insight diagram
Models the process by which a software team is expanded and trained up to full productivity.
Clone of Development Ramp Up
Insight diagram
A model illustrating the tension between waterfall and iterative approaches
Software Development, Big Bang vs Iteration
Insight diagram
Models the process by which a software team is expanded and trained up to full productivity.
Clone of Development Ramp Up
Insight diagram
Yes I did it!
20th century fox
Insight diagram

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
Clone of Brooks' Law