
Code can be perfectly correct and still solve the wrong problem. Software teams rarely begin with complete, precise requirements. They begin with customer complaints, business goals, rough feature ideas, regulations, support incidents, prototypes, stakeholder...