Recently I was involved in an very short bit of consultancy for an e-commerce company. We were focussing on the performance of their site in the browser, and they were more than a little surprised at the software engineering rigour that we exhibited given that we are just an agency. Perhaps we're thought of us web development production lines who churn out web sites. That's not my view.
This isn't the first time that I've encountered that attitude towards agencies. It seems that there is a perception from companies whose bread and butter is developing their product for the Web, that an agency would never go to the same lengths as them to ensure quality and performance.
There is a kernel of truth in that. Realistically a product company or e-commerce company can labor over fine-tuning and optimising their web site over long periods of time, making many, often constant, iterations to drive up the quality. Long term engagements in projects is often a luxury that agencies are not afforded, and so it is more difficult to agonise over finessing the performance and all that entails.
But hang on. Agencies should be experts in their field. Web development practitioners have a responsibility to their clients to craft and deliver amazing results. That doesn't end with the branding or the design, but should, nay must extend through to the development and delivery of the 'product' on the web. Otherwise everything that came before delivery is for naught.
Where I work, we have gone to great lengths to instil robust software engineering practices because without them, frankly we'd be screwed. Deadlines are always tight, and clients always want a lot for their money. If we stand a chance of delivering that, we must find ways to reduce risk and create opportunities for innovation.
Of particular surprise to the recent client, was the degree to which we optimise the performance in the browser. We care about this stuff. It's essential to providing a good experience to the user and that is true no matter how large or involved the project, or how ambitious the web site or application. While this particular client poured a great deal of effort and expertise into optimising the performance of their back-end systems, the browser technologies were not given the same kind of care and attention. This is huge (and common) missed opportunity to optimise where it really matters. They exclaimed to us "oh, you treat JavaScript like a real, first-class language!". I'm no stranger to hearing people look upon JavaScript as something that is supplementary, or a bit of a play thing, and the power and approachability of jQuery has made many people think that good JavaScript is easy, because they can make things happen with little code.
The truth is that doing this right takes just as much care and skill as any other kind of software engineering, and without the proper process, the proper approach, or the proper standards, you'll often be creating a weaker user experience, and setting up a train-wreck for you to fix just around the corner.