Also I want to point out that, perhaps against better design judgment, in actual industry most of modern software engineering has embraced the “agile” methodology where the product is being iterated in small sprints. This means that the design team checks in with the users’ needs, changes are made, tests are added, and the cycle begins again. (Simplifying things here, of course.)
It was more common in the past to spend much more time understanding the clients’ needs, in what is termed the “waterfall” methodology, where code is shipped perhaps only a few times a year, rather than bi-weekly (or whatever your agile sprint duration is).
Related to this, here’s my site dedicated to explaining how Minimum Viable Products should be more half-baked and less bloated: http://bloatedmvp.com
Also I want to point out that, perhaps against better design judgment, in actual industry most of modern software engineering has embraced the “agile” methodology where the product is being iterated in small sprints. This means that the design team checks in with the users’ needs, changes are made, tests are added, and the cycle begins again. (Simplifying things here, of course.)
It was more common in the past to spend much more time understanding the clients’ needs, in what is termed the “waterfall” methodology, where code is shipped perhaps only a few times a year, rather than bi-weekly (or whatever your agile sprint duration is).
Related to this, here’s my site dedicated to explaining how Minimum Viable Products should be more half-baked and less bloated: http://bloatedmvp.com