mrc's Cup of Joe Blog

Join us in exploring the world of modern development, evolving technologies, and the art of future-proof software

Application architecture: Ignore at your own risk

EducationI’ve noticed a disturbing trend in the world of business web applications. It seems that emphasis is shifting away from application architecture and shifting towards application design. These days, flashy interfaces beat out well-built web applications.

Why is this happening? I recently read an article over on techrepublic.com that highlights a major factor driving this trend: End user’s expectations are rising. They expect enterprise applications to be as well-designed and easy to use as the apps and tools they use every day. After all, if their enterprise applications don’t meet their expectations, there are plenty of other web services they can use.

Now, I get it. I understand the problems this creates for businesses. But, in the rush to please the end users with well-designed interfaces, let’s not forget about the most important aspect of business applications: Architecture.

For business web applications, architecture is infinitely more important than design. While application architecture might be invisible to the business users, the effects of application architecture are clear as day.

Let me try to highlight a few tangible benefits of good architecture, and help you understand why ignoring it might be the worst mistake your business can make. To help drive this home, I solicited feedback from a few experts in the field of application architecture. You can find their responses below, along with 5 big reasons why application architecture is so important.

Good architecture is more secure

Have you noticed an uptick in security breaches in the last year? While some are caused by human error or weak passwords, many are caused by architectural vulnerabilities. That’s right, weak security is one of the biggest problems of bad application architecture.

“Application architects probably have more impact on an application’s security than anyone else,” says Rohit Sethi, VP of SD Elements. “A single architectural decision can have major ramifications on how secure an application is inherently, and perhaps more importantly how expensive it is to fix a vulnerability.”

Sethi goes on to share a cautionary story on the value of good architecture: “I once reviewed a web-based accounting application where the developers decided to implement their own JavaScript presentation framework with a service-based backend. In order to speed up performance, the JavaScript framework was responsible for making all authorization decisions. The development team was horrified to find out that it was trivial for attackers to bypass JavaScript security controls and access the backend services directly. This effectively meant anyone who could reach their web server could perform any accounting activity – even without credentials. Their architecture made it very difficult to fix because it effectively meant changing the way every transaction occurred and sacrificing at least some of the JavaScript performance benefits on which they marketed their software. The fix was a very expensive, multi-year effort.”

Good architecture is easier to maintain

When building or buying new business applications, look at long-term value over short-term cost/effort. Sure, purchasing a well-architected system may cost more initially, or building a web application right the first time may take a bit longer up front. But, it saves time in the long run. Maintaining a well-architected application is far simpler, and requires much less time than a poorly-built application.

“Maintaining a badly designed system is very man-power intensive and problematic,” says Andreas Huttenrauch, Managing Director of Globi Web Solutions. “The total-cost-of-ownership (TCO) can mushroom out of control very quickly, and is often a side-effect of initial savings in development.”

Good architecture adapts to changes

While everyone enjoys making predictions, does anyone really know what the tech landscape will look like in 5 years? No…which is yet another reason why architecture is so important. A well-architected application adapts to changing technology trends far easier than its poorly-architected counterpart.

“A web application designed today needs to to be built for the needs of tomorrow,” explains Tyler Wassell, Software Development Manager here at mrc. “Applications must not only meet immediate business requirements but also be ready to scale, deploy to cloud environments, and be accessed from any location or device. As business needs evolve, web applications must quickly adapt without wasting the time and money associated with new software upgrades and replacement.”

Good architecture scales with your business

Well architected applications grow with your business. Oftentimes, businesses make the mistake of building applications to fit their current business size, while ignoring scalability. When their businesses grow, their applications cannot grow with them. As you might imagine, they’re forced to create new applications.

“If a system is not designed to scale, it pretty much has to be re-written from scratch to work in a multi-server environment,” explains Huttenrauch. “Usually scalability is an urgent requirement, so the time to re-write can have massive negative impacts.”

Good architecture saves money

When you boil everything down, good application architecture saves money, and lots of it. Poorly-built applications are money pits, requiring more maintenance and enhancements. On the other hand, applications built on good architecture are far cheaper to maintain and enhance.

“We have a philosophy at DEN that helps us keep our software flexible: I call it, ‘Architecting for Ambiguity,’” explains Ross Lambert, System Architect for Demand Energy Networks. “From day one, for example, we did not assume we were only writing software for our own hardware (a large-scale energy storage system), although that was the specific requirement. Instead we asked, ‘How can we design a system that incorporates new devices and protocols easier and faster than it has ever been done before?’”

Lambert goes on to explain how this decision saves so much money for their company: “It turned out to be a good question to ask because as our own system evolved the hardware design had significant changes and we had to continue to support legacy models in the field, too. Our ability to add support for our own new devices not only enabled us to pivot faster as a company, but saved significant software development costs.”

Wrap up

As developers struggle to meet end user’s rising design expectations, they must not lose sight of application architecture. Even the most well-designed application will waste time and money for your business if it’s built on bad architecture. Before you begin your next development project, or purchase your next business application, remember one thing: Ignoring architecture is a mistake your business can’t afford to make.