Swindlers are giving software development agencies a bad name. That’s why I've started my own company, with an entirely different ethos.
Although the bulk of my 11 professional years have been as a software developer, I did dabble a bit in politics. I was a local councillor in Guildford and I worked for the Liberal Democrats over a two-year-period spanning over the 2010 general election. The common theme you hear when people talk about politicians? Untrustworthy. In it for themselves. Promise everything, deliver nothing.
There is a sense of common belief that if politicians can get away with doing something that benefits them, despite moral qualms, they will do it with gusto. Over the past decade or so, I've seen something similar with software development agencies. We are, despite huge growth, still an industry in relative infancy. We are also an accessible industry — with a computer and the Internet, anybody can learn to code and start their own business. You don’t need money, influence, property, or any of the other things associated with the commencement of a traditional company (although you can’t deny these things always help). With a bit of cheap hosting and a some knowledge on how to knock a web app together, you’re on your way.
Yet, in this country at least, we are failing to spit out skilled developers. Year-on-year, our universities produce nowhere near the number of engineers we need to meet demand. We do have one of the fastest growing tech hubs in Europe, but that’s thanks to the great benefits we get from free movement within the EU (more on that another time). Our politicians do not get tech, our journalists do not get tech and the country itself is not as comfortable with the digital world as it could be.
This all leads to a problem of accountability. Politicians can come up with outrageous and unworkable tech policy and nobody will bat an eyelid because journalists and the general public do not have the knowledge nor the inclination to scrutinise the detail. In software development, lack of accountability promotes sloppiness. If you’re dealing with a lay company who just want a web app doing and they have nobody internally to poke around the code and see how awful it is, there’s a temptation not to worry too much about standards and maintainability. However, there’s a greater concern, one that riles me like no other in this business.
If companies are not able to understand the scale of a job, how do they know whether the work cited really is 2 days? You would like to think that anyone in this industry, particularly as it takes quite a love of code to become a developer, would take pride and dignity in being honest about their work. Sadly, not always so. Only a week or so ago, a CEO asked me to take a look at a JS bug on one of his websites that his digital agency quoted 10 hours for. I looked at it, realised immediately there was a syntax error in the console, checked the source — lo and behold, the error was because the agency had commented out some code in the jQuery ready() declaration… accidentally commenting out the opening line itself.
I worked it out and fixed it in 3 minutes. Let’s ignore the fact they made edits directly to the live site or that they felt commented-out code was production-worthy, this was a problem created by the agency for which it wanted to charge a client 10 hours for. 5 minutes investigation would have told them both of those things, so either they didn't bother investigating or they did and then decided to lie about the work. I'm not entirely sure which is worse.
So what’s my company’s ethos? Simple. If I've done some work for you and there’s a problem, there will always be a 15 minute investigation — free of charge. If 15 minutes doesn't tell you the problem, it should at least give you an idea of the complexity and consequently, a better estimate to give to the client. And if the bug is something I introduced? Then it is fixed for no charge. Why should you pay somebody to fix their own mistakes? My code will always be produced to the highest standards and it will therefore take longer in initial development. Why? Because investment in quality right from the beginning of the project means fewer bugs, better maintainability, easier for future development, ends up costing you less and, most importantly, gives you happier users.