Apr 11, 2009 0
5 Skills a Great Web Developer Must Have
Inspired by this techrepublic article, and based on experiences that I’ve had hiring and managing developers, I’ve compiled 5 skills that a savvy developer must have to compete in the marketplace. My personal experience as a web developer and designer has shaped this list, but I am writing as someone who works with developers on a day-to-day basis. These are some of the most creative and intelligent people in the workforce and I am always amazed at their skill in solving problems and overcoming obstacles. I have been privy to seeing some stereo-typical behavior and a few parties who just could not help themselves from their own behavior. The list here is a result of some of those experiences.
- A Broad Perspective: I’ve been fortunate to have worked with a great many extremely talented developers and programmers. Some with very little experience, some with entire careers behind them. The successful ones, the ones that are really survivors, have a very broad perspective that gives them levity. By perspective, I mean that they have a vocabulary outside of a particular language or skill. As an example, I’ve worked with several flash developers who had no interest or understanding of the browser. It sounds strange, but to have such a talented team member who can’t see their project past a local compiled sample has very limited use when the market is moving to the cloud. The best people to have working for you are those that can see how a project can be expanded past the local or current instance. Porting projects to stand-alone apps, creating frameworks to use repeatedly, or to new think of new infrastructures makes the team member who can suggest and implement that project a huge advantage. Having the vision and vocabulary to plan for reusing and redeploying a project for multiple uses makes you a leader and a developer who can adapt to a changing market-place.
- Flexibility: Having the perspective to know how projects can be re-used and to think of deployment concepts is one advantage. Being able to act on those thoughts and deploy those projects is another. Many developers realize that some languages and techniques are fleeting. What is in demand now, may be passe and obsolete next year. Developers who have a strong conceptual understanding of basic computer science principles are more likely to understand and adapt to changes in their own work and in working with others. It’s also important to understand that the web and the to design and build websites moves maddeningly fast and one must make constant assessments as to what is to be built to with-stand the test of time and what can be made using the most effective, but potentially perishable technologies. The ability and experience to make those judgements is crucial. Have a track-record for making those good judgements is anincredible talent. Being able to reliably predict those trends makes you a demi-god.
- Communication: Given the advanced skills that programming requires, I have always been surprised to run into communication problems. Normally, problems begin with a developer assuming that the person at the other end of the conversation understands their development process, what the particular work-flow is or even how to use a computer. In many cases, and I have fallen into this category, developers give too much or too little information. Perhaps it’s describing a solution to a problem, or a process that they are using, or even the status of a project, but most people don’t have the patience or the background to understand the intricacies of how a developer is describing their work or it’s progress. This creates a problem in 2 ways: First. the person trying to understand the developer may lose patients, be unsure about how to clarify the exchange or just “get lost” in the conversation. The second problem is that the developer believes that they have expressed themselves and that there is clear understanding between the two parties. This is where deadlines, project outlines and scope become misunderstood. If developers and designers try to take more time and be very clear, both linguistically and with any written communication, many of the conflicts between developers, designers and the people they work with would be alleviated.
- Sensitivity to Marketing and Business: I’ve been lucky to have begun my career in a small, very friendly direct marketing agency with a group of people very willing to teach me about the importance of the industry that I have been part of. That first agency exposed me to the importance of service and strategy. Being a great developer or designer, you have to have a sensitivity to what the end goal of your project may be. If you’re building e-commerce software-who is using it and why? If you’re building banner ads-what would someone give this ad a second look? If you happen to be building a better twitter client-what are some of the things my users might need? All of these things are important to success. If you are part of a larger organization, that responsibility becomes larger: You should be treating each team member as a client. Everyone you come into contact with is looking towards you as an expert in your particular craft. The opportunity to elevate yourself is in your ability to build confidence with those co-workers and be able to have them count on you. In return, you should be able to count on them and their abilities. This carries through to the clients. development and design are service-industries and the ability for an individual to make a difference is constant. The finest details and slightest improvements increase the quality and integrity of your project. Even if your clients do not see it, you are constantly building cache with your co-workers and clients.
- A Vision (not an opinion-A VISION): Having drive is important. Many developers and designers have an enthusiasm to excel and build things that matter to them-personally. Even if your vision is not related to the particular field that you are working on, you can bring that desire (and the enthusiasm that comes with it) to your day-to-day job. There are so many opportunities in the field of development to creatively intern-mingle your personal vision with a project. The belief that you are putting a small piece of yourself into a project is will be give you a boost of enjoyment and renewed life to your projects. From another perspective, it’s just as important for managers and clients to give latitude for creative people to intermingle their personalities into projects. The process will be more enjoyable and the work will be astounding as a result.