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 full-stack software developer based in Berlin, Germany. I’ve spent the last 10+ years working in a wide range of software projects, from internal web dashboards to real-time applications used by millions of people.More about me