What is design? What is architecture? This chapter is based on these two questions. According to the author, both are the same. One cannot be present in place of the other.
To illustrate their sameness, he uses the example of an architect who designs a home. The architecture of the home not only contains the overall layout of rooms and floors (software architecture – high level) but also the minute details like places for sockets, doors, pipes, etc. (software design – low level).
The goal of software architecture is to minimize the human resources that are needed to build and maintain the required system.
– Robert Marti, Clean Architecture
When is a design good – If the effort needed to build a system is low and stays low throughout the development and maintenance, then only the design is good.
The author gives example from a real company, whose initial development costs were low, but they became super high over the years. On further analysis, one could see number of lines of code not increasing, but cost per line of code increasing as number of developers increased over the years.
Through his example, he wants to show the consequences of bad design. He explains that in the rush to deliver to market quickly, the developers do not take time to design right before coding, resulting in a system that gets complicated with the addition of new features over time, becoming more and more expensive. Thus spending more time on the development of new features later. Instead, if they had taken time to design right before starting the implementation, they would have spent more time in the beginning, but the overall same amount of time if we combine the time spent on new features later.
Thanks for stopping by.