Joel Spolksy has some great blog posts
Several I re-read from time to time just to refresh my recollection of them or to glean something new from them I may have missed on one of the tens of rereads I did.
I really like his blog posts about organization style, functional specs and other aspects of software development. Mostly because he’s done a lot of this more than once.
Some of my favourites
How to be a program manager It’s a great read and talks about WHAT a program manager does and who should, and who shouldn’t be the program manager and why. And it has some excellent lins to other posts about functional specs. Perhaps the BETS bit of advice in this one is
To make sure that the debate happens respectfully and on a rational basis of facts, it’s absolutely critical that the program managers and developers be peers
https://www.joelonsoftware.com/2009/03/09/how-to-be-a-program-manager/
Painless Functional Specifications is another great one and has sound advice for anyone who writes software. Starting WITHOUT a spec is masochistic. Or as Joel writes
It’s as stupid as setting off to cross the Mojave desert with just the clothes on your back, hoping to “wing it.”
https://www.joelonsoftware.com/2000/10/02/painless-functional-specifications-part-1-why-bother/
Setting off without knowing where you’re going, how you plan to get there, or even where “there” is is simply crazy. And a waste of time and effort
If you haven read his blog I would – especially the archives as there is a lot of really good advice on it.
Funny thing is, literally 2 min before I opened your blog I came to the conclusions that I need a much better speced design. My favorite app has been rewritten pretty much from scratch four times, in part because as my abilities grew I approached the design differently. However it is also true that without a properly speced design my app tended to become a mess – and that’s what I realized and decided to change with a better speced design. Basically a giant blueprint of what’s where and how it all works together. After all, my memory is not good enough to remember every important detail.
A spec is so useful
I will write small test apps without a full blown spec but thats about where it stops
The one project I’m working on would be impossible without a functional spec