This guide covers how technical teams can help product evolution and easy maintenance, designing an API that’s simple to evolve together with the product.
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 in most cases they are just 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.
I'm a strong believer that people are the main "competitive advantage" of any company. I'm an eternal optimist, always ready to overcome challenges and find ways to improve things, ideally taking pragmatic decisions using data.More about me