...by Daniel Szego
"On a long enough timeline we will all become Satoshi Nakamoto.."
Daniel Szego

Sunday, July 12, 2015

Software development methods compared

Let we compare the different software development models based on two dimensions, communication cost and delivery time.

Communication cost: this dimension summarizes how much effort must be taken into account to cover all of the communication during a software delivery. The dimension contains on the one hand elements like communicating with a customer, creating specifications, changing specification elements, coordinating the technical delivery, like for example with hosting companies and so one. On the other hand, communication means communicating with the development team internally. As thumb of rule, if part of the development team is offshore, there is surely an increased communication cost due to the intercultural, langue differences or simply because of the distance.

Delivery time: is the time, how fast can be deliver either a ready or a prototype solution for the customer. 

The following picture demonstrates the two dimensions and the proposed software development methods.

Figure 1. Software development models based on communication cost and delivery time

Let we suppose that the communication cost should be kept low, be for instance the customer does not have very much time for creating a specification or taking part each day in different stand-up meetings. In this situation, if we have to deliver something pretty fast, than the only possibility is a ready product. Supposing that the software solution does not have to be delivered very fast, but the communication cost should be despite kept low, than we can use the classical waterfall, V and W models. 

The other way, if a highly increased communication cost is accepted by the customer and in the team, like having a lot of meetings changing and redefining the specification or the scope of the project, Supposing that the delivery time should be fast, than we can use the different agile methods, like scrum. The last segment, in which the communication cost is huge, despite the delivery time is pretty slow is typical for the research and development projects. In these projects, the typical situation is "we do not know what, we do not know how".