This is an article about one of my biggest pet peeves in web development. In the course of a career, you will inevitably come across people with different perspectives about the best tools available for developers and users. When you spend so much time with different languages, IDE's, browsers, and operating systems, it's natural to have an opinion on the subject, but there are some people in this field who have trouble understanding that the world does not agree with them unanimously. They feel compelled to evangelize to the world. These are developers (and designers) with personal technology agendas.
Examples
You probably know individuals like this. Here are a few common examples:
- A developer who is nostalgic for the days that immediately followed the browser wars of the late 90's and refuses to test in any browser other than IE5 and 6.
- A designer who makes sites on a Mac and delivers them without testing on a PC.
- A designer/developer who firmly resolves never to use an IDE because they all will inherently trash his code.
- A designer who built his career on image-heavy table layouts and sees no reason to re-learn page layout using CSS.
- An open-source devotee who has to wash his hands after touching any Microsoft product.
- A developer who dismisses ActionScript as not a real programming language.
- A .net developer who turns his nose up at SharePoint.
The Problem
Most of us hold beliefs like these at different points throughout our career, and they can make for some interesting debates. At the end of the day, though, we are not paid to represent our beliefs; we're paid to produce results for our clients.
When a developer gets too wrapped up in a personal technology agenda, it can hurt his employer (even if he's self-employed). By being close-minded, this individual shuts himself off from opportunities to improve productivity. He may damage business relationships by preaching his beliefs to ears that are not interested. Most dangerously, people like this tend to be maverick developers. They ignore the project's standards and conventions, produce work that is inconsistent with the rest of the team, and bring an element of unpredictability to a project.
This is also a bad situation for clients. When a developer builds a site to his own specs, there's a strong possibility that he hasn't met the client's specs. The client may not be able to describe his specs in exact terms, so a developer needs an open mind and good listening skills to understand what a client really needs. A personal technology agenda hinders his ability to do this.
Solutions
When we recognize this behavior in ourselves, we need to adjust our priorities. If website development brough lots of personal enjoyment, we'd do it for free. Since we get paid, we need to make sure that the top priority is providing good service for the people who write the checks. That means putting the team's and clients' goals over our own. We should feel free to provide opinions, but not get bent out of shape when our ideas are overruled.
What's more difficult is when we're faced with a co-worker or contractor who is pushing a personal technology agenda. The only good way to approach the problem is to explain very politely why the team has made its decisions and how everyone will benefit by following conventions. Some developers will acquiesce. For those who do not, there are few options. We either have to work around their obstinance or report them to their superiors (in which case we will still probably have to work around their obstinance).
The best solution is never to encounter the problem to begin with. When joining a team, try to screen for open-minded, disciplined, and well-managed groups. It's best if that team's underlying technology beliefs are similar to your own. When assembling your own team, try to ask questions to determine if a candidate is adaptable and willing to follow leadership. It will save lots of frustration and make your workplace much happier.