Accountants know that a debit entry and a credit entry are two distinctly different and rarely overlapping items. A photographer knows that a macro lens is a dependable choice for extreme close-ups. A chef knows that adding potatoes to an over-salted dish would make it palatable again. Most jobs have a defined set of skills that you need to master in order to be good at your job.
Being a web or app developer is not one of those.
Digital technology changes by the minute. What is a thoroughly valid coding approach today can spell the kiss of death to a website tomorrow.
A report by CapGemini brings the “digital divide” under the spotlight. According to this study, over 4.4 million information technology jobs will be created around Big Data by 2015. The shocker is over two thirds of these jobs will go unfilled.
Is that an opportunity you ask? Of course, it is. But only if your skills are updated and you are on the bleeding edge of technology changes as they happen. Here we shall discuss the most vital skills that will keep your stock rising in the treacherous waters of web development.
Keep the Customer Center-Stage
Every website or tool that you develop has customers or users. Every website or tool is built to solve a problem or expedite an existing solution for the intended users. When a developer begins to create tools that do a lot of fancy-shmancy stuff, without making it easy for the customer to tackle their core problem, the net result is a big dud.
The most important skill that will hold every single developer in good stead is the ability to look at a project from the customer’s point of view. Who exactly will be using your tool? What are their goals? What do they want to do with the tool you’re building? How often will they use it? All of these are valid questions that you need to answer for yourself before embarking on any development project.
Instead of dismissing the customer as a moron who only knows how to crib about what’s wrong with your solution, try and work with them to understand why they feel that way and what you can do to help them.
Create Models to Solve Any Type of Problem
Too often, we see developers wasting time on reinventing the wheel when a little bit of improvisation would have sufficed. Instead of creating ten random templates that you’ll force fit on every project, work on building patterns of thought that will help you reach the underlying problem in whichever project you have at hand.
Mathematical models are a great tool for isolating common elements among problems and representing them in a way that is easily understandable and makes sense. Say, if you’re working on converting an informational site or blog into a transactional one, you can develop a broad, CMS-like framework that can be replicated across multiple websites. This saves you time and helps in reducing errors.
Another common obstacle in software development is integration. The solution to this is developing a life cycle process that takes into consideration all pain points of the customer. For example, if you’re an online retailer wanting to couple your ERP system with your ecommerce platform, narrow it down to the essentials such as
- What exact data do you want to mine, how will you get it and how will you measure it?
- What will be the ROI of the implementation and how soon will you break even?
- Can the vendors you’ll be working with provide you all the support and customization you may need?
Focus on Functionality
Yes, I spoke about being customer-centric earlier. There the focus was on developing your website based on your customers’ objectives. However, functionality focuses on making life easier for those customers that your customer is trying to court. In other words, if you’re developing an e-commerce site for a shoe retailer, the usability aspects that you want to focus on affect shoppers who want to buy shoes, and not the shoe retailer (at least not directly).
Let your design be guided by ease of use, visitor intent and customer expectations rather than purely by aesthetics. Usabilty.gov and UX matters are great starting points to learn about what makes a website user-friendly. Things like a simple site structure and logical navigation, ample white space, mobile friendliness, short and snappy web forms, etc. are critical components of usability that each go a long way in enhancing a site’s accessibility while also adding to a site’s visual appeal.
Never Ignore Staging and Testing
When you’re writing code for an existing site, a lot of developers tend to push new code into production straight away. Big mistake. A new piece of code that has not been tested and checked for errors, performance glitches, and final results is a huge gamble for a site that is already live. The answer lies in putting up your new feature / code / tool on a staging server that replicates a live environment but is purely designed for developers to test the fruit of their labor. Read more about step by step staging guidelines here.
Just as you would test if your tool works in a staging environment, you also need to know whether it is compatible with the most popular browsers and mobile devices used by real users. Testing every aspect of your new code in each device-browser combination is imperative – these are little worlds of their own. Most browsers have built-in testing tools that make your life simpler. It may take a few extra man hours, but that is a small price to pay for the satisfaction you get once you stage and test a flawless piece of code.
Get a Good Grip on Web Security
Even if you don’t add any of the other skills we’ve talked about to your repertoire this year, don’t skimp on web security. If there has been one consistent theme across the last two years about websites it has been the various ways in which hackers and other malicious elements. If you’re a rookie developer, the OWASP development guide is a wonderful resource to get going.
The idea is to stay abreast of all the various security breaches that happen now and then and discover the reasons behind each. Educate yourself about common hacker practices like an injection of dirty code into your tools or stealing user passwords in an attempt to steal financial data of your customers. Use HTTPS protocols on each page that handles customer data. This includes transactional pages, login pages, customer profile sections, and so on.
Always Be in ‘Learning Mode’
Lastly, but most importantly, the single most important skill any developer can have is that of self-education. Keep track of the latest goings-on in your field and track important events that affect your specific domain extremely closely. You may be adept at certain technologies or languages. But in today’s cross-platform, multi-technology world, learning a new language is a great way of staying relevant and in-demand. Here’s a good resource to that tells you the most important things to learn across a range of popular programming languages.
Blogs like TechCrunch, forums like Stack Overflow, and “social forums” like Reddit are great ways to stay ahead of the curve on an everyday basis.
Being a web developer is like being a trendsetter on the most fast-changing platform on the planet. An attitude of growth and constant improvement is essential to success in this slippery but highly rewarding career.
Disclaimer: All images are provided by author.