In recent years web application technology surged. The business received incomparable possibilities to present their ideas to users, and developers gained new utilities and abstractions to put those ideas into life in a more reliable manner. This evolution created new possibilities as well as challenges that we need to address from the business perspective.
I am a front end developer with years of experience, who has spent recent years working with a broad span of new technologies related to web development. I work as an architect of web applications for a renowned web service holding a leading position in the real estate market in Poland-RynekPierwotny.pl. I’ve advised on the use of different technologies and defined their path of adaptation for multiple web services.
Companies depending on their web applications or creating them for their clients have to face rapid change of web technology that undoubtedly influences their business one way or another. To help with conscious technological decisions that await most of those companies, we will answer the following question: “How does evolving web technology affect business?”.
To begin our observations regarding the subject, we shall consider how did those changes advance throughout history and how did we end up in a place where web technology evolves so rapidly.
When we consider the early days, the very first web pages are static, containing not much more than text. Later we experience the development of scripting language that allows browsers to make services more dynamic. We can handle simple user interactions and display different forms of notifications. The content of the web page is no longer static. Users appreciate that direction and web pages become even more lively and engaging. In recent years we encounter another significant progress, which causes browsers’ scripting language to receive regular updates and become more capable and accessible than ever. Technology is evolving, creating new possibilities, and proposing new abstractions that allow our contemporary web applications to not only work like a charm but to grow immensely in scale. This whole process took place, not without reason. From the very beginning, people creating web pages were on a hunt for users’ attention. One way to attract users is the content itself, but sometimes even more important could be the form of presentation. Every new feature and every new approach in the browsers’ world simply happens because businesses want to attract users even more. Possibilities like live notifications, geolocation, or responsive design increase users’ engagement and improve the holistic experience of the page. All of this would not be possible without a fight for user’s attention, regardless of whether users themselves were aware of it or not.
That’s all regarding a brief history of web development. Now, from the business point of view, we need to accept the fact that the evolution of the web is happening right now before our eyes, which created enormous space for web services to fight for user’s attention. Those technologies, let’s call them features, were build into browsers to create web more pleasurable for users, either to present new functionalities or to improve user’s experience interacting with the page. Whether we like it or not, modern technology changed the rules of the business game, and we need to play it along with success to keep up. We have to find the best possible applications for those new features and invest in pleasing our users because otherwise, they will choose another, more suitable form of browsing the information they require.
Another business aspect is the awareness of various technologies, even those that may not be fully supported or applicable in a given web service right away. Some of them may be considered a kind of investment for future flexibility in decision making. Let’s do a quick thought experiment and imagine two similar companies with similar IT departments and related web services. Suppose they possess the same knowledge and technology regarding their field of operations, for the time being, they are equally capable of creating their services. Now the twist comes along, let’s say that the first of those two companies invested in studying broader technology, the technology not directly connected with their field of operations but something that has even slight and vague possibilities to be used someday. The thing is that even the technology we are talking about is not applicable at the moment, we may assume that the IT department is not the only one taking gain from this research. There is a high chance that the business side of the company may, at some point, be aware of those abilities and studies and have some edge, comparing to the second company, in coming up with fundamental ideas that will change the odds for the future. Nothing tangible but proper timing, a unique approach, and flexibility in decision making can make the difference. Sometimes it is just enough to be faster, especially in business.
Previously we considered features that come along with an adaptation of new technologies and influence user experience. On the other hand, web evolution introduces new utilities and architectures to improve web development experience profoundly. We will ponder whether it is worth to adopt those deal-breaking technologies into our web services and how should we proceed to do it efficiently.
Business is all about making things work and do it efficiently regarding time and resources. This idea is the main reason why we should consider cost as our main factor when adopting new technologies into our processes. To answer why we ought to choose new utilities, we need to understand three main aspects affecting the overall cost of developing and supporting web service.
The first one is implementation time because the less time we spend on creating something new or changing something that existed before we lower the cost of the operation. Whenever we create a new application or add some features to the existing one, we spend some time on implementation. One of the best examples that lower development time are new high-level abstractions that appear when using specific programming libraries or frameworks. Those abstractions allow programmers to express the same logic with less effort and less code, which relates to less time spent on creating a particular solution. Working on a conceptually higher level leaves us more time to consider essential logic and not to waste time for lower-level implementations. Moreover, those abstractions bound programmers to enforce universal practices, which unifies code that is easier to understand and improves cooperation.
The second aspect related to the overall cost is code reliability. We can create something very quickly, but when our solution has bugs that we need to fix, again and again, there is no actual gain in cost. This point also affects new applications as well as existing, expanding ones. As previously mentioned, high-level abstractions may as well improve code reliability, because decision making on higher-level leaves less space to make low-level mistakes. However, there is a different kind of utilities that highly improve our application’s bug resistance, and these are automated tests and new programming languages. Better tests seem like an obvious suggestion, but the point is to prepare them in an automated manner because only this way, we can expect to lower our cost and increase reliability. Similarly, better programming language could be a significant improvement when we consider the idea behind its creation. For example, the one scripting language supported in all browsers is the invention from times when we started to make our websites dynamic. It’s not that it didn’t prove itself along the way. Yet, we have more dependable alternatives now, explicitly crafted for today’s advanced application development purposes. Those alternative languages are sharing two traits that are advantageous in comparison to our current one — compilation process and static typing. They are interior characteristics of programming itself, but as a result, allow programmers to create more reliable code. Compilation allows for efficient check for errors before they affect our browser and then users when static typing increases abilities of compilation to get rid of logic errors that we could not be aware of. Those two are like automated tests that very well solve a considerable part of possible mistakes.
The last aspect that we need to take into account discussing cost and efficiency is our application scalability, which is hugely vital for large or frequently changing applications. In other words, the more prominent and the more dynamic the application, there is a higher chance that finally, we will spend much time refactoring existing logic to fit the new one or the changed one. Answer to this is a good architecture that can save us from an unscalable solution and helps with decisions on which part of the applications should go where. Specific utilities come along with given architecture to guide us and help to enforce those decisions on code. The whole team hugely benefits from a well-designed project structure.
Those are the aspects that affect the overall cost, and the main takeaway is to remember that they may be relevant for businesses to improve efficiency. A different matter, however, is a question of how to implement those utilities. The most important thing is to do it reasonably because even all of those solutions aim to improve the workflow of the IT department, they also require our programmers to acquire basic knowledge of the subject. We should not add everything at once to our projects, but do it one thing at a time and one step at a time. We do not need to implement new abstractions or use a new language all at once. The best solutions are those that allow for incremental adaptation, and most of them do. Path well suited for most of the companies is to evaluate problems in your project, find possible solutions in the community, pick one new utility that may help, test it in a single place and finally advise your team on how to spread the solution.
The web technology evolution has an immense impact on yet another thing, which may be even more critical for business — the job market for programmers. Since new technology allows new features and provides new utilities, it is usually more potent than the previous one. This view propels programmers to learn new things but also creates an obsolete software space for those who cannot or do not want to follow. As a result, we have the job market split between old and new technology. The division runs more profound as time goes by. The new technology, which is exciting and powerful, will attract new programmers starting their programing adventure as well as seniors leading their projects toward new frontiers. Eventually, we end up with a balanced job market based on new technology. On the contrary, the old technology is not getting new programmers and is losing some veterans as well. It is not as exciting as the new one, which results in a community of highly skilled individuals who decided to stay with old technology. There are not enough new people to balance the job market. This story repeats time and again for different environments, languages, frameworks, and libraries that happen to have a follow-up invention.
From the business perspective, we have to ensure that our IT department is fully capable of supporting and developing our applications and that we can maintain it at a reasonable cost. Those two requirements are essential in the context of the split job market. When we decide to stay with old technology, we may have trouble to structure our team correctly and provide it with tasks that will utilize programmers’ abilities. If we fail to do so, we may not keep them for long. Besides, keeping highly experienced staff in a single project may be too expensive, to begin with, and unfortunately, there may be hardly any other option. On the contrary, the new technology job market provides a relatively balanced spectrum of programmers, which allows for smooth structuring of the team, and for that reason, it will be cheaper as well. As we see, paradoxically hiring programmers working with new web technology may reduce the overall cost.
Web technology evolves. It evolves quite rapidly, especially in recent years. How does it affect our business? In various aspects, to tell the truth. Nevertheless, we can use it as our advantage, a huge one to be specific. It all starts with our users because mostly, it all happens thanks to them. All new possibilities are right there, ready for use, and all we need is an up to date insight. Then we may support our IT department, allowing them to investigate projects and adopt utilities that fit perfectly. They change regularly, so decisions made years ago may no longer be the best to uphold. Finally, the job market for programmers is an essential factor as well. We need to keep that in mind if we want to maintain the ability to implement new business ideas quickly. To feel safe and flexible in this ever-changing world, we should pay close attention to web technology evolution.
Michał Skoczylas is a front end developer with years of experience, working as an architect of web applications. New technology enthusiast, happy to teach and learn.