Analysis

The first step in building any product should be the gathering and analysis of the requirements for that product. Software engineers have often times been given nothing more than a few notes on a napkin and asked to go build a system. Many times that development occurs under fire. The temptation to just go code has got to be resisted at all costs. Even for very simple projects, it is easy to assume that all is known about the project and that there is no need to analyze further. Or it is assumed that if changes do need to be made later in the project life cycle that the code will be malleable and allow for change. The primary problem is that customers requesting a product usually have a difficult time describing all of the requirements that are needed. It is only through analysis and feedback with the customer that the true intent and full discovery can be made. The other problem is that software requirements do change and often come late in the cycle. Without a proper understanding of the product architecture, changes can be very expensive to make. Well thought out product analysis and design can ensure that all initial requirements have been met and that future changes can be made.