Everybody involved on a project needs to act responsibly. I often refer to this as Project Hygiene. It is something every team member has to practice to bring a project successfully to an end.
The Dirty Project. What Happens When You Don’t Apply Project Hygiene
Your project is half way there. Suddenly you get this awkward feeling something is not quite right. Oh yeah. There’s this piece of code in the project that isn’t quite as it should be. It contains some workaround which isn’t really best practice. But what the hack. The thing works and it’s not causing any problems at this moment. Nobody will notice you guess? Chances are it will cause problems in the future. But then again, maybe you’re not on the project team anymore by then. You leave it this way, and go on gold plating this funky little animation you really like tweaking.
One week before go live. The project is totally screwed up. The piece of code you wrote made the whole thing crash when integrating the most important feature. The excrements hit the ventilator. Damn. This means working nights and weekends, hacking yourselves through this problem. You’ll probably have to rebuild it completely from scratch in way too less time. Chances are that you won’t even get the thing live on time. This is trouble. Probably you’ll loose the next job for this client because of this mess. Aaaargh. You hate your job.
Clean Hands. Project Hygiene Applied
There’s also another way. Project Hygiene is about doing things the way you would like someone else in your team doing them. It’s about best practices (checking in code, documenting things,…) but also about respecting the rules you established with yourself and your team (like keeping a directory on a server clean). Most importantly, it’s about doing things in a responsible way.
As soon as you hear that little voice in your head say “mmm. this could potentially turn into a problem someday” you have two options. Do as mentioned before and ignore it, or act.
Not doing this means trouble. Ignoring a small problem turns it into a big problem.
How you should act depends on the situation, but communication is key in most cases. Talk about it to your colleagues, your team, your peers,… Bring it out in the open.
Talking about it is already half of the solution most of the time. When you start talking about it, you’re forced to define the problem. To quote Einstein:
“If I had an hour to solve a problem I’d spend 55 minutes thinking about the problem and 5 minutes thinking about solutions.”
It’s the same phenomenon as rubber duck debugging, where a developer debugs code line by line explaining it to a rubber duck, hitting upon the solution in the process of explaining the code.
Teamwork Is an Individual Skill
Project Hygiene isn’t important for developers only. It applies to everyone on the team, including account managers, producers, business owners, … It is very much aligned with Christopher Avery’s work on responsibility (check his book Teamwork Is an Individual Skill or his Leadership Gift programme).
It’s also a lot about intuition and experience. The more projects you have done, the better you’ll be able to develop a sixth sense for potential issues and problems. But don’t be afraid to use this sixth sense. As soon as you smell that something is not as it should be, bring it out into the open, before the small problem starts to rot and turns into something really smelly.
Further reading: The Leadership Gift and a Dutch Soccer Team
photo by Ryk Neethling – http://www.flickr.com/photos/rykneethling/4507765828/