Web application development has experienced a fundamental shift over the last 5 years. Mobile devices have exploded. Consumer applications have largely surpassed business applications in both capabilities and overall simplicity. Development libraries, frameworks, languages, etc… have evolved.
The fact is, development standards have changed, yet many companies are stuck developing applications based on outdated standards and technology. If they don’t adapt, these companies will only fall further and further behind as technology rapidly evolves.
The big questions: How has development changed? What rules must developers follow when building modern web applications? What current development principles will help ensure success?
To help you answer those questions, here’s a short list of guidelines that you must follow when developing modern web applications. Of course, if you’d like to add anything to the list, please do so in the comments.
1. Build for usability
While always important, usability has now become an absolute necessity. After all, user expectations have changed. They expect the well-designed, intuitive interfaces they receive on their smartphones and consumer applications. These days, users have options. If the application confuses the user, they’ll find something else.
“My approach has really had to change since I am building a consumer-facing set of apps,” says Alex Genadinik, founder and developer for Problemio.com. “Instead of focusing on the server and database, and optimizing them to scale, I had to shift focus on first, observing user behavior as much as possible, and making sure all the buttons and screen elements are A/B tested to ensure the best usability. So I had to shift focus from the backend technologies to focus very intensely and with great details on the front-end and usability. Because if there is no usability, the backend tech becomes useless.”
Now, usability is a vague term. What does it look like? More importantly: How can you build applications with good usability? Here are three steps to take that will help you improve application usability:
- a. Talk to users early and often
The first step towards usability: Understand what the users want. Talk to them throughout the entire process, not just at the beginning.
“Even though the time to launch has decreased dramatically, the competition in the web space has increased even more dramatically so the need to be efficient with development time is more important than ever,” says Michael Granados, Co-founder and the head of Product Design at Medko. “Talking to your users early is a very important step; it helps you understand what they want so you know what to actually develop. And talking to them often throughout the initial development process is equally important so you understand if you are interpreting their “wants” correctly in your product.”
- b. Develop in small, agile cycles
Miscommunication combined with long development cycles leads to disasters. Developers often spend months building what (they think) the users want, only to realize the users wanted something completely different. In short, it’s a big waste of time.
“In past decades, development cycles could be months, sometimes even years,” explains Granados. “Today, it’s not uncommon for new code to be pushed every couple of weeks. Quick development cycles help ensure that the team is focused on only the most important priorities so you can quickly begin testing features with your early adopters. Fast development cycles also prevent teams from wasting months developing a feature that nobody ends up using.”
- c. Measure Everything
Usability goes beyond simply asking your users what they want. You must also understand how they use the completed app. In this way, you will understand how to improve and modify the app going forward.
“Talking to your users is a great place to start development but once you understand what they told you they want, you need to use analytics and cold hard numbers to see if their behavior matches their words,” explains Granados. “There are many free and affordable analytics solutions available today and they can be configured into an app in just minutes. Measuring user behavior will give you indisputable data on whether or not your app is being successful.”
2. Plan for platform fragmentation
One of the biggest challenges facing developers today: Platform fragmentation. You no longer know how users will access your applications. Maybe they’ll use a PC. Maybe they’ll use a smartphone or tablet. You don’t know, and you can’t control it.
“In the past, IT could control application delivery platforms,” explains Tyler Wassell, Software Development Manager at mrc. “They could deploy one version of an application to a user’s desktop computer located in their network that ran an OS that they selected. Now, IT is faced with users who are working on remote networks, using their own PC, tablet, or smartphone running an OS that could possibly change tomorrow. To accomodate this dramatic shift and remain relevant, IT needs to adopt a web application development strategy that reasonably supports all of these devices, scales as the business grows, and prepares the business for inevitable change to both client devices and server architecture.”
3. Use APIs wisely
Application Programming Interfaces (APIs) are an important aspect of modern application development, as they let developers build applications that include data from other applications. However, APIs must be used wisely. Why? As any developer using the Twitter API over the last couple of years will tell you, API changes are often sudden and drastic, and can negatively impact your application.
“As more and more presentation logic is being moved to the client side (with Single Page Apps being the extreme) – business logic and data is more and more being consumed via web APIs preferably adhering to REST principles and using JSON for the actual resource/message format,” explains Ole Lensmar, co-creator of SoapUI, and Chief Architect at SmartBear. “As such, the same considerations and precautions must be in made in regard to these APIs being consumed from the client as from the server; error handling, timeouts, unexpected responses must all be handled pro-actively to ensure that the end user experience isn’t hampered by API changes or outages. This applies specifically to 3rd party APIs – which can change unexpectedly or not always work as expected; here it might make sense to hide them behind a facade API layer on the server which also allows for payload optimization and shared caching.”
4. Organize your code effectively
In the past, old procedural programming methods often resulted in large, monolithic applications. They were independent of other applications, and every function of the application was programmed into the code itself. As you can imagine, this structure created maintenance nightmares. These days, modern web applications avoid these issues using a design principle known as “Separation of concerns.”
“Separation of concerns is always an important development principle in any project,” explains Will Mitchell, Lead Developer at OnSIP. “Whether that means using a Model-View-Controller layout to separate business logic from display controls in a complex application, or just keeping styling in CSS, scripting in JS, and structure in HTML in more simple application, organization is key.”
5. Stick with well-established technologies
Developers love trying new things. They love experimenting with new libraries, frameworks, languages, tools, etc… (and they certainly have plenty to choose from these days). There’s nothing wrong with that. In fact, I think it’s a good quality.
However, it becomes a problem when developers carry that over into business application development. For instance, if you develop a new business application using a brand new language, you take a big risk. What if that language never takes off? Now you’re stuck with an application built on an unpopular language that may or may not work well with existing technologies. While experimentation with the latest and greatest technology is fine, when building business applications, stick with established technologies.
“In a nutshell, web application developers have to follow a technology which is widely implemented and not just ‘popular’ or ‘up-and-coming’,” explains Jeffrey To, Marketing Manager, e-Commerce and Web Strategy at Pureminutes. “This is because training, implementation and testing are all expensive and time-consuming processes and if you go with an “up-and-coming” code such as Django and Rails as opposed to the next “sure thing” in HTML5. The danger in choosing an unpopular code is that switching servers is problematic and troubleshooting requires more specialized sometimes non-existent expertise.”
Bonus: Open architecture is more important than ever
The importance of open architecture in this day and age cannot be overstated. Open architecture doesn’t lock your company into one vendor or product. It gives companies flexibility to choose the technology that best suits their needs. It integrates easily with other software and services. I could go on, but you can read all about the importance of architecture right here.
Simply put, closed applications and systems built on proprietary languages/frameworks are on the way out. Modern development efforts must focus on open standards.
Over the last 5 years, technology has experienced some of the biggest changes in history, many of which affect web application development. Companies must follow the guidelines listed above with their web development, or risk falling out of touch with technology. Would you add anything to that list? If so, I’d love to hear it in the comments.