No silver bullet (and no silver resource too)

November 3, 2015 | by Marcos Hernandez

In App development, Microsoft, book analysis

Back in 1986, Fred Brooks, an American computer scientist, wrote a paper talking about the principles of an agile software development. This paper is called No Silver Bullet: Essence and Accidents of Software Engineering, and after 29 years it is still very valuable.

My interpretation of Fred Brooks’ paper

Brooks begins the paper by comparing a software development project with a werewolf. The project starts small, looking innocent, easy to perform and harmless. But, it turns into a monster when issues begin to pop up; when budget expectations are not reached and due dates are not met.

Brooks then asks the logical next question: what could defeat a werewolf but a silver bullet?  We all long and look for that miracle bullet to solve all the problems that could happen during software development, but in the real world, there is no actual “silver bullet” formula for software development. Problem-solving depends on many circumstances.

Brooks defines some concepts related to software development to help people see that software development is hard and requires a good amount of effort.  He also divides the problems facing software engineering into two categories:

  • Essence: problems being inherent to the nature of software. He lists the essential difficulties as complexity, conformity, changeability, and invisibility.
  • Accidents: these refer to the difficulties related to the production of software like writing the code and testing it.

There is not a real silver bullet formula just effective results

People use to think that different techniques and tools could solve the problems during software development.  Brooks argues, however that introducing these techniques to a project, will solve some problems while introducing others.

The author goes delves deep into building this theory. After reading it, I came with a new concept and interpretation of what Fred Brooks shows us in this paper: The Silver Resource. This refers to that team member who is substantial to the project and a key part of the team.  He or she is the person that the team relies the most on.  Similar to the silver bullet, however, the Silver Resource is not the savior and does not have all the answers.  Let me explain a bit more.

To understand more about The Silver Resource, it is important to revisit the list of essential difficulties Brooks mentions in this paper.

Let’s start with complexity. We know that software entities are extremely complex, and this often brings problems to the project and amongst the team members. The Silver Resource is that person capable of keeping a good team communication when things get complicated, keeps up with the schedule despite of the problems, prepares the team for unexpected situations and, no matter the level of complexity, always keeps a clear project overview.

The next difficulty in software development according to Brooks is changeability. Unlike physical products, software is constantly changing and updating. A Silver Resource can perfectly handle the pressure of change and guides the team to obtain perfect results.

A Silver Resource understands that there are arbitrary complexities from interfaces and there are no unifying principles in software development. This is the issue that Brooks calls conformity.  A Silver Resource understands that software must conform to real-world constraints like pre-existing hardware, third party components, government regulations, legacy data formats, and so on.

The last difficulty is Invisibility, and I like to compare it with a toilet (I know it’s kind of funny).  You physically see your toilet every day and you can tell when it is working, but you don’t see what’s happening behind the scenes in the pipes. Despite that, the Silver Resource is capable of designing graphical displays of software that convey meaning to developers. Invisibility is not a limitation for the Silver Resource.

It is worth mentioning that there could be more than one Silver Resource in a software team, and that those Silver Resources prepare the rest of the team to take action when they are not there to assist them. Silver Resources are the team leaders, but not the problem solvers. The problems are solved by that solid team that the Silver Resource has created.

So, tell me, do you consider yourself a Silver Resource?

Do you have a business project? Please click here or contact us: