12 May 2004

As a writer and speaker on software development, I dish out a huge amount of general advice about our profession. Whether it's as specific as saying how a DecoratedCommand works, or as philosophical as how to think about your SoftwareDevelopmentAttitude, there's no end to the noise I make. Furthermore I'm only one of a large community of general advice givers: authors, analyst companies, journalists, there's more of it than anyone can read.

Despite the amount of general advice that gets uttered, there are significant limitations on its value.

  • There's always a big gap between a piece of general advice and how it applies in a particular circumstance (which is why consultants are teased for saying "it depends"). There's no way I can know all the particular issues and constraints in your project, so you have to take my half-baked comments and finish them off yourself by deciding how they apply to your circumstances. I tend to be very wary of anything that sounds like "always do this" and put a lot of effort into thinking around the factors that lead to one or other choice ("it depends" is a good answer if you then say what it depends on). But however good a job I do at describing the drivers between alternatives, it's always the reader who has to judge the weight of those factors in their circumstances.
  • Everyone who says anything, including me, is limited by their experience. And everyone's experience in software development is very limited. There's only so much you can do in one career, and its certainly not enough to speak with assured certainty - particularly when the industry changes so quickly. I mitigate this by pulling in a lot of expertise from my network of contacts, but it's still a small number in the overall scheme of things. (Increasingly I'm relying less on my own direct experience and more on information aggregated from my network. Partly this is because I do less real development these days, and partly because the network is a better source of information than just my limited experience.)
  • A lot of people question the motives of writers. One of the more amusing things I read about is people inventing convoluted ulterior motives for me advocating a certain viewpoint. There's nothing I can do about this, I may know that I try very hard not to let money influence what I say but it's not something I can prove. Like many others, I'm concerned about the awkward financial interactions that the analyst companies have with the vendors they write their reports on. Trying to stay unswayed by filthy lucre is subtle and requires concentration.

So with all these limitations, it's worth asking if there's any value to general advice? I think general advice is valuable because it provides a starting point for particular decision making. General advice raises issues that you have to consider in your particular case, reducing the chances that something will be left out because you didn't think of it. To uncover as many of those issues as you can, it's necessary to seek out as much general advice as you can absorb.

But it is those underlying issues that matter far more than my conclusion, which is why I see my value as explaining the drivers for a decision rather than handing out a final decision to follow. I prefer it if a reader understands the principles that led me to a conclusion, but acted differently to my conclusion, over a reader that followed my conclusion without understanding those principles.