To build a house, it's necessary to go through different phases before stacking the first brick. The architect needs to pay attention to everything, drawing all the technical details and documenting the architecture design.
After the drawings are finished, the construction materials need to be chosen and things like the brick type, the insulation layer, the heating and plumbing systems affect how the house is going to be built.
The construction phase starts when the architect gathered all the information and after some time the house is (hopefully) finished.
What would happen, if after the house is finished, the family that owns the house asks the architect to change the brick type? What would happen if the family realises that they want an extra floor? On the traditional manufacturing and construction industries, changes like these are not common, because they have prohibitive costs, and usually they are impossible.
Software development is often compared with the construction of a house, where a development team would be able to forecast and plan all the details involving a project, but it couldn't be more different. Differently from building a house, software evolves.
Doesn't matter the industry you are in or the programming language you use. If you are developing software, one thing is guaranteed: it will change.
This open book is licensed under a Open Publication License (OPL). You can download Versioned APIs with Phoenix ebook for free in PDF format (0.4 MB).