Fredrick Brooks’ 1986 essay, “No Silver Bullet”, predicted that “no single software engineering development would produce an order-of-magnitude improvement to programming productivity within 10 years”.
In my day to day work, I see people regularly trying to challenge the idea of no silver bullet. These challenges come in many forms, but the one I see most often is the idea that there is some tool that can magically eliminate the need for adopting best practices in software development and delivery. One day, it may be the argument that a deployment tool removes the need to follow best practices for source control or build management. Another day, show me what this looks like rather than work with me so that I can adopt the practice too.
I have recently worked with clients that had no source management, no automated build process, no automated tests and no configuration management who wanted recommendations on an automated deployment tool because they were sure that would solve all their deployment issues. This client needed to define several processes and bring some other tooling into the environment before they concerned themselves with trying to automate their deployments.
The real message is that there are no shortcuts on the path to best practices and continuous improvement. Best practices require practice!
If you want to become a better developer, you cannot just read a book on development best practices; you have to get your hands on the keyboard and use what you learned to develop better software.
When you want to adopt a DevOps model, you have to implement best practices relating to source control, build management and test management, practices that are fundamental to continuous integration. These practices must be in place before we attempt to solve continuous delivery problems of which deployment is but one element. We also need to look at our release management and monitoring processes. Sometimes a tool selection can help define a process, after all, we have to implement the method using patterns specified by the tool. Some of the process definition serves as an input to tool selection. We must know what we wish to achieve with a tool so that any tool selected meets our needs.
While the context of Frederick Brooks’ was narrow in scope, it has broader implications throughout the IT profession. “No Silver Bullet” isn’t the only phrase that looks at those implications, “There’s no such thing as a free lunch” is another. What it comes down to is this, continuous improvement whether applied to the culture of an IT organization or the professionalism of takes work.
In my experience, there are best practices that bring us as close to the silver bullet as we can hope to achieve. These include integration of our IT delivery, removing all the silos that impede delivery and automating anything that is a viable candidate for automation. The previous is by no means an exhaustive list of practices we must bring to organizational transformation, but it is a good starting point.
Please remember that no tool is going to solve all your problems and that tool selection should never come before addressing the organization’s most significant cultural or process shortcomings.
About Matthew Elmore
Matthew Elmore, with 20+ years of experience in development of distributed systems, joined Sogeti Des Moines in June 2013 as a Manager Consultant specializing in Java technologies with a focus on Web Service Architecture and Design.
More on Matthew Elmore.