Back-end, Front-end, Middleware, Sideways Developers … But Why?

US News & World report named “software developer” the number 1 job for 2018. Growth in demand for software and application development skills is a trend that’s expected to continue as organizations in every industry transform and optimize with better software for their team members and customers.  With the convenience and reach of mobile apps, the applicability of big data, predictive analytics and growing emergence of artificial intelligence and machine learning, there is no end in sight for the ongoing need for more developers.

Given this increased demand, software development is an attractive and lucrative career choice. Top companies are clamoring to reel in the best talent to design and deliver their applications so they can gain a competitive advantage.

But the current state of how programmer jobs are posted and developers are recruited has an interesting quirk. Because application development has become more complex and fragmented over the last few years, hiring managers and recruiters must request very specialized types of skills to fill their job postings. It’s to the point where the architecture of applications to be built must be determined before recruiting the technical doers. It wasn’t always like this.

Application development requires loads of resources

We’ve seen all the job listings for front-end developers, back-end developers, database developers and the elusive full-stack developers that can do it all (er, at least, so goes the rumor). The list goes on, and it’s becoming clear what’s happening to modern software development: It’s become so multifaceted that it takes a small army of specialized programmers all collaborating to write a single application. There is a user interface, so you’ll need front-end developers. And even there, you might have a UI designer while other front-end developers perform the coding. Back-end development might consume multiple developers as well if there are underlying integration requirements, APIs, database access and data security.

Remember when you could just get one good developer to build all of this? It wasn’t always quite so intricate. What happened? What caused this? Here are a few thoughts on how we got here:

  • The web: By its nature, there is a diverse set of “client” software options and “server” programs that must interact with each other.
  • IT Security: Locking everything down to stay ahead of hackers and thieves has sped the obsolescence of many software technology cycles.
  • Scale and performance: You want 15,000 concurrent users? No problem. And they can all hit the database at the same time. But somewhere there was added complexity in the architecture and deployment of the software to accommodate this need.
  • Form factors: responsive user experiences that bring the capability of power-user workstations to tablets and smartphones in the field translate to more knotty considerations for application developers.

That’s just a few. But the bigger issue is that the diverse and rapidly changing technology stacks that developers use to build today’s applications haven’t been designed to optimize the longevity of existing application code. The developer environments and coding languages were not built to optimize the overall business cost-of-ownership across both the building and maintenance of applications. Got another new user experience or form factor to adopt? The software discipline answers new challenges with new scripting and coding languages and another workbench to author them. Consequently, you have nearly 800 to choose from. The costs of juggling just a dozen within an IT organization are staggering.

Agile and other development methodologies haven’t saved us from this insidious, self-inflicted and masochistic software archi-torture. The industry has gradually transformed from contemplating the mythical man-month to the enduring mythical small-army-month.

The fact is, there’s no silver bullet or one-size-fits-all approach to application development because the sheer quantity of disparate systems and applications in use today prohibits that. The varied range of development skills found on technology job boards is incredibly difficult to find in a single developer.

Even a full-stack developer, who’s familiar with all layers of software development, is a bit of a misnomer. Full-stack developers have a functional knowledge of a lot of languages and can take a concept and turn it into a finished product. But they certainly are not experts at every programming language or task required of an application team. That’s just too much to juggle nowadays. Yes, you can learn and understand the computing concepts involved in the whole stack, from database concepts to user interface design principles, but to stay current on all of the latest languages, frameworks, open source packages, integrations, protocols, patches, engines, versions and templates means you have no time left to understand what your employer is actually trying to accomplish with the software. But that’s OK. With your resume chock full of every techie acronym under the sun, if things don’t work out you’ll land on your feet with more salary somewhere else, right? Keep reading; change is coming.

High-Demand Programming Skills

Comprehensive application development skills are difficult to find in the marketplace and require significant time to learn since so much of what is learned in a programming language comes through experience and trial and error. It’s why companies looking for software developers are asking for a skillset that is scarce at a minimum and sometimes impossible.

Almost every programmer job you’ll find in a quick search features multiple language expectations. Consider some of these common “requirements” you will find around the internet job boards for all types of coders:

  • Ability to use one or more development language (C++, PHP, HTML, etc.)
  • Knowledge of coding languages (C++, Java, JavaScript) and frameworks/systems (AngularJS, Git)
  • Significant experience with one or more software languages including Java, JavaScript/NodeJS, Python, Ruby, Go, Scala
  • Detailed knowledge of CSS, HTML, CMS, JavaScript, jQuery, PHP, Gulp, git, Drupal and WordPress

While such skills demonstrate project flexibility and versatility, companies’ specific recruitment of programmers who’ve mastered dozens of languages is becoming outdated. Too many IT teams already live with the ongoing maintenance of a pile of varied applications and systems that were developed over a span of time by various team members using programming languages most comfortable to them, that may have differed from team member to team member.

These pockets of development expertise make it difficult to resource projects and maintain applications. Another casualty of companies continuing to develop in this manner is losing their business agility. What if you could hire fewer developers, focus interview and selection efforts on vetting the depth of their conceptual design skills and not have to worry so much about candidates’ breadth of exposure to a half dozen or more languages? What if you didn’t have to assemble a small army of developers from different proficiency affinities (i.e. front-end, back-end) to build applications?

A More Productive Option

Low-code development platforms such as Visual LANSA enable faster and easier application development by automating the creation of software where possible and leveraging one powerful core development language to do all the rest. This greatly simplifies the IT skills search and management. Low-code platforms are relatively new, so virtually no one has the specific skills. But armed with the knowledge of any other coding language, a developer can quickly learn Visual LANSA and work on any new projects, maintenance backlogs and enhancements of applications.

There’s no waiting for that one person on your team who really knows Python or JavaScript to wrap up one mission-critical project so he or she can immediately switch over and make updates to a different mission-critical project. Simply assign any developer to any project without worrying about whether they have the right skills and acronyms on their CV to successfully complete the task.

Because there’s only one powerful development language in play, your entire roster of developers all become full stack developers – front-end, back-end, and everything in-between – who can build elegant and beautiful mobile, web, cloud, server and desktop applications.

While other companies are snatching up expensive software developers in bulk to acquire the most skillsets for all their application programming needs, a better option is investing in the right low-code development platform to simplify programming, resource management, expedite application development and maintenance and get the most out of your current team.

As more companies adopt low-code platforms for rapid application development, the number of job listings specifically seeking front-end, back-end, database and full-stack developers will become a relic of a bygone era. And who knows, maybe there will come a day when organizations confidently know the only application programming position they’ll need to recruit again is one that’s simply “Developer.”

Author:

Joe leads the global marketing team at LANSA, a provider of low-code software development tools. Joe started out his career with a series of computer operations and programming positions where he designed and built systems to optimize manufacturing production runs, manage large equipment and asset maintenance, optimize inventories, and consolidate multi-national financial ledgers. Joe’s 20+ year career has included technical and marketing leadership roles at GE as well as a series of small software technology companies in Chicagoland including Infogix, SmartSignal, Cleo, and now LANSA. His position at LANSA has him helping fellow programmers find productivity solutions to better maintain and build software applications.

Leave a Reply

Your email address will not be published. Required fields are marked *