Good to Great (rules to live by)
What makes a great developer ? Outside of obligatory technical and problem solving skills which go without saying, the differentiator between good developers and great developers I think simply boils down to understanding, empathy and respect for your client. Having a cross functional developer that can write code and talk to a client in plain english is an amazingly huge (and seemingly rare) asset to any team or studio. As the world slowly moves away from waterfall development I think this is going to be increasingly important.
I’ve worked with the uber algorithm generator russion rocket scientists, the fresh out of university bumbling junior guy, the know it all with an ego the size of africa, the one that wants to debate every minute detail until they forgot why they were debating it, the one that will fight to the death to not change the feature they just implemented.
Every time the one developer that’s stood out, and had clients want to work with them, were those that sat down and understood the business problem at hand and were empathetic to their clients needs. If you spend those hours/days up front and actually listen to your client. Put yourselves in their shoes, and understand how they do business and want to do it better. You are going to go a lot further than those who tell the customer how to do business. Here’s my rules to live by:
1. Mr/Ms Pleasant. It doesn’t matter what business you are dealing with, people unless they like being antagonised, will actively avoid dealing with an unpleasant person. I have a bike store by my house, it’s got everything, it’s convenient, but if I have to deal with the mechanic once more…. so I use the bike store close to work. Inconvenient, pain in the proverbial, the kids are way less experienced but I’d much rather deal with an 18yr old kid who’s eager to please, than the 40 yr arrogant sod who has no time of day for you (I have no time of day giving him my hard earned cash). I’m sure we’ve all had those experiences no ? Now multiply that $50 purchase in the bike store a good 200-2000 times into a big scale web project. Who’s the customer going to pick, Mr/Ms Pleasant or Mr/Ms Arrogant.
2. Mr/Ms Understanding. Understand the business problem at hand, and make an effort to understand the wider context of the business. Don’t try and get the full story in the nth degree on the first meeting - you’ll be there for days, however everytime you meet again, always try to get a bit more business knowledge in the wider context of the business. The more domain knowledge you have about the customer’s business the easier it makes your job, the more valuable you become.
3. Mr/Ms Talker. Talk with your customer…. just because you and everyone around you uses email for everything, it’s not necessarily a good thing. You get so much more out of talking and more importantly listening than you ever will on email - the hesitant pauses (.. maybe not a good idea to work on this functionality, they’re unsure), the excited yes please (.. get it delivered straight away they want it!). I tend to talk or meet face to face, then follow up with an email restating the items to be actioned, priorities etc. Everytime I’ve relied solely on email it’s been a disaster. And with any important business dealings (ie you get the contract, you’ve been paid, major milestone etc). Talk on the phone then follow up with an email - it shows respect.
4. Mr/Ms Restater. As part of number 3, to show your understanding of a problem, always restate it, multiple times if need be. It’s like learning your ABC’s. It a) shows you know and understand it, b) gives the customer a chance to rethink it through, see if it makes sense. Use role play “Okay, so I’m your business store owner, at the start of the day I go to my computer, fire up the browser, go to… I’m the region manager, at the end of the day I do..”. You’ve got to have personal confidence of knowing the problem and your customer has to feel happy you can go away and put together a solution. Nothing’s worse than giving a task to someone who has that semi nervous ‘yeah.. sure, okay, i’ll be back in touch’. I rarely need to refer to notes as I make an effort to understand the problem.
5. Mr/Ms Light. Don’t go dark. No matter what.. don’t go dark. It’s the standing joke of feeding the pizza under the door and waiting for something to come out the other end (and waiting.. and waiting). The customer gets worried, you go off on a tangent it all turns to custard. Keep in touch. Even if it’s just an email ‘Just to touch base I’m working on aspect x. I expect to have it sorted in 3 days, I’ll send you a screenshot then’. It also keeps you top of their mind, and them top of your mind.
6. Mr/Ms Nicely No. Say no carefully. If something’s a bad idea, no with a smile and say why you’re saying no. Remember Mr/Ms Pleasant ? … The customer is paying the bills so be careful with this one. The customer is always right can be rephrased as: The customer is nearly always right in terms of what they want to acheive - but doesn’t have experience in execution so often need to be guided.
7. Mr/Ms Goal Oriented Understand the stated goals and objectives. Extract these from the client before you run down the path of looking at the functional elements of your task. If you don’t know what you’re trying to acheive how can you write the steps to get there ? The customer often will express what they want by how they want to acheive it e.g. “add this button here, make it go to this page, then ask the user for this” vs “We want the user to give us their address information before entering the site”
8. Mr/Ms Humble Know when you’re wrong, face up admit it and move forward. Unless you’re facing a law suit then talk to your lawer don’t listen to me! It seems obvious but it’s the hardest thing to do, especially the later in the game it gets.
Finally…
Remember you’re an expert in your field, they’re an expert in theirs. Respect, understanding and an empathetic relationship will take you a lot further with your dealings, and will help to garner you more business and referrals. The cool toys like Flex, Rails, Ajax, etc all just help you along the way.
Be the dude/dudette that either a client, or a project manager says “This person is fantastic, you should work with them”
4 Comments, Comment or Ping
Michael
Great article Rowan… and not limited to just developers either. I think this sort of approach to dealing with clients should be one adopted to any service oriented profession.
May 31st, 2007
admin
cheers mate… and just for you I’ve jazzed it up a bit. the blog is getting a bit of nerd applied to it along with some banging orange!
May 31st, 2007
Reply to “Good to Great (rules to live by)”