Summary: As technology evolves at breakneck speed, it brings new opportunities and challenges to web application development. If businesses want to create lasting, successful web applications, they must address these challenges.
Let’s talk about web applications. I know it’s a vague term, so let’s quickly define it for sake of clarity.
Web application definition: A web application is a software application that is accessed through a web browser. This includes web-based reporting apps, BI, e-commerce, portals, accounting, and anything in between. Chances are, your business already uses and/or creates web applications to some extent.
Why are web applications so important right now? As the world becomes increasingly digital, more of your business moves to the web. As a result, your web application development process becomes a vital part of your business.
What does a modern web application development process look like? It’s all about speed and security. You must create secure applications efficiently, in hours/days rather than days/weeks. Those applications must be easily maintainable. They must grow with your business.
How does your development process stack up? Perhaps a better question: How can you meet these goals?
If you want a modern development process, you must first address a few common challenges that face most businesses. In this article, we’ll explore 7 of these challenges and explain why they’re so important to your development process.
Challenge #1: Standardizing your development process
If you ask 10 developers to build an application, you might get 10 different approaches. Sure, they might meet the requirements, but they’re all built using a different process. Imagine the maintenance nightmare.
Unfortunately, this is a challenge for too many businesses. They don’t have a standard development process. The result: This makes maintenance far more difficult and time-consuming than it should be.
A modern dev process requires a standard approach that’s consistent and easily maintainable. Every developer works the same way. The process is understandable and predictable.
“The main development challenge that face businesses in putting together their web application is standardizing their development process,” says David Pawlan, Strategist at aloa. “At a high level, this means building their development strategy to fall in line with their business goals and priorities, to build predictability into their development experience.”
Challenge #2: Speed
These days, speed is the name of the game. Developers are under more pressure to deliver solutions quickly–without sacrificing function or security.
“The biggest challenge facing web app development teams is limited time,” says Cathy Reisenwitz, Head of Content at Clockwise. “If time were infinite, teams could build every feature any customer or stakeholder requests, test every possibility before pushing to production, never have to create any technical debt, and always build for scalability. But time is extremely finite, and at the end of the day it’s a developer’s most valuable resource.”
How can you move past the development time hurdle? You have a couple of options:
- Hire more developers: If you’re facing a development bottleneck, the simplest solution is building your team. However, I realize this is the most expensive option, and most businesses can’t afford to hire a bunch of developers.
- Use software tools to get more out of your existing team: Over the past few years, we’ve seen major growth in the low-code development software space. One of the driving forces behind this growth is the whole “do more with less” challenge. Low-code tools help your existing team create web applications 50-80% faster. How? The speed boost is driven by a couple of factors:
- They eliminate coding in most projects: Most applications are built in minutes or hours, without code. More complex applications might take longer, and have the option to add custom code if needed.
- They reduce testing: Since low-code tools create use pre-tested templates and components, testing time is dramatically reduced.
However you choose to address the dev speed challenge, one thing is clear: The demand for fast development is only growing, and becoming a competitive necessity.
Challenge #3: Security
Cyberattacks are increasing, and the problem is only growing worse. Statistics show that cyber security incidents rise every year.
Wait, it gets worse: Research finds that 50% of web applications contain high-risk vulnerabilities. Most applications even contain common vulnerabilities listed in the OWASP top 10–a list of the most important web application security risks. These vulnerabilities are widely known and fixable.
Why do developers struggle so much with security, despite its importance? In my experience, it boils down to a few issues:
- No incentives for security: Peter Drucker is famously quoted as saying, “What is measured improves.” The problem for many developers: Security isn’t measured or rewarded.
- Short deadlines: Let’s take the last point one step further. Most businesses incentivize development speed, often at the expense of security. Developers rush through the project—ensuring it meets all the business requirements. But, this often comes at the expense of proper security practices.
- New developers in the workforce: New developers are stuck maintaining code they didn’t develop, and don’t always understand what a weakness looks like. The bigger problem: As explained below, most developers haven’t received a proper security education.
“Developing apps that will not be easily hacked and potentially create a backdoor into a company’s network is becoming more crucial in today’s environment,” says Richard Greenberg, CISSP, President, ISSA LA and ISSA Honor Roll and Distinguished Fellow. “The vast majority of developers received training and degrees from schools that minimally addressed information security in the curriculums. Thus, they are unprepared to build secure applications.”
Challenge #4: Bridging the talent gapWeb application development is becoming more complex. It’s evolving faster than ever. Developers need an ever-increasing, and ever-changing skillset.
The problem for businesses: Finding web developers with modern skills. Sure, they have developers to maintain their current systems…but those are often outdated. The skills you need for modern web app development don’t always align with the skills you need to keep the business running.
How do you find developers that understand security, integration, responsive design, etc…? How do you bridge the skills gap without hiring a dozen new employees? Here are two common approaches:
- Adopt development tools: Development tools bring modern skills to your existing team. For instance, suppose you have a team of COBOL developers. A web development platform will help those developers create web apps with a minimal learning curve.
- Set up training: There are plenty of online training options available for developers. Set up training classes for your team, or incentivize them to take training classes on their own.
“You need to have the right team in place or work with an experienced web applications partner,” says David White, Senior Project Manager at Best Response Media. “Developing for web apps is evolving faster than ever as new standards and developments are always occurring. They are becoming more complex, which means developers need an ever-increasing and ever-changing skillset. This makes bridging the skills gap very difficult and means businesses need to focus on obtaining and retaining talent. Once you’ve hired developers, you need to ensure you are training and nurturing the team to ensure they keep up with the industry. Putting in a learning plan that gives the team clear goals on the skills they need to learn and develop can help you overcome this.”
Challenge #5: Building future-proof applications
What’s the next big trend in web app development? What will the web look like in 10 years? How will web standards evolve? How many users will be using your web application in 3 years?
In essence, that’s the challenge of web application development. You must create web applications that meet your current and future needs…without knowing what those will be. After all, no business wants to create applications that will be obsolete in a few years.
How can you create future-proof web apps that scale with your business, when you don’t know the future? It all starts with architecture. Here are a couple of tips:
- Stick with proven technology stacks: Developers love trying the new, shiny framework or tool. There’s nothing wrong with that. Just don’t use it in your enterprise web apps until it has proven itself.
- Separate your concerns: We’re a big proponent of the n-Tier approach to application architecture, which separates your applications into layers. The advantage: You can maintain/enhance each tier separately. For instance, if you want to give your application a modern look/feel a few years down the line, you can do so without changing the entire app.
- Build for growth: Look beyond the initial requirements. What happens if you need to support more users than expected? What if you need to switch databases or servers?
“The biggest web app development challenge that we have is scaling,” Malte Scholz, CEO and Co-Founder of Airfocus. “As the number of your customers increases, so does the number of visitors to your website and web app and most of the time, a single server can’t handle all of that load. Instead of designing your software for a single server, make sure that it works on a cluster of servers. The service-oriented architecture will help you improve your scalability as you grow your app and increase the number of users.”
Challenge #6: Integration
More and more, business applications live outside of the firewall. They are more diversified than in the past. For instance, a modern business might use a SaaS-based CRM system, in-house BI tools, and host their website on the cloud.
While this improves flexibility, it creates a challenge. How do you tie everything together? The challenge for web developers is no longer building every feature into an application. It’s creating an application that can integrate with other applications.
“A key challenge for app developers is managing the complexity of integrating multiple systems with multiple business functions and being able to deliver those cost-effectively, on budget and on time,” says Oren Greenberg of Kurve. “Support is often required, and finding partners who are specialist enough to deliver on time, on budget and on brief is actually very tricky.”
Challenge #7: Balancing features with simplicityMobile apps have made life tricky for developers, as they’ve increased user expectations. End users now expect the same level of simplicity they receive in the mobile apps they use every day.
The problem: If your applications don’t meet the user’s expectations, they’ll find another option. If you’re building applications for customers, this means you lost customers. If you’re building applications for employees, you’ll start dealing with Shadow IT problems.
The challenge for businesses: Creating solutions that meet your employee’s high expectations.
“One of the key challenges in web app development is delivering an app that provides the most effective user experience and has the foremost essential functions, yet is easy to use,” says Ritesh Vatwani, Head of Operations at Zestard Technologies. “Furthermore, don’t expect your customers to wait in long queues to get their products verified. If your app takes even a second too long to load or the payment gateway takes too much time to respond, you might be at risk.”
So, how do you deliver web applications that meet your users’ already high expectations? While I can’t speak for every scenario, it’s a good practice to start dev projects with two questions:
- Who wants this? This may seem obvious, but it’s a question worth asking. Is it a customer/employee asking for a solution, or someone who thinks they know what the customer/employee wants? Talk to the actual users before you start.
- How will this be used? Don’t lose sight of your goal: Providing a great user experience. To meet this goal, you must approach development from the user’s perspective. Ask questions like: How will this be used? What is the user’s goal?
Finally, make sure you’re working with the users throughout the project. Create usable prototypes quickly and get feedback early on.
Now, I realize that UI design is a massive topic that I can’t possibly cover in this article. However, I bring it up because it’s a growing challenge for web developers, and cannot be overlooked.
These are just a few web application development challenges, but I’m sure the list could be longer. Would you add anything to this list? Feel free to comment below!