A common characteristic of most web developers is that we have tunnel vision when working our craft. Our ability to focus and accomplish narrowly defined tasks with speed and intensity is one of our greatest strengths. When working with a larger team, however, our reluctance to step outside the zone can hinder project development and management. Web developers can be a difficult lot.
I’ve experienced this from both sides — I’ve been a web developer for the last 15 years and managing projects for the last three. And I’ve had countless conversations with Pelago’s project manager about improving my work habits to make his job easier. Here are some suggestions, based on my experiences, on how us web developers can work in a more holistic manner.
1. The Domino Effect
Web developers work on a diverse array of projects, enough that we think of ourselves as web mercenaries. Got a conflict in some poorly developed region of your web site? Send us in and we’ll fix it. But if we aren’t familar with the site our one fix will break things elsewhere. This is where global search (or my favorite ‘grep -r’) is your best ally. Run a quick search of the code to make sure the Javascript function or CSS class you modified is still being utilized correctly throughout the site. A few extra minutes spent verifying your code in this way, while the changes are still fresh in your mind, spares you the headache of having to return later to patch up any residual mess.
2. Fill in the Blanks
Web developers excel in tackling tasks, especially when the specifics of each task are detailed and straightforward. Project managers, on the other hand, won’t always provide you with all the information you need to complete the task. Even the most articulate project manager will sometimes task a web developer with executing a vision based on only a few notes. Our initial response is to send the task back and ask for more detail. We do this because starting a fuzzy task requires a non-linear kind of creative energy. We like the linear, the well-defined spec. A strong web developer will learn to improvise in this scenario and complete the first iteration of the task to the best of her ability. Even if she gets it wrong, she is still 90% further along then having done nothing. Project managers love web developers who can tap into the spatial realm of relationship, project history, and intuition to get things done.
3. Cross Train
There are many areas covered by the definition of web development. Our web development team has individuals who are gurus in one or two areas of expertise — CSS, HTML, Javascript, database design, regular expressions, data structures, design patterns, query optimization, systems administration etc — that as a team there is nothing we can’t conquer. But what happens on thursday at 5pm when your AJAX-intense web site slips a cog and your XML expert is off the grid? Web developers need to branch out and familarize themselves with other areas of development, especially if the project requires multiple areas of expertise. We have been able to divert a number of potential crisis’ simply by knowing how to restart a database server. The Agile Development methodology uses pair programming to accomplish this, and is a good place to start.
4. Quality vs. Quantity
Web developers are task-oriented by nature. We love whittling down our task list. But sometimes we rush through the tasks too quickly and our code suffers. Or we’ll assume something is fixed and working properly without verifying it ourselves before handing it back to a project manager (or even worse, a client). Focusing on the quality of our work means we won’t complete as many tasks as we are used to in one day, but it also means fewer tasks will be returned to us in need of repair. We can actually save time in the long run by focusing on the quality of our code. Clients will appreciate the effort, too. For example, 90% of SEO can be done when building the web site simply by being thorough with the use of alt tags, title tags, meta tags, and semantic HTML. Yet, we’ve handled many web sites built by web developers who have neglected all of these.
5. Update Your Perspective
My chair is visibly worn on the left corner of the seat cushion and there is a trail starting to appear from the front door to my desk (well, there would be if the floors weren’t coated with polyurethane). I have made it a point to get up more and do small things, things entirely unrelated to web development, like washing the dishes left in the sink from lunch, or water the plants. Freeing up our focus from our day-to-day workflow affords our brain a moment to rest and reload. Taking the time to do things from another perspective ultimately gives us a deeper appreciation for what happens outside our zone. When we increase our awareness of how our web development efforts affect the whole of a project we are all the better for it.
Thanks for this. Very well written and a ton of help!