As a Project/Program Manager during the growth stages of my subscription video startup--I often struggled with managing developers. I've fallen victim to many of these transgressions, often feeling a palatable sigh of exasperation during stand-up meetings. (Quick disclaimer--I've never done #2)
I've been that manager. Here are a few pitfalls to avoid when working with any developer team. Happy coders make for awesome code!
1) Avoid interrupting your developer teams:
Dude (I'm saying this to the earlier version of me)--there's a reason the developers wear headphones--it's to block out the distractions. And yeah, it looks cool, but they don't like their music any more that you like yours. They just need space. Here's a game changer to think about before you interrupt your developer team. Studies show that it takes approximately 25 minutes for developers to get re-focused after a coding interruption. So the next time you think about breaking their flow--consider that you're killing a half hour of production. Ouch!
2) Never ask a freelancer to work for free:
Never ask someone to use their hard-earned skills for free to make money for you. Like, never ever. And no, the opportunity for “exposure” or “portfolio additions” is often not worth the headache. Check out this facepalm-ending exchange from Clients from Hell.
3) Don’t expect your developer to work themselves to death to meet deadlines you also can’t meet:
If your project is dependent on images, copy, and resources that need to be created and sent to the developer, make sure those deliverables actually, you know, get to the developer on time. Otherwise, you’re looking at missed deadlines and it won’t be their fault. It’ll be yours. Check out a real world example of this in Jesie Castro’s Last Minute Luke entry on the TrackDuck blog.
4) Keep the meetings to a minimum:
When it comes to meetings. Have an agenda, have a goal and have a timer. If you can communicate via email--do it. According to Scrum.com, they have a suggested breakdown of what the monthly sprint should look like in an agile environment. Daily scrum meetings--15 minutes max. They also suggest the following.
- Sprint Planning - max 8 hours/mo.
- Sprint Review - max 4 hours/mo.
- Sprint Retrospective - max 3 hours/mo.
5) Stop adding to the Feature Creep:
It's alive and growing at a rapid pace! Stop adding more features into the software development queue. Take a myopic look at your feature set and take a clue from an old developer axiom called--the Unix philosophy. Simply stated, just do one thing really well. The Unix philosophy emphasizes building simple, short, clear, modular, and extensible code that can be easily maintained and re-purposed by developers other than its creators.
6) Your site has 99 problems and lack of back-ups and source control is 98 of them:
Does your site code live in 3-5 different places? Do you not remember where the most recent site back-up files are stored? French chefs use mise en place to make meal prep easy and orderly. Give the same courtesy to your developers. Make sure you’ve consolidated and centralized what code you have, and have reliable back-ups stored away just in case something goes awry. Just read this horror story by Dan Pratt on what happens when disorder leads to chaos.
7) Bad Code - Stop spreading the madness:
If you're handing over code from one developer to another, understand that each developer writes code in their own style. Have your original developer document, document, document. And abide by this mantra--"Always code as if the person who ends up maintaining your code is a violent psychopath who knows how to find you." Check out this story of a 9-page WordPress site that had over 900-thousand files on it due to a weird directory structure.
8) Time Trackers - Big Brother is not welcome here:
Tick Tock, Tick Tock. Asking your Dev Teams to track their time on various projects could cause an outcry for revolution from the tyranny of Big Bother. So skip the Orwellian developer landscape, stop lurking over their shoulders and break this coding flow killer.
But if you have to initiate time tracking, beware of these perils.
What are some of your best Dev Horror stories? We'd love to hear them in the comments below.