Effective problem-solving leaders know how to organize the environment so that all eyes are operating at full power. — Jerry Weinberg, Becoming a Technical Leader
How does a technical leader act in a company with empowered teams? This blog post is part of a series that tries to answer that question. I believe all leaders must attend to five fundamental duties: demonstrate character, clarify direction, solve problems, increase motivation and develop people. Read on to learn how a leader moves things forward by attending to his third duty: solving problems by harnessing the collective wisdom. If I had to describe what we do in IT in three words it would probably be creative problem solving. “We are behind schedule. What do we do?”, “The client isn’t returning our calls. What do we do?”, “The architecture we chose does not scale. What do we do?” Leaders puzzle over this type of questions from the moment they step into the shower every morning. Most of us have this idea of the leader as a hero — flying from above and rescuing the damsel in distress. Instead, I propose that leaders should always solve problems with the help of their teams. Effective leaders understand the problem, help the team generate ideas and enable collaboration in working on the issue. Outstanding leaders also challenge the status quo — they create a new environment in which the problem isn’t likely to happen again.
Understand the Problem
There are many pitfalls if you jump to the solution before really understanding the problem. As we started conquering the space in the 70s, NASA astronauts were facing a problem: they couldn’t use ordinary pens, as pens need gravity in order to function. So NASA commissioned a contractor to build them zero-gravity pens, for an estimated cost of a few million dollars. On the other side of the planet, the Russians, facing similar challenges in their efforts, just handed their astronauts ordinary pencils*. In another example, I remember a planning meeting where the team was discussing a feature requested by a client: see a list of all database triggers and have the option of disabling them. After spending about 20 minutes discussing this feature, one person asked: “But why is the client asking for this?”. Nobody had an answer. At that moment it was clear to us that we didn’t know what we were solving. To really understand a problem, everybody has thier own favorite tools. Here are some of my favorites:
- Personas, interviews and observational studies help you get more context about the user.
- Impact maps force you to think about the desired outcome.
- Five whys or cause/effect diagrams analyze a problem in the context of a larger system.
- Data that you’ve gathered about the problem make sure you’re not just relying on opinion.
- Switch modes from analytic to synthetic and tell a story about the problem.
* This is just a parable, not an actual story, but I think the points it makes still stands.
After you’ve really understood the problem to be solved, it’s time to engage in idea generation. The worst choice you can make, like the NASA managers, is to settle for the first solution that comes to mind. With the teams that I work with, whenever we have a problem to solve, I’m using Jerry Weinberg’s rule of three (paraphrased): “If we haven’t thought of at least three options, we haven’t thought it through”. Brainstorming is the common choice: generate raw ideas, criticize them, filter and select. One tip: if you’ve got introvert or shy people on your team, you might want to do the first step (generating suggestions) individually for 5′. The suggestions can then be presented in a group discussion. To unleash creativity, you could borrow some tools from the design thinking community.
When we think of innovation, we probably have Archimedes in our mind. Sitting alone in his bathtub and meditating when all of a sudden inspiration strikes: “Eureka!” But according to Steven Johnson, the best ideas are actually built iteratively, with one person building on the train of thoughts of another one. Renaissance was so fruitful partly because it coincided with the opening of the first coffeehouses, which allowed forward-thinkers to come together and share their ideas. Even though you probably don’t want your paintings to be drawn by a committee, it makes a lot of sense to engage the entire team when solving complex technological problems. Agile methods like Scrum heavily emphasize face to face conversations over proxies like documents and emails: communication within the development team and between the team and the business representatives. A true leader will always involve in problem solving those who have knowledge about the problem and those who would like to learn more about it.
Challenge the Status Quo
Toyota employees propose 1,000,000 process improvements each year. Amazingly, 90% of them actually get implemented. What are your numbers? Unfortunately, the more common behavior I see in my consulting work is people trying to stick with their present process and mindset. If only I had a dollar for every time I heard “That will never work here” or “But we’ve always done it this way”. Good leaders are innovators who know the famous aphorism: “Insanity: doing the same thing over and over again and expecting different results”. As such, they are always on the lookout for improvements that can increase their teams’ effectiveness. They are probably among the first who switched from procedural to object-oriented languages, from relational to NoSQL databases and are now wondering whether to switch from Objective-C to Swift for iOS development. For illustration, here are some changes worth considering:
- Manage teams instead of individuals
- Adopt test-driven development
- Validate your assumptions using MVPs (minimum viable products)
- Stop referring to your staff as “resources”
- Allow everyone 4 hours a week to work on a pet project
- Use Node.js for processing on the server
*** In dealing with the never-ending flood of problems they are faced with every day, leaders have to remember that it’s not their job to solve problems for the team, but with the team. To maximize results, they engage everyone in the process of problem solving and they make sure to spend enough time on clarifying the problem and generating multiple solutions. Every now and then, they take a step back and critically look at the way things are being done, with the intent of finding the next change that will unleash higher productivity. Read the other blog posts in the series:
- 5 Duties of a Technical Leader: Demonstrate Character
- 5 Duties of a Technical Leader: Clarify Direction
Image credit: https://flic.kr/p/c4QJzC