A few people have recommended the "E-Myth Revisited" book to me (and its on Joel reading list IIRC) and it gets very consistently good reviews.
http://www.amazon.com/Myth-Revisited-Small-Businesses-About/dp/0887307280 I struggled through the hubris, the excruciating dialogue and misuse of capital letters and was left with...
"Work on your business, not In it."
Most of the wisdom was about procedurising everything so it can be followed by anyone to create predictable results - McSoftware.
Struggling to see how that can be applied to an ISV? Apart from the 'obvious' stuff about unit testing/source control/continuous build etc I am at a loss for other actionable insights.
What am I missing?
I think you're missing how "... procedurising everything so it can be followed by anyone to create predictable results" does not in fact lead to "McSoftware". Your 'procedures' don't have to be actually executable by a computer! Think of these examples:
Now – what do these people do in these situations? And how do the managers or owners of this startup know what's everyone's schedules and priorities are and whether they need to be adjusted? How can all of the requisite data be collected so someone can even estimate this info? Here are some example procedures, in response to the example scenarios listed above:
The benefits of 'proceduralization' is that everyone that knows those procedures can then cache their decisions and everyone else that knows the same conventions can also easily know what to check to determine who's done what, when, why, and how. Procedures can be committed to mental 'muscle memory' so everyone can figure out the really hard problems of your business, instead of things like:
The Ruby on Rails community calls this same general pattern convention over configuration. The point is to remove unnecessary decisions by adopting conventions (procedures, 'best-practices', etc.).
But don't forget that there are 'meta-procedures' which are responsible for reviewing and adjusting all of the other procedures as appropriate. There's nothing wrong with doing things differently, but it's immensely valuable to have an in-place way for everyone to do the common, routine tasks that make up a lot of the time working for a software company.
It means:
Systemize your business procedures List all the things that you do every day. If you'd leave for one week, what are the essential things that would require your presence?
Some examples of procedures can be:
Working on your business Working on your business is looking at your business like a product that you are trying to sell. What things would you do if you had in mind to sell your business in a few years?
You'd probably make sure your finances are tidy, your web accounts are documented somewhere, you have more than one revenue stream, subscription preferably, etc.
Disclaimer: I run an outsourcing marketplace, and I am about to launch a product that helps people document their business processes.