Putting Code Together Since 1987

If You Want to Hire a Professional, Act Like One

In Business, Web Development on October 4, 2008 at 9:36 am

Now, this may seem a little bit of a testy post.  But ultimately I want to help.  The post’s being written because I was thinking back to the past couple of years, and the range of clients and potential clients I’ve met.  It’s also based on what I’ve seen in forums, on websites, and in other events.

To be honest, most of our potential and true clients are great.  True pros who value what we do, and trust us to do it well.  But there have been a few who tried our patience.

So here’s ten simple rules of how to work with web designers, developers and other IT professionals.  Most of it boils down to the headline.  Be professional yourself and reap the rewards.

1. Don’t Call Us Geeks

No really.  Don’t.

I can call me a geek.  I can call a geek a geek.  But just like I can’t call a black dude n**ger even if he uses the word himself, you can’t call me a geek.  It suggests a lack of respect.

And don’t even think of calling us nerds.  That might just add 50% to your quote.  Or at its worst, cause an undesired tension in your working relationship which is far worse than paying a bit more.

2. Remember that it’s Complex and Fragile Stuff

Writing code is hard.  No two ways about it.  Writing a lot of code that interacts with other code is even harder.  That means that building a sophisticated website, that looks right in every browser, is hard.  Writing one that you can install on varying versions of PHP, mySQL and Apache is even harder.  Writing one that’ll work on Zeus too is a touch harder again.  In fact, let’s run through some numbers:

I’d estimate I’ve seen about 20 different versions of PHP installed on servers.  There’s a lot more, but let’s just stick with what I’ve seen.

Then there’s at least ten different mySQLs that I regularly see, that’ll work on each of the above PHP versions.

Looking at our server logs, there are about fifteen commonly used browsers and browser variations.

And there are six commonly used platforms (eg, Windows XP, Windows Vista, OSX, Ubuntu, iPhone, Windows Mobile)

So – for a single install of our code we’re looking at a minimum of 20x10x15x6 permutations of environment by the time something is delivered to an end user.  18,000 different possibilities we have to consider.  Without even thinking about minority stuff like Opera on Symbian phones.

But you’re thinking that all those variations are all essentially trivial, but here’s one that caught us out recently:  Put what’s known as a regular expression in at least one version of PHP inside double quotes, and use a $ in the expression and PHP tries to parse the $ as a variable.  Put the expression inside single quotes and it’s fine.  It’s a subtle difference which didn’t show up in testing, but the minute we loaded up to a server caused problems.

When we code, we need to take consideration of as many possibilities as we can.  We do our best, but mistakes will always slip through because we don’t control the environment in todays broad base of platforms.  Twenty years ago I coded for just one link library, one compiler, one OS version and so on.  Before a change to any of those we would run our code through and make sure the results came out the same.  But with at least 18,000 variations to consider it’s impossible to test every possibility, or to know of it.

So yes, things will break.  Deal with it, or accept the developer’s specified platform requirements.  And things still might break.  You can’t afford to have unbreakable code.  Well, you can if you’re building an airliner, I suppose, but otherwise, no.

3. Learn How to Assess a Professional

Don’t assess a pro by the quality of a salesman, their literature or the cut of their suit.

I know very little about accounting beyond the basics.  How do I know if I have a good accountant or not?  Well, I asked people who shared values with me for their recommendations.  I asked a few questions.  I also did a little reading on the subject.  Ultimately that decision might have saved me £50k over the years.  Or cost me that.  To be honest, I can’t really be 100% sure.  I’m pretty certain things were good but at the end of the day I have to trust the guy and listen to his explanations.  My initial research was worthwhile because of the exposure to risk.

Same goes for hiring developers.  You can get two developers, both smooth and charming (well, as smooth and charming as an IT guy can ever be), who’ll build you an application for completely different budgets.  I mean, you could be talking about one who’ll quote £2k and another £20k.  A third may be quoting £200k!

And you know what – they could all be spot on.  Not one of them ripping you off.  £2k guy may feel that £200k guy is a robber and little more.

Again, ask questions and do your research.  £2k may be doing little more than buying in an off-the-shelf application and skinning it up or modding it to fit.  He may or may not tell you.  The code may be closed to you too. £20k guy does some better quality analysis and produces a lot of code in-house, but you have access to the code and you can fix things.  You may need to – if it was hastily produced he may have had to not consider so many of those 18,000 possibilities, or scrimped on testing.  He also supplies no guarantees at all.  £200k guy is top flight – his code is expensive, for sure, but he guarantees it, patches it for server updates, and writes beautifully structured code that a different future developer can understand and extend.

So which do you need?  Well that depends on what you’re doing.  Testing the waters?  Building up a massive online empire?  Making a car?  So ask lots of questions, ask for recommendations, look at their work, and talk to their current clients.

4. Have Reasonable Expectations

A £2,000 investment is unlikely to make you a multi-millionaire.  Internet fortunes were never made by the cheap or the lazy.  Accept this.  This isn’t the lottery – it’s real business, with real work in order to provide the real solutions that earn people money.  The easiest way to become an Internet millionaire is to become a developer – because then you can take shortcuts and get away with it.  When we develop for clients we can’t afford to take shortcuts :- you might sue us.

5. Don’t Expect Research for Free

If I already knew exactly what to do to make a fortune in your chosen business sector I’d already be doing it, so don’t expect a development company to be able to deliver instant answers.  If you don’t want to pay for research, do it yourself and take responsibility for it.

A story: I had two guys come in.  A little Jack-the-Lad in style, but fine enough.  They’d spent lots of money in online casinos and realised that it makes good money.  I’m sure it does – many are unregulated and many cheat their clients.  But hey, I’m not here to moralise.  So these chaps have made a bit of money in property and they want to make more in the exciting world of online gambling.

I need to make sure they’re serious, so the first thing I ask is have they done any research.  Well, apart from using the sites, no.  They claim knowledge of the regulatory requirements, so that’s something, but I can’t tell if it’s bluster or not.  Next I bring up the question of creating a proper requirements document, with analysis of approaches, software available, costs and so on.  That’ll be about a week’s work, won’t cover that much detail, and will cost around £2.5k.  This document may tell them that it’ll cost them £100k to develop a decent online casino, or it may even tell them not to bother.

The response was quite typical “What, we’ll pay you before you’ll even tell us how much it’ll cost?  Hah!”

I did try and point out that they weren’t buying a Ford Focus.  They left, and I very much doubt they ever got their online casino off the ground.  Alternatively they may well have been ripped off with a complete mess of a site.

Ultimately we’re not experts on everything.  But we have to become experts on what we design and code.  Think about what that means.  I couldn’t design an accounting system without a thorough understanding of accounting.  Researching and understanding stuff takes time and costs money.

6. A Mock-up is not a Design

It just shows us how you expect it to look.  It tells us nothing about how it’s going to behave.  What happens when someone presses a button?  What’s the security got to be like?  And so on.  And you’ve probably missed a ton of design elements that we’ll have to do ourselves anyway – the number of designs we get through which haven’t thought of how blockquotes, comments or even anchor colours will look is laughable.  Designing them for you, or having to think about those things, is going to cost you more.

7. No – We Can’t Just “Throw something together eh lads?”

It doesn’t work like that.  Well, it can, but only when we’re doing it for ourselves in an environment we know.  Ever watch Scrapheap Challenge?  That’s what thrown together cars and boats look like.  They’re dangerous and liable to take a layman’s finger off if he’s not careful.  Well it’s kind of the same with software, albeit without the missing fingers.  Unless it’s embedded software in your blender, in which case you never know….

8. We Don’t Know Why it’s Broken Until We Look at it

So don’t ask us how much it’ll cost to fix your pile of crappy, broken code.  Or even the pile of crappy, broken code we supplied.  It could easily be a one line change.  Unfortunately it’s buried in thousands of lines of hard to read code.  We’ll do our best, that’s all we can say.

9. Your Specification is Full of Holes

It is.  Which means that an unprofessional development company could produce exactly what you ask for, demand their money, and be entitled to it.  And you’d still have a rubbish lump of code that doesn’t work, falls apart under pressure, and sends your customer’s credit card information to a bicycle shop in Bangladesh.

A good developer will look at the holes and make sure they’re filled, keeping you in the loop as much as possible.  Some of those holes may result in an increased bill.  There’s a simple answer of course – create a specification with fewer holes in it….

It’s also one of the key reasons why offshoring to far-away, cheaper economies, can be a nightmare – communication is harder and so as a consequence those holes don’t get spotted, and yet you still have to pay for what was built.  Really you need to work closely with your developer.  8,000 miles distance doesn’t really help with that.

10. And Finally – Be Professional Yourself

Behave towards developers and web designers in a way that you’d appreciate your clients behaving towards you.  Calmly, carefully, with trust and without a need for constant justification.  What you do is hard and useful – that’s why people pay you a premium for it.

Summary

Yes, what I’ve written may appear a little ungracious towards to the people who pay our bills.  It’s not meant to be – really it’s aimed at helping all those who want to take part in this great adventure that is the Internet.  It’s a wonderful place, but like all frontiers it’s dangerous and there are conmen out there looking to fleece the gullible.

I hope the tips help you in your dealings with IT professionals.  I’d also love to hear any other tips…

Advertisements
  1. Yeah, some people wants everything instantly..

  2. Some very valid and well-articulated points. The diversity of software and hardware that developers (especially those denizens of the Web) have to deal with is staggering. It comes as no surprise that many developers target particular platforms and only guarantee (in however limited a fashion) their work for those platforms.

    I’m rapidly coming to the conclusion that the complex systems we build are becoming far too unreliable with way too many potential points of failure. Make things as simple as you can because we need people to use and maintain our creations. If my old mum can understand it then I’ve got things sorted.

  3. […] was reading a wonderful article about hiring web professionals today and thought I’d share a few of my own comments and observations for people looking to […]

  4. Thanks for a great article, it came through the WP mailing list this morning and reminded me that no matter how far we’ve come as a professional people will still want to assume that we’re a small piece of what makes a website successful.

  5. Note from Dave: Moon Viper, while I’m flattered that you chose to copy the entire content of this post onto your blog, I never gave permission to you to do so. Now, I can’t really be bothered to ring you across the Atlantic to ask you to take this down, and there’s no easy way to contact you online, nor add a comment, but I can make a note here about the fact, and leave the link intact.

    Writing original content isn’t that hard. And although the credit is nice, it could even be damaging to us because now we look like we have duplicate content. An excerpt is acceptable use – the whole damn post isn’t. Please remove it. Anyone who knows these chaps, feel free to annoy them about it 🙂

    […] thanks to LiverPool Web Designer F88A79CC-6040-6703-88A3-528D0206D440 […]

  6. If you want reasonable clients, unsubscribe from the WordPress Pro list. I’ve never seen such a lot of cheapskates. I still read it for entertainment and to make me value my word-of-mouth clients more.

    You were a bit harsh here – less foot traffic and you could afford to be more magnanimous.

  7. […] If You Want to Hire a Professional, Act Like One – A Liverpool Web Designer – an interesting write-up; and an interesting choice to write it up like this. […]

  8. […] thanks to LiverPool Web Designer F88A79CC-6040-6703-88A3-528D0206D440 […]

  9. […] If You Want to Hire a Professional, Act Like One « A Liverpool Web Designer […]

  10. […] If You Want to Hire a Professional, Act Like One […]

  11. This post makes for great reading – I’d be tempted to show it to my clients!

  12. I bow to you. Well done.

  13. Oh brother! You have said it all! Thank you for putting this together, I’d like to post this up at my desk for all to read!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: