“Failing to plan, is planning to fail” – Alan Lakein.
I believe that no statement holds truer when taken in the context of development. It is for this exact reason that as developers, we often dedicate entire sprints to planning and laying out required technical functionality/specifications. The technical specification is a powerful tool, its usefulness transcends merely defining scope and complexity.. I would go as far as to say, that any development requirement should be furnished with a technical specification document or breakdown, irrespective of how easy/complex it may seem. Complexity in fact, is one of the major issues that a specification document addresses; and it is through that breakdown and the creation of that technical document, that all assumptions and ambiguity are put to rest. In short, a technical specification document provides developers with clearly defined goals and direction, and ultimately allows for better management of stakeholder expectations.