|Image via Wikipedia|
This article will focus on why you need detailed project plans and how to develop them effectively using a simple yet surprisingly successful communication tool. A disclaimer up front: this article will discuss this in terms of technical projects like application development, but it is applicable to all types of projects like fund-launches, barbeques, bah-mitzvahs, or whatever goal you seek to achieve.
WHY DO I CARE?
I bet you have a routine. One you follow every day. Get up, brush your teeth, pack your lunch, grab your cell phone off the charger, kiss the spouse good-bye, etc. Now how often do you arrive at work and realize you missed something? "Shoot... I forgot my socks again". Well that may be extreme, but you get the point.
And I am sure it doesn't happen every day. But, maybe once every few months? Keep in mind this is your routine 5 days a week 48 weeks a year (I know YOU don't take vacations, but others do.). So now imagine what might happen if you are trying to remember all the steps you need to deploy your application into production. You do this maybe once every 3 months...6 months? What are the odds you might forget some critical step? Maybe slightly higher than forgetting some part of your daily routine?
What is the consequence of forgetting to restart one of the web application servers after the release? Well I suspect your boss would be far angrier than he would be looking at your bare, hairy ankles.
Bottom line is people forget things, even routine stuff. And the risk that someone overlooks a step that is crucial but unique to some project is high likelihood and high impact. When that happens you need look no further than the closest mirror to place the blame. Lord knows your boss has all your numbers on speed dial and will use them when he finds out customers are occasionally getting "Server Down" messages.
There is another type of problem lurking in the dark. You may remember your routine, but because Joe doesn't know what you plan to do, he may not realize he has a role to play. Example. You are going to update the database tables during deployment. Well the DBA doesn't know this, so that Friday night he will be bowling. When, in reality, he should be at home executing and verifying a full backup of the database.
WHAT DO I DO TO AVOID THIS?
The question remains how do you avoid taking the blame for someone else's brain spasm. Well I like to fall back to a simple but highly effective approach to help the whole team out. It is called Mind Mapping. Don't think Vulcan Mind Meld... think more whiteboards and those delightfully scented markers. These work best because the fumes free the mind, but online collaboration software will do the trick too.
I assure you, no matter what media you choose, this tool alone will allow you to substantially reduce the number of "oopsies". It also avoids "gotchas" and totally eliminates the "who'd a thunk its".
What is a Mind Map? It is a simple diagramming method that focuses the team on a single topic. Mind you (no pun intended) that "The Project" is not a topic. That is too large. But, depending on the size of your initiative "Deployment" might be a topic. Or for larger projects "The Database" might be a topic. There is some judgment to be used here but you'll do fine.
The basics are as follows:
- You get the relevant parties together and have them focus on "the topic"
- Each person calls out ideas or tasks related to "the topic"
- For each task or idea called out the team is asked to consider that task and call out items related to that task, etc until the ideas are exhausted
- Again, this is the basic idea. You can do more with these and I am sure there are variations on the theme. But you get the idea.
WHY DOES THIS WORK?
That is simple enough. It opens communication channels, and makes the team talk things out and play off of each other. "Oh hey, you are going to update tables in the database? Whew, good to know. I will skip bowling and backup the database." Wow. 10 seconds of talk just avoided a huge risk.
The fact is, no matter how many times you do something, no matter how much of an expert you are, you cannot remember everything every time. It just isn't human.
And you certainly cannot know every aspect of the impacts you have on other team members. That is why communication tools are some important. I have worked with amazing developers who are so confident of what they do that they think other experts are unnecessary. And they might never think to have the database backed up because they were sure their updates would be flawless.
People aren't perfect. We forget our socks. We don't think that Joe would want to skip bowling to backup a database. Unfair as it may seem your job is to ensure that we all remember our socks and ensure that Joe misses bowling occasionally. Mind Maps are a simple, effective tool to do that.