Programmers – Duty Of Care

I was recently asked by a prospective client to have a look at adding a shopping cart to his new website. It turns out he’d spent 18 months and many thousands of dollars getting the site built by a web design company. The relationship had broken down with them wanting more money than initially agreed to deliver the shopping cart.

I agreed to have a look at the project and was not forceful enough by allowing him to send an email to all and sundry welcoming me to the team.

I got access to the existing code-base over a weekend and spent a full weekend trying to get the site set up in my environment (a typical LAMP config). I threw my hands in the air on the Sunday evening and decided to wait till a programmer who had put in some quick fixes over the last few weeks came around to show me how to set up the website. I’ve been around the traps for some time now and setting up/administering linux, apache, php and mysql are second nature to me. Why should this site be any different?

Holy heavens above and all the saints preserve us if this wasn’t the site from hell. There were over 1900 files in the site (remember, the shopping cart wasn’t included yet..or sort of). There wasn’t a line of commentary apart from the standard headers the previous developers had copied and pasted from third party systems. In their wisdom, the developers had decided to use the .htaccess file not for it’s intended purpose (security and file access control) but as the core of their navigation system. In spite being built using a combination of PHP 4 and PHP 5, there wasn’t one occurrence of a 'Class' anywhere to be seen. When I turned on my E_ALL error constraint, I got more errors and warnings than actual web page when browsing the site, There was no revision control history so no idea of who’d done what or why?

I am usually very slow to criticise other programmer’s work. I realise I wasn’t there when the client asked for new requirements to be added on a Friday afternoon and expected them to work on the Monday morning. I wasn’t around when the lead programmer left for a bigger and better challenge, leaving the junior programmer holding the fort. That’s why I usually stay quiet when looking at other’s work.

This piece of work on the other hand really took the biscuit. The amount of code that went into producing the amount of output that was a handful of pages was staggering. I firmly believe the entire site could have been built (including a shopping cart) for less than $20K and should have taken 2 months to complete. The cowboys who built what I saw were screwing the site owner for every penny he had and measuring their delivery by the unnecessary lines of code they were producing.

In this instance I had to walk away from the project. I realised I would be the ‘goto’ man for all the sites many woes and with pending holidays would be unable to commit to deadlines as required by the client.

Unfortunately this sort of web development effort has left a bad taste in the mouth of the site owner as he now views all web/software developers with the same contempt and distrust. So thanks to the cowboys they have now driven an even bigger wedge between the world of software and it’s lifeblood – the customer.

As programmers, practicing our craft is a skill that’s fine-tuned over time, but the technology doesn’t stand still. It’s a programmer’s responsibility to ensure we keep up to date with new features, techniques and practices. Failure to do so results in mediocre code and a guarantee you’re not going to last the test of time as your skills age while the world moves ahead.

If you’re a software/web services buyer, please ensure you check the credentials of the people you are dealing with. Pick up the phone to other customers. It’s your money, you should be confident and comfortable handing over your cash knowing you’re getting a reliable and competent level of service.

If you’re a software or web developer, please be open to your clients. It doesn’t always work out well, but if you have a couple of successful projects under your belt, you should be able to use them (and the customer) as a reference. Expectation management is a key component of this business and it is especially true when you’re dealing with clients who are not tech savvy. It is your duty of care to educate, illuminate and leave a good IT experience in your client’s mind for all our sakes.

Share

No Responses to “Programmers – Duty Of Care”

Leave a Reply



*

Spam protection by WP Captcha-Free