Client applications

Web apps

Javascript libraries

For the better part of the last 20 years, the job of software developers have slowly become more complex. Software construction, once the domain of developers focused on writing algorithms to process data in batch – or perhaps even some straightforward user-facing tools, has now become the domain of (even simple) applications that consist of several languages, many tools, and numerous platforms to test and validate. This complexity gets in the way of delivering value to customers, and it appears to not be getting better anytime soon.

This complexity is especially seen when developing client applications, such as web apps or mobile apps. Let’s take a look at your standard line-of-business web application…a dozen or more Javascript libraries or jQuery plugins, error logging and handling libraries, ORM libraries, integrations with a half-dozen different web services, and several languages to think about (C#/Java, JavaScript, HTML, CSS, template languages, maybe some SQL)…oh, plus all the tooling required to build and maintain it such as source control, build system and scripts, test automation tools, and more: see here. When we actually get to testing it, there are a myriad of possible clients to consider. Multiple browsers on multiple platforms across multiple versions resulting in a ridiculous number of possible clients. Developers get mired in this complexity and it frustrates their customers. But this is the bar that is set today for constructing software. And it costs time and money to work through this complexity.

The good news is that it’s not all an uphill battle. Developer tools are pretty good overall, even though there are many of them. Options are good, right? Connecting systems together is easier than ever – everything can speak HTTP. Languages are advancing, especially on the server side, and development tasks that used to take hours take minutes now. There are software scaling models and tools that actually work. It’s not easy, but with the right applied knowledge, developers can build applications that can support millions of users. Still, these things that are “easy” require a vast amount of knowledge to get right.

So what can be done? The job of a developer continues to become more complex, and constructing high-quality, reliable, and scalable applications for a vast array of delivery channels has become the domain of highly skilled professionals. These professionals need adequate care and feeding to manage the complexity that they must deal with on a daily basis. Businesses, from small to mid-market to enterprise, are most often simply not equipped to provide the right environment to manage the complexity. In today’s world, the best option is to find a partner who can manage this complexity for you, and provide the right environment for the professionals who must and can deal with what developers face every day. A great software development partner will collaborate with you to focus on business strategies to grow revenue and manage costs, and keep you away from the daily drudgery of dealing with modern software development complexity.

Share this content: