How to keep developer interested in Enterprise Application Development?
Enterprise Application Development has been in the realm of Application programmers who leverage operating system and one or more platform technologies (database, batch processing, reporting, application server, integration, etc.) to build the application.
Consistently for the past several decades, application development paradigm has been focused on
- Reducing the lines of code to be written by the developer - Higher level programming languages, Eliminating plumbing code, new framework libraries, etc.
- Reducing the complexity in implementation - Evolving Open standards reduces integration complexity, specialized platform technologies (not just one database or one UI framework, use case specific choice of platform technology)
- Reducing need for developer - Model driven architecture, code generation from models (Though both are not closely related)
But with more and more business processes needing IT systems to execute and evolution in technology helping in better IT system implementation, the interest level of developers in enterprise application development has not reduced nor that pool diminished so far except for very legacy technologies.
Let us look at few trends in the last one decade and where the developers are going…
Developer - Platform Technologies
The last decade or more, while technical prowess has helped create new enterprises and these enterprises did not find the technology of the previous generation suitable for them. So they created the platform technologies (starting from Hadoop, Kafka, Spark, KuberNetes, NodeJS, Angular and so on.) to build their technology driven enterprise and platform technology development has become more attractive for the developer. The enterprise application development on this platform is valuable but from a developer perspective working on platform was more preferred than application.
Open sourcing of these platform technologies, creates a new ecosystem of companies to develop and support these technologies, giving developer more opportunities on platform technologies.
Developer- Start-ups
With access to technology (from open source & cloud) and capital, entrepreneurs with new business ideas are able to create start-ups purely with technical strength. These entities are paying premium for the developer talent to propel their business.
Developer - Product & SaaS
A product company provides different set of opportunities for the developers, like working on algorithms, data structures & processing, and user experience development. With SaaS, the developers have further opportunities in multi-tenancy, scale management along with serving global customer base.
Developer - Business User & Citizen Developers
Shadow IT has been in Enterprises always with earlier Notes and then later Excel being the most used platform for app development by tech-savvy business users. Many COTS products also exposed configurability and programming through domain specific language, which was oriented towards business users.
Recently, new concepts like enabling business users to develop application (with enterprise guard rails), Citizen developers have come up and Low Code/ No Code technology vendors are gaining popularity and adoption. In the Low code environment though there is role for both professional developers and citizen developers, but with platform largely abstracted and focus only on business logic. The application developers likely to feel that tools available to them are limited.
Where is the developer pool for enterprise applications now?
Access to right talent for application development to traditional enterprise is reducing, with Start-ups, Cloud-native, open source and product companies being the preferred destination. The enterprise are adopting SaaS to reduce need for application development and leverage low code platforms to enable the business users & citizen to amplify their potential to use technology to solve business problems, it is in early stages.
There are several unique characteristics that the application developers & architects bring to the table while working with business in creating application like design patterns which are taught as first principles in programming. What percentage of enterprise application development needs these through breed developers and what would be impact of that in medium to long term for the enterprises if they have shortage of them, is too hard to predict?
In the technology driven world, every business/ enterprise need to look how technology is helping them differentiate & run business and have a clear plan of managing the technology and the talents to work with these technologies.
We used to have developer, tester, build engineer, service engineer, support engineer etc.. roles. Now... the new age developer need to do all above and one should leverage tools, frameworks and automation to be able to perform