More than 20 years ago Fred Brooks published a seminal essay on the nature of software, called “No Silver Bullet: Essence and Accidents of Software Engineering”. If you’ve never read it I’d highly encourage it, as even though it’s ancient by the standards of our industry, it’s still amazingly relevant and gets to the heart of why creating great software is so hard.
I thought of this article again recently, as one thing that truly frustrates me is that there are always people out there in software arguing that their favorite technique is essentially a silver bullet, and all you need for great results is to follow their favorite practice. Reminds me of the old saying that if the only tool you have is a hammer, then every problem looks like a nail.
For some reason, the software process world has always seemed to attract more than its share of these zealots. I hope I never become one of those people.
I am a big fan of Scrum and aggressively advocate its use, but sadly there are many core problems it simply doesn’t address.
Similarly, I’m a huge fan of web analytics and split testing to optimize products, yet there are critical insights about your users you’ll never learn if this is your only technique.
I also love to use the combination of high-fidelity prototypes and user testing, yet I would never argue that this is all you need to do.
Same with personas, contextual inquiries, product principles, charter customer programs, and dozens of other valuable techniques.
Instead I believe that a strong product leader needs to be armed with a range of tools and techniques to be employed where appropriate.
I’m sorry if this sounds harder than just learning a single tool or technique, but not only will you create better products, but you’ll find that you are better equipped to deal with whatever product challenges you’re faced with.