Next post in our series where we compare the similarities between civil and software engineering.
A new house is under construction. After completing the outer walls, it’s the time to create the internal room arrangements. (keep in mind that minor changes in the internal room arrangments do not violate the official house license and are completely legal.)
In photo 1 we can observe that the engineer started the construction of the internal walls and stopped until a specific point when the photo was taken. Observe the way that the bricks are left in a “pending” state, ready to accept extension with more bricks as highlited in the yellow boxes.
At this point the owner (product owner :p) was asked by the engineer to observe the result until then and provide feedback (review). What will be the arrangement of the rooms? Where will be the bed and the cupboard placed? What will be the direction of the door openings?
The owner can change her mind or thing carefully about all of the above decisions without affecting the progress so far.
Answering all the above questions led to a result like the one in picture 2. The yellow lines indicate the finalized lengths of the walls that determined: 1. the exact openings of the two rooms. The width of the openings. The length of the walls inside the room, at the left and the right side of the door. This in turn will dictate the placement of the bed, the cupboard and maybe the office in the one room (right) and the arrangement of bath furniture in the other room (left).
A change in the design of the walls now, will have far more negative impact in the building progress and will definitely create tension between the owner and the engineer. Nobody likes late change, especially if it involves demolition of already created walls and extra labor days!
The experienced engineer applied a common way of work among engineers to do with everyday job. This way of work is also very familiar in our industry, as it reflects a well known agile principle: “fail fast”!