Dominik Berner

C++ Coder, Agilist, Rock Climber


Project maintained by bernedom

The "James Bond Package"

The

Due to his combination of skills, motivation and initiative James Bond is the perfect agile problem solver. Agile working requires empowerment of teams and individuals, self-organizing and a different mentality than classical command-and-control structures. This is not just the case for the leaders but also for the people actually solving the problems and delivering the products. To perform in such an environment it helps if each and everyone of us shares a bit of what I like to call the “James Bond Package”.

007: an agile problem solver

In his role as a secret agent, James Bond is a problem solver for the British Secret Service. In fact in “License to kill” 007 explicitly states that he is a problem solver, or rather a “problem eliminator” in that particular case. It’s a cheesy line, typical of what James Bond would say, but on a closer look this hits very close to the mark. Most Bond movies follow the same pattern: Bond is called to London to get briefed over the newest crisis. He then travels around the world to gather more information and possibly charm a few women or beat up a few baddies until he reveals the evil plot of the master villain, which he then promptly disposes of. Problem solved, crisis averted.

I'm more of a problem eliminator

This approach resembles the agile approach in software engineering very closely. Most of the time James Bond has a quite clear mission statement, but the execution of how this mission is fulfilled is entirely left to him. Replace “mission statement” with “product vision” and “James Bond” with cross-functional, empowered team we’re very close to the setup of agile teams.

Like in software development James Bond usually only has a fragment of the full scope of his mission at the beginning of the movie and he uncovers more and more information that defines the execution of his plan as he goes along. Details of his mission might change, but the desired outcome of his mission remains quite static. Uncovering of more details of the evil plot also forces James Bond to frequently adapt his tactics to new situations, something the famous spy is an expert on. He might plan to charge into the villains mountain-resort with his gun drawn, only to find out that his charming attitude and social skills might be the better alternative here. The same works in software engineering, where products are getting more defined as people start working on them and iteratively adapt technologies and solutions to deliver.

James Bond modus operandi is very similar to how an agile team operates, as he works with a certain empowerment given from his bosses. 007 does not need to call his boss M to ask permission to fly around the world to sneak into the villains lair. He just does it and gets the necessary backing from his superiors, as it is assumed he is in the best position to judge what course of action is needed. There are a few mission constraints, such as not making the whole affair public and acting in Great Britain’s interest, but within these boundaries James Bond retains the full authority over how his mission is executed.

All this sounds very much familiar to how we want our agile teams to solve the problems we face during product development.

The James Bond Package

The typical “James Bond Package” for software engineers is this

  • Well trained and educated
  • Motivated
  • Works autonomous
  • A creative problem solver
  • Self-reliant
  • Well connected in the clandestine world
  • Loyal

If this sounds familiar, this is no coincidence, as this reads almost like a generic job advertisement for a software engineering position. James Bond as an expert problem solver brings possesses all of these (and many more) traits. Obviously, James Bond is highly skilled and well trained. From flying fighter jets, over fencing to socializing over a high-stake round of poker - James Bond can do it. One could see him as a subject matter expert on clandestine work. A good skill-set of very well defined skills is what makes the core of modern software developers as well. Most job advertisements start with listing the required technologies and level of expertise needed to fill out a certain job. (We might want to be a bit more specific with the skills needed for the job and swap the “clandestine world” with “technical communities” in the list above.) But even James Bond was not just born with these skills, he received a good education in a private school and further training by the British Navy as a starting point. When he entered the secret service he got some more training and this training still goes on even after years of service. The James Bond of the 60ies probably would be utterly confused with modern computers, if he had not been trained on the newest technology. In the world of software development where technologies change fast, continuous training is a necessity and even on a grander scale the agile mindset proclaims continuous and relentless improvement, not just of the processes and frameworks used but also on an individual level.

It is never quite revealed why James Bond is so highly motivated to do his job and why he - as a descendant of Scottish heritage - is so fiercely loyal to Great Britain. Nevertheless this is a crucial factor in helping James Bond to top performance as it helps him to go out of the was of ordinary people to solve the problem. Without motivation and loyalty it is doubtful that he would put his life in danger for his mission. James Bond identifies very much with the goals of MI-6 which is to protect Great Britain and the world in general, and having a meaningful goal is proven to increase intrinsic motivation. While we do not expect our engineers to put their life at stake for our projects we would nevertheless have them motivated towards our goal and not just following orders because they have to. As the problems in software engineering often are complicated bordering on the complex we need people to be motivated to go that extra step and keep going when searching for solutions despite failing the first time or the problem being difficult to resolve. Having a goal, with which people can identify helps tremendously in when building up motivations.

I stop when I'm done

Apart from being motivated to solve a problem or complete a mission, James Bond displays autonomy and high initiative. James Bond repeatedly completes his missions without asking for permission or guidance for his action, but just doing it and knowing that this is OK. Such a behavior is implicitly encouraged when tell teams to empower themselves, which is one of the cornerstone of lean and agile environments. When circumstances and constraints might change fast people need to be able to decide and act with speed. Asking for permission of our bosses - or even worse across several hierarchical layers - is a sure way to slow us down. Imagine if James Bond would phone M every time he has to do a hard decision in the field, the villains probably would run circles around him and M probably would drown in phone calls of 00-agents from around the world. Like James Bond, developers need to be given the confidence to make decisions locally and stick up for them. Having the skills to implement said decisions of course is a necessary precondition to this.

Though James Bond is self-reliant and perfectly capable of beating up villains on his own, he sometimes seeks help from others. Interestingly these are usually people from outside of MI-6 such as Felix Leitner from the CIA or some shady Russian ex-KGB-gangsters. Sometimes it is even a former henchman of his adversaries that help him out of a tight situation or supply the critical piece of information. Being well connected helps tremendously in many aspects, sometimes just being able to know that someone knows the situation you are in helps already with solving it.

The James Bond Package in reality

As appealing as the James Bond package is, can we transfer it from Hollywood to reality? Though it is unrealistic that we are able to hire or even build up a single James Bond we can substitute him with cross-functional, empowered teams. Not every single team member has to be an expert in all the problem-solving skills needed to save the world if they work together. By having people with complementing and overlapping skill-sets we can get very close to what James Bond can do. However there are some key attributes such as motivation and a sense for autonomy which should be shared with all team members and this is probably the hardest part, but by coaching and enabling people even this can be achieved with a bit of time.


This article is the first part of a series of articles regarding my talk double-o-agile (PDF slides)

Thumbnail image source: https://wallpapercave.com/w/nn6fDQN

Written on September 11, 2018