Software Design Return On Investment

The fine line between too much, and too little, design time. Design is absolutely necessary for any project that either creates or makes significant changes to architecture or the functional logic of how a system is implemented or performs. Simple, iterative changes or UX tweaking, don’t require design, they just need good problem statements, validations and where applicable jobs to be done elaborations. Whereas design defines the primary functions of a new or replacing system, not the implementation details for each function, but enough overview that it makes it obvious at a high level how the primary functions will work. And this overview makes review and identification of problems with the logic / architecture of the design easy for all involved. Going further than that is too much design and is creating inventory that will sit on a shelf and have little to no value by the time implementation begins, doing less homework than that and you have probably missed something critical and it will be exponentially more expensive to correct later.