Development on a fast moving Web

Web development is full of passion. It’s a big thing that moves fast, where new technologies, new frameworks and new tools are created on a daily basis by individuals, groups and corporations, all striving to create better things. Web development is also full of debates, because of all of these tools, speed and pride.

As Web developers, it’s hard to stay afloat, to keep pace with all of these new shiny toys. We tend to see the big picture. The Web. Then, everything that gravitates around it. It’s really close to our job, but yet, that’s not exactly it. We create websites and applications. They all live on the mighty Internet, but rather than seeing all of this as a whole, we need to look closer, and see all of these thin layers, all interacting together. Most layers don’t need to be in a constant novelty war. Our job needs to evolve, but not that fast, not on everything, and surely not daily.

I like to think of Web development as three levels of abstraction all tightly living together: Standards, Technologies and Tools.

Standards

W3C, Accessibility, HTML, CSS …

Standards are the essence of the Web, the how of it, and are moving slowly. They are the rules providing consistency in all this freedom offered by the WWW. They can be universal, like the W3C, or collective, like a style guide inside of your team.

In project development, standards compliance should not raise too much debate, but be a logical and necessary goal to achieve almost everything you need to do. Compliance with certain standards (e.g. accessibility) can be more complex to implement, due to a lack of knowledge, ignorance or complacency from the fact that their impacts are not easily visible. See for yourself if you love the Web enough to respect it and its users.

Technologies

PHP, Ruby, Javascript, Angular, Node, Erlang …

Technologies are the core of any projects and websites. As they are taking different approaches and roads to tackle the same problem, they are a big debates generator between companies and employees. Good ol’ Mac vs PC war, fought on many different fronts.

There is no miracle solution to determine the right technology. Most of all, there is no golden technology to rule them all. Robustness, security, performance and development time are all variables to take into account. The skills of current employees to the proposed technology is also crucial.

Moving companies toward new technologies might take time, too. Besides the risk of running into a fresh and new technology that will run out of support and die in a few years, the need to maintain old projects using old languages still needs to be considered.

Nevertheless, it’s tempting to use a new technology, even if it’s still in alpha stage. What if it was the next big thing? We glorify newly adopters like settlers on new lands. It’s okay to go forward, don’t get me wrong, but like with your savings, you should take risks that fit your long-term vision.

Tools

Sublime Text, Notepad, Emmet, Scrum, Kanban …

Finally, tools are what make standards and technologies come together. Code editors, tasks optimization and analysis tools on one side, methodologies and processes on the other.

They should have little to no direct impact with users using your project. The only goal of a tool is to make the job of the one using it easier and simpler. They are shortcuts in you work, autocompleting things you already know or automating repeatable processes for you. Yet, once again, debates here are fierce. However, although important – even crucial, to use the right technology for the right project, the tools used should be more personal.

Of course, you will need to use some common tools to work with your coworkers, as you also need to go with the workflow of your business. But you probably don’t need to go with the herd and use that brand new code editor as long as you are fine and effective with the one you’re already using. At the end of the day, you should be using tools that suit your workflow, your pace and your way of working.

Conclusion

Do not treat Web development as a whole. Some levels of it deserve to be constantly challenged and improved. Some others do not need to be in a constant novelty war.

Observe standards, put into consideration your technology choices for each of your projects and use the tools you’re comfortable and productive with.

The Web is not a mode, what we use to create it should not be either. It is rather a large ship which takes a long time to change course. Although it is tempting to set sail towards novelty, sometimes continuing to do well with what is robust and functional is a much wiser choice.

And yes, it’s okay to not know every tool, to skip a version of a technology and to use an IDE that is more than a year old.