Software design: create the big picture
On this page 1 headings
Suppose several developers start coding Amazon Pay without agreeing on the structure. Each person may choose different inputs, data formats or responsibilities. Their parts can fail when connected.
EXAMPLE Developer A changes a function from pay(amount) to pay(amount, currency). Developer B still calls pay(amount). Developer B's module may now fail. Agreeing on interfaces and coordinating changes prevents this confusion.
Such a scenario can be a disaster: it needlessly makes the software complicated and the product will not be delivered on time.
Difficulties while adding new features
If we want to add new features later, it helps to have a big-picture view of the system so we can decide how the new feature can be correctly integrated into the existing system.
Design is the big-picture view of the software system. It provides a structure to the software system, so we know how to organise the code before we start implementing it.
REMEMBER Requirements say WHAT is needed; design provides the structure for HOW it will be built.
