Summary: Driven in part by recent trends, web application development has changed over the past few years. Development principles that applied in the past no longer make sense, while new ones have sprung up. In this article, we explore the principles that modern web developers must follow when building successful applications.
What makes a “productive developer?”
The answer isn’t as obvious as it might seem. Generally speaking, productivity correlates directly with speed. With developers, however, it’s different. Speed doesn’t necessarily equal productivity.
For instance, suppose a developer completes a project in half the time expected. Is that developer productive? It depends. Does the application meet the specs? Is it usable? Is it secure? Will it scale up with the company? Will it adapt to future needs? I could go on.
As you see, the term “productive developer” isn’t clear cut. A “fast” developer that creates complex, unmaintainable applications isn’t productive. Quite the opposite, in fact. I’d argue that a “productive developer” is one who builds applications the right way, in the most efficient manner possible. In other words, productivity = speed + quality.
The next logical question: What makes a “quality” application? Is it one that delivers on the specifications? I believe it goes far beyond that. A quality application is one that’s built for both the present and the future. It adapts to changing technology, solves the user’s long-term needs, grows with the business, and is easily maintainable.
So, how can developers build quality applications? It starts with an understanding of modern web development principles. These principles help developers create successful applications–those that meet their user’s present and future needs, and adapt to the ever-changing tech trends. While this isn’t a comprehensive list by any means, here are 7 important principles of modern web application development:
Principle #1: It’s all about the user
Over the years, the web has evolved. Tools and methodologies have changed. New devices have emerged.
However, one development principle has remained–and even become more important–throughout the years: It’s all about the user.
The problem is, this key principle is too often lost in the shuffle. Sometimes developers get wrapped up in the latest and greatest technology. Other times they’re forced to meet a tight deadline and have to rush through the project.
How can developers put the focus on the user? Before you start any development project, ask these two questions:
1. Who wants this?
It’s an obvious question that’s often overlooked. Who is asking for the web application? Is it a customer/prospect? Or, is it someone who believes that users need it? As explained below, the answer to this question can be the difference between a failed project and a successful one.
“Develop with the user in mind,” says Shayne Sherman, CEO of TechLoris. “This may seem obvious but this doesn’t just mean think about what they want. Figure it out. I’ve been with companies where we spent months developing something the marketing team wanted only to deliver it to the customers and find out they don’t want it at all. Always show prospective features to a subset of customers and get their opinions before you invest time and resources into the development.”
2. How will it be used?
It’s essential that you never lose sight of the main goal: Providing a great user experience. To provide a great experience, you must approach development from the user’s perspective. Ask questions like: Who is using it? What problems are they trying to solve? How will they use it?
Principle #2: Security is not a feature
A recent report found that 94 percent of web applications suffer from high-severity vulnerabilities. Even worse still, the vast majority of web applications tested suffered from common vulnerabilities like Cross-Site Scripting, SQL Injection, and others.
Consider that for a moment: Most business web applications suffer from widely known, yet preventable security vulnerabilities. We’re not even talking about new threats. These are vulnerabilities listed as a top security threat for over 10 years running.
Why does this happen? While the reasons vary, one issue is that many developers still take a cavalier approach to security. They treat it like a feature they can just add at the end. The fact is, that’s not how modern web application security works. More than ever, security must be built into your web applications from the very start.
“Security is too important to neglect till right before release or even after release,” says Nazaryan. “The design and architecture of the application should include all the security aspects according to the established requirements and standards. This way you’ll avoid any financial and reputational costs associated with vulnerability discoveries, exploits, data losses, or downtime because of your sites getting hacked.”
Principle #3: Tools are your friend
We’ve seen major growth in development tools recently. Developers have access to libraries, frameworks, and templates. They can use GitHub, IDE’s and low-code development platforms. Tools like these are quickly becoming a necessity to the modern developer.
We can boil it down to a couple of reasons:
Web application development is more complex
In the past, application development had more of a specialized focus. Programmers often focused on a single language for their development.
In other words, web application development is quickly becoming more complex. It requires an ever-evolving skill-set. Tools let developers bridge this skills gap–helping them accomplish tasks they couldn’t do on their own.
Developers are under more pressure to move quickly
Developers are under more deadline pressure than ever. Businesses want their applications delivered quickly–without sacrificing function or security.
In many cases, these demands are physically impossible using manual coding methods. As a result, more businesses are adopting development tools to speed up the process.
Principle #4: Applications have a need for speed
Over the last few years, we’ve seen the need for application speed increase–driven by two major factors.
First, web users have become increasingly less patient. According to these statistics, humans now have shorter attention spans than your average goldfish. In fact, from 2000 to 2015, attention spans dropped by nearly 4 seconds.
The declining attention spans comes at a time of rapidly increasing data. Modern applications must handle more data from more data sources than ever before. If not properly optimized, this rise in data can lead to slower applications–which will drive away users.
Second, page speed is good for business. Google spearheaded this trend when they announced that they used page loading speed as a ranking factor. Slow pages get penalized in search results.
What does this mean for developers? Web application performance optimization is quickly becoming an essential element of the development process.
“Your websites must be blazing fast,” says Bryan Osima, CEO, Uvietech Software Solutions Inc. “This ties in with the mobile-first context, again. Mobile data access is not always the most reliable, and sometimes can be expensive. As such, any modern web developer must highly optimize their websites for speed and reduced data consumption.”
Principle #5: When it comes to architecture, think long-term
The emphasis in development these days revolves around the user experience. As a developer, you must give the users well-designed and easy-to-use applications, or risk getting ignored.
But, don’t get so caught up in the interface that you forget the most important part of an application: The architecture. While application architecture might be invisible to the users, the impact that architecture has on your overall application is enormous.
For instance, architecture impacts security, maintenance, flexibility, scalability, and more. Good architecture may take more time upfront, but it’s an essential part of building long-lasting applications.
How can you approach architecture from a long-term perspective? Here are a couple of ideas:
Stick with proven technology stacks
Developers love trying the latest and greatest framework or tool. There’s nothing wrong with this…as long as they’re not using it for their next big project. While it may sound boring, stick with proven technology stacks when creating enterprise web applications.
“There are thousands of web frameworks and tools out there,” says Adham El Banhawy, React Developer at Best Response Media. “However, many are poorly documented or not maintained well (i.e. they receive little to no periodic updates). When starting a project, instead of going for what’s hot and new, go with what’s well documented and has an active community of contributors or even big companies (like Google, Facebook, Adobe, etc.) providing official support and updates.”
Build for growth
When planning your application architecture, look beyond the initial requirements. What happens if you need to add more features in later? What happens if you need to switch to a different database or server? What happens if you need to support more users than you think?
“Think ahead about any possible growth of the application or the number of its users,” says Nazaryan. “Is the product ready for that? What if suddenly a traffic surge floods the site or what if users exceed their storage resources? What if the web app needs to be deployed on the second server located on the other side of the globe? Making architecture scalable greatly reduces ongoing maintenance and development costs and does not make the app or service slower nor hinder its growth because of technical limitations.”
Principle #6: Separate concerns within your applications
I remember back in the day when developers used a monolithic approach, building every feature directly into their application. The big problem with this approach: Maintenance. A change to one area might break other areas. Over time, the applications became unmanageable.
These days, modern architecture calls for a separation of concerns. For instance, we’re a big proponent of the n-Tier architecture approach, which separates the application into layers. The advantage with this approach: It lets you maintain and enhance each application layer separately.
For instance, suppose you need to make your applications responsive for use on mobile devices. Or, suppose you want to update your application’s look and feel. n-Tier architecture lets you replace the presentation layer without touching the other layers. As explained below, this keeps your applications flexible and helps you adapt to changes as needed.
“People are fickle,” says Sherman. “Their tastes change and what’s considered modern on the internet changes just as fast. You don’t want to have to rewrite your entire application whenever tastes change. If you keep your display logic and your business logic separate, you can whip up a new interface to keep up with the times while the underlying logic stays the same.”
Principle #7: The only constant is change
Technology is always evolving. As developers know, this is both a blessing and a curse.
On one hand, application development is constantly advancing. New libraries, tools, techniques, and frameworks appear on a regular basis. These advancements lead to better application features and more efficient development.
On the other hand, new security vulnerabilities are constantly emerging. A previously secure application may now have a glaring security hole. It’s the developer’s responsibility to keep their applications up to date with the latest security standards.
In other words, modern web applications are never really “complete”. You can’t deploy an application and forget about it. As explained below, modern developers must constantly update their applications to adapt to changing trends and security standards.
“Web applications, in particular, are prone to external changes in the internet ecosystem affecting it, particularly evolving security standards,” says El Banhawy. “To ensure that your web application remains functional, secure, and competitive in the future, you must always try to improve it and adapt to external changes affecting your app quickly.”
These are just 7 principles of modern web application development, but the list could certainly be longer. Would you add anything to this list? If you would like to add anything to this list, I’d love to hear it. Feel free to share in the comments.