The Agile Architect
Agile Orthodontics and the Art of Brainstorming
We know software can be agile. Can teeth be agile too? Our Agile Architect shows how practicing brainstorming can be an important way to find novel solutions to tough problems.
We had a problem. For nearly a year, we had been building the most secure file sharing solution on the planet. It was awesome. It was unbreakable. It was unique. And it had no name.
For as long as we had been writing the software, we'd been trying to come up with a compelling name that described the unique capabilities of our product. Unfortunately, every time we thought we got just the right name, a copyright search would dash our hopes. Now time was running out. We were premiering our product at a show and the date was only a month away. We needed time to get our promotional material ready. After multiple months of searching, we were down to only a few days.
Rather than settling for some boring name that no one was excited about, we decided it was time to go full speed ahead. We gathered about 15 of our most creative employees in a large room with lots of whiteboards. We explained the situation and demonstrated the software. Then we challenged the group. We were going to give ourselves one hour to generate as many names as we possibly could on the whiteboards. We were not going to discuss the merits of the names but we could look at what other people were writing and riff off of them.
The hour went by quickly and by the end, we had filled every inch of whiteboard with suggestions, serious, silly and off-the-wall. Major themes had emerged playing off notions of encryption (EncryptKeep), file sharing (FileVault), privacy (Sequestr) and more. In one of my sillier moments I suggested DecryptKeeper as an homage to the host of the 1950's horror comic book Tales From the Crypt. This is only a sampling of the hundreds of names we generated. (See figures below for more),
From all of these widely varying choices, we chose a handful to work with further. A few more discussions and copyright searches and we had our name: Krypdox!
Read any book on collaboration, decision-making, negotiation or improvement and they will talk about the need for effective brainstorming. As in the story above, brainstorming allows individuals to break out of their myopic and tunnel-visioned misconceptions to explore creative alternatives.
In agile, brainstorming happens everywhere. Some examples are:
- In retrospectives, when the team is trying to find ways to improve. This can be especially hard for a mature agile team that already is doing things well.
- While pair programming, the developers are looking for the simple solution that they can agree on to pursue.
- While determining testing strategies for a story, feature, or release
- While finding ways to break up features into small stories and acceptance criteria
- When trying to find a novel way to resolve conflicts
Basically, any time you are working on a problem, brainstorming can help.
Brainstorming is relatively simple, but it takes practice and courage. In order to have an effective brainstorming session, you must create an environment where everyone feels safe to throw out ideas that may, on the face of it, seem silly. In fact, its usually the silly ideas that are the most productive.
---Start Extra Special Bonus Story Insert---
I do a lot of volunteer work with the Boy Scouts. When I was serving as Scoutmaster, the boy leaders in our troop were planning the next campout. They were rehashing the same ideas for activities that we seem to do all the time. So I challenged them. I asked them to start brainstorming new ideas. As young men are prone to do, the ideas got sillier and more extreme as they continued. Finally, one of the Scouts said "Let's take a rocket to the moon" Everyone laughed but I wouldn't let them dismiss it. I asked how we could do it. After a little coaxing, the ideas started flying. And it was one of our best campouts. We spent the day on pioneering activities building a large rocket ship out of spars and rope. That night, for our campfire, we lit the rocket! And it would never have happened without some very creative brainstorming
---End of Extra Special Bonus Story Insert---
Having a facilitator can be helpful. Just like with a retrospective, the facilitator is there to make sure the rules of brainstorming are followed. They are:
- No idea is too silly
- There are no stupid ideas
- No one is allowed to comment on the worthiness of an idea until the brainstorming session is over
- Be creative
- Don't sensor yourself - in other words, if the idea comes to you, say it even if you aren't sure its good
By brainstorming, the group generates a creative momentum that builds on itself. An idea from one person triggers an idea from someone else. Pretty soon, ideas are freely flowing.
After the brainstorming session is over, you can start grooming the ideas and pull out promising candidates for further discussion and refinement.
Brainstorming sessions don't have to be formal. They can happen at any time. In a team discussion, I will often start throwing out half-baked ideas just because I know it will shake things up and possibly trigger new thoughts by my colleagues. This can lead to a productive impromptu brainstorming session.
In fact, brainstorming takes practice. The more you do it, the less self-conscious you become, the more courage you have to offer creative, bold, bizarre ideas, and the more fun the entire exercise becomes. Think of brainstorming as a game. It's not about finding the one "right" idea -- it's about generating as many different ideas as possible.
Brainstorming in Your Head
In addition to brainstorming in a group, you can practice personal brainstorming. I do this all the time in meetings, especially if I'm bored in someone else's meeting. I will start thinking up all the creative and different ways I can solve the problem at hand.
One of the games I play when someone tells me that a given problem is impossible to solve, or that there is only one way to solve it, is to say "I bet I can come up with three different ways to solve this problem." This triggers the adrenaline rush that allows me to move past my own inhibitions and have the courage to start rattling off a bunch of ideas that, on the face of it, may or may not make sense. In the end, it doesn't matter if they all make sense. We just need one.
Agile Orthodontics: An Exercise in Brainstorming
At this point, you are probably wondering what brainstorming has to do with orthodontics, as mentioned in the article title. In fact, the inspiration for this column came from an impromptu brainstorming session about one of my coworker's daughter's braces. (As seen in the photo below!)
He was telling our team about how she is getting braces even though she still has baby teeth. Her problem is that there is not enough space between her current teeth for all of the adult teeth to grow into. By using braces when she is young to spread her teeth apart, it allows the new teeth to come in straight and thus avoid the need to straighten her teeth with braces when she is older.
I made a joke about how they were refactoring her teeth. This led to a long string of jokes (most of them bad) as we tried to make analogies between teeth and agile. (e.g. Each visit was a story. The up-front cost estimates were the story points. Follow up visits were retrospectives. The adult teeth represented the next feature, necessitating the refactor. It just got worse from there.) And, of course, we coined the term Agile Orthodontics. At that point, I knew it had to be the title of my next column. But what could the topic be? A little personal brainstorming and I had my answer. And now, so do you.
Brainstorming is an important tool in the agile toolbox. Like any tool, to be used properly, it takes practice. So here's your brainstorming homework. How many other topics can you think of that I could have written about with the title "Agile Orthodontics"?
Dr. Mark Balbes serves as Vice President, Architecture at WWT Asynchrony Labs, and leads multiple Agile projects for Government and Fortune 500 companies. He received his Ph.D. in Nuclear Physics from Duke University in 1992, then continued his research in nuclear astrophysics at Ohio State University. Dr. Balbes has worked in the industrial sector since 1995 applying his scientific expertise to the disciplines of software development. He has led teams as small as a few software developers to as large as a multi-national Engineering department with development centers in the U.S., Canada, and India. Whether serving as product manager, chief scientist, or chief architect, he provides both technical and thought leadership around Agile development, Agile architecture, and Agile project management principles.