From Wikipedia: A software developer is a person concerned with facets of the software development process.
According to an IDC study (carried in 2014) there are 18,539,500 hobbyists and professional developers in the world. Now they should outnumber 20,000,000 and the numbers still grow. Not bad for a job that did not exist 60 years before. How many retired developers can you point out? Not many.However, we notice a huge demand of Java, Web and mobile developers and the gap between supply and demand is widening rapidly.
The need for more and go-fast-to-market applications for Web, Cloud and mobile have created numerous job vacancies for developers and the 20,000,000 developers are too few. Is this temporary or the gap will continue growing? More and more developers are entering the market but the Web is so greedy.
But why aren’t developers sufficient?
The main reason is certainly the tremendous need for new mobile and web applications, but other factors also play a significant role and enlarge the problem.
Not everyone can be a good developer, even if he is properly educated. Special skills are needed too.
The ‘short’ professional life of a developer removes quantity and quality from the market.
Frequent changes of programming environments, turn seasoned developers into veterans.
Need for as-fast-as-possible go-to-market solutions, leads to poor and less productive code which in turn needs even more developers for maintenance.
Developers’ job appears not so attractive to women causing only a small percentage of them to involve in the IT sector as software developers.
But the most important of all: Software technology cannot keep up.
OK, maybe huge demand explains everything, but we can’t do much about that. We couldn’t encourage and turn all the talented people into developers, even if educational systems were capable of doing that. We do need doctors and engineers and other professionals too.
Is the slow evolution of software technology more critical?
Think of the ‘plumber problem’. We always look for a qualified plumber and we never find one. Why? Money is good and plumbing is not theoretical physics. Because of the very old and inadequate plumbing technology as well as the limited theoretical and professional background of the plumbers. Sorry plumbers. Are developers becoming the plumbers of the 21st century? Never adequate for the job, regardless how many there are, if they continue to use current software technology.
And what is the current software technology? It seems paradox but it hasn’t changed dramatically over the last 40 years. Development process still consists of design, implementation, testing and deployment as always and at the same time methodologies are quite the same. Although the web has changed the world, the developers have remained almost with the same tools in their hands. The same more or less architecture, same methodologies and modeling, and in the bottom line a programming or scripting language, two, three or more tiers and a database SQL or non-SQL, distributed or in memory.
Ok, I admit that I provocatively oversimplify and intentionally ignore unbelievable advancements such as agile methodologies, web-services, low-code development, functional, procedural, OOP programming and more.
Sorry, I don’t notice any revolution. Software technology has been left in the early 80’s and IT technology is moving forward to 2020. IT technology (see Cloud, Mobility, IoT, Big Data and more) obeys the enhanced Moore’s law while the software technology follows the Murphy ’s law.
Why is that? I believe that Universities and technology innovation labs of the IT giants, are far behind the market and the demand of fast and low-cost solution development. Numerous apps are developed nowadays without any system software infrastructure and platform oriented system design. As a result applications need unlimited time for debugging, fixing, updating and maintenance. Development process remains mechanical through boxes, diagrams, flows and decisions and is aided by / assisted with some (really) smart tools. It’s not enough. We have overlooked software theory for some decades, because we were impressed by the fascinating way things were done with minimum effort, but now we have to dive in theory again. Maybe software system architects should learn from Biology how to build systems which are able to grow smoothly and can adapt to any environment without being reconstructed over and over again. Systems able to self-adjust and grow.
Software technology should keep up. New platforms should be the next challenge. The goal is lower code, fewer developers and more sustainability.