When in a company producing software, one of the programmers is left without a project, it is commonly said that he is “on the bench” (more like at a football game than on a school bench). In such moments, the company often makes announcements on special groups for the industry (e.g., on Slack) or on social networks, informing other companies that they have a person they can “rent”. In this way, companies try to support each other’s efforts. The developer doesn’t get bored and doesn’t look for another job opportunity, which keeps everyone happy.
With an announcement of this type on a popular social network, one of the software houses wrote they needed help for their project in the form of an experienced developer. Many companies came forward and offered their developers, who were currently without projects. Nothing would be strange if this company did not get an offer for the same programmer from several different of them, for entirely different rates.
This moment made me think again about how people who (like me) dedicate their lives to technology have become an “item” that is traded (and in a horrid way). Not to mention that this mindset of mutual “help” is harmful to the entire information technology industry.
I could not understand this kind of behavior. My first company (as well as all subsequent projects and initiatives), and the current place where I have a great joy to co-create, were made out of a love for technology. The following years only strengthened this feeling in me. However, technology has never been more important than the man himself, whom it should serve by definition.
A childhood fascination with technology
As a child, I was fascinated by computers. I loved spending time with my Commodore 64, exploring its capabilities, learning to use applications, and after a few years of using it – write my first lines of code to create a text-based game at 12. Computers were not only my interest, but I treated them with true love. Over time, this feeling extended beyond the machines to embrace technology. And today, I believe that technology can change our world for the better (but I’m not a naive optimist who doesn’t also see its dangers).
In my professional life, I have had hundreds, if not thousands, of conversations with programmers. Like me, the vast majority spoke of their experiences as young people.
Looking at the Developers Survey conducted by Stack Overflow, we can see that more than 50% of the respondents wrote their first line of code between 11-17 years old and 14% between 5-10 years old.
Most would never want to be in a company that treats them like objects. And those who did end up in large corporate “harvesters” (primarily when they were young) mostly regretted being there for so long.
According to a report by Haystack, as many as 83% of programmers currently suffer from burnout. Among the main reasons for this, they cited heavy workloads (47%), inefficient processes (31%), and unclear goals and objectives (29%).
Not surprisingly, some have taken a turn in this direction. Attracted by the higher-than-average salaries in the industry allowed them, at least in their minds, to enjoy life and prestige.
Being a programmer is a responsibility.
Programmers are primarily passionate people who have devoted an incredible amount of energy, part of their lives, and a bunch of their dreams to become specialists who, thanks to technology, can influence the world around us.
More than 70% can boast a university degree. Most developers (40%) are 25-34 years old, while those in the 35-44 age group are only 18%.
The work done by developers is much more than just “coding”. Very often, we do not realize how difficult and complex application development is and how many different factors affect the success of a project. Each piece of code created by professional developers is a huge responsibility. Not only for the technology itself, but mainly for the fact that this code is responsible for the functioning, for example: of entire businesses (people are working in companies for whom the software is created, on which later companies base their operations or their customers who use these solutions), ecosystems, and even for human life. I wrote about this in one of my articles titled.“When Software Decides Whether You’ll Survive“.
So there is no denying that the IT industry enjoys high salaries mainly because of complexity and responsibility (but to be honest, also because of the lack of specialists). It has come to this that in the world of startups, the main programmer earns more than the business founder – about 80 000 – 140 000 EUR per year.
High salaries cause the industry to attract more and more followers, who (as in other industries) do not always get into it out of passion or thanks to their skills. Because of this, you can more often find generalizing and very hurtful opinions about programmers or their work.
Career change as a way to deal with the lack of specialists
The day after I read the announcement mentioned above, I was supposed to have a meeting with one of the companies that helps people with no previous programming experience enter the IT world. For many years I had believed that such companies were terrible for software quality, the market, and the way specialists are educated.
It may sound brutal, but I don’t believe everyone can become a software developer or architect. Exactly like, not everyone can become a professional singer, violinist, surgeon, astronaut, footballer, or architect. It doesn’t mean you can’t learn a programming language or build algorithms because I think it’s the right way to go for everyone.
As in any demanding profession, in addition to dry facts, you need a set of skills. The earlier we start our education in how algorithms work and how to build software, the easier it is to gain the required experience. Companies engaged in a people career change (I will not say all because it would be unfair) are often tempting people with ads like: “at any age, from any person with any set of skills and knowledge, from any industry, we will make a developer and good software architect”. This is not true. At most, they will teach the basics of the language. That’s all.
Of course, it doesn’t change the fact that even personally, I know a few people who managed to go from other industries to IT and are excellent professionals. But these people have not only dedicated many years of their lives but also have very well-developed analytical thinking and problem-solving skills.
The cost of even short courses that allow change career are horrendously expensive. But will a person, after an 8-week course (because such are also sold), be able to do as much as a knowledgeable person in software engineering who has spent years honing his craft? Where is the goal? Where is the direction? Aren’t we doing these people a disservice in this way? Aren’t they becoming “cogs in the machine” that can/need to be replaced quickly?
If these companies (and I’m not saying that some don’t) were able to pick out late talent from the crowd, I would be a much more prominent proponent of this type of training.
However, I didn’t want to be prejudiced, so I decided to meet with the previously mentioned firm. Perhaps they could convince me that I was living in mistake (after all, I am not infallible). Unfortunately, it turned out that instead of a partner, I met with a typical “protein interface” salesman. It was a company preying on people who wanted to re-brand themselves, telling them that a light dive into the technology and the fast track is much better than a factual approach to the topic. They called it a philosophy to justify its behavior by creating its own educational standards.
The whole conversation was dressed in aesthetically pleasing sentences. Still, in the end, after a few tough questions, the discussion could be boiled down to the words: “Adam, why overpay for better-educated people when I can give those to you almost for free, and then you can sell them to your customers and make a fortune”.
Sitting there, I wondered how other companies, who help people change career paths and care about them, must feel when they hear such dire words from rival companies. How do those who take an ethical approach feel when they have many competitors around them who act this way? And how bad must people feel who have spent their life savings on such courses?
Shortage of specialists
The considerable demand related to digital transformation, digitalization, and the rushing forward economic development, has constantly been increasing the need for specialists for years.
Software Development Association Poland estimates that the market lacks even 250-300 thousand programmers.
Due to the considerable demand, many companies stopped putting people at the center and started focusing on numbers. Their main task was to acquire as many specialists as possible from the market. It was not always connected with real needs but more with securing their position. This was done by both – product companies and large outsourcing conglomerates.
In this market situation, some companies have found a new business model. They look for people and internally teach them programming languages. After that, they rent those people to outsourcing companies, which lease them to their customers or other software outsourcing companies. This creates a long chain.
A similar situation can be seen in the case of two crashes of one of the aircraft manufacturers (I deliberately omitted the name). The cause of the accident was most probably defective software of the MCAS system.
It is said that the reason for the defect in the aircraft was pressure to introduce a cheaper solution. The software was produced by a company that hired temporary workers from India at $9 per hour. At the same time, the manufacturer was firing its experienced engineers and experienced contractors, resulting in a loss of control over the software being developed. The manufacturer prepared the specifications, and the company, as mentioned earlier, was supposed to create a working program according to them. Several rows of employees sitting at desks were working on the code. But software that was delivered to the company did not pass even the simplest tests, and the code was of very poor quality.
Despite the huge number of reported irregularities, it was impossible to catch them all. The decision to replace a “finite number” of specialists with an “infinite number” of unqualified personnel was dramatic.
As another curiosity about the responsibility of manufactured software, I would like to point out that the police caught a 13-year-old Japanese schoolgirl inserting a link to a page with an infinite loop of alerts in JavaScipt. Similar to this one:
while (1) {
alert("!");
}
There’s even a project on GitHub dedicated to this situation.
What is worth changing in the approach to programmers?
First, let’s give room for development and stop looking at programmers as extended interfaces of the computers they work at.
Being a software engineer is not only about delivering the code. It’s a complex and complicated role where you must look at millions of different contexts and know how to put them together. Of course, let’s not be ruthless because you can’t achieve this from the first day of work.
The work of a programmer is associated with the constant, exciting gaining of knowledge, where even trivial problems can bring sleepless nights. The profession is not easy, and you can only succeed if you spend countless hours perfecting your craft. This can be done by practically overcoming challenges and obstacles during the software development itself, as well as by going beyond just the coding aspect and focusing on delivering value (e.g., business or social).
Companies that hire developers should focus their attention on:
- clearly define development paths (we have it at Inwedo, GitLab also has one),
- building development programs,
- create an environment to encourage each other to develop,
- and invest in training budgets (and urging people to use them).
We shouldn’t allow a situation where developers don’t develop on their projects because it only takes a few months for the market and technology to change.
Let’s focus on training specialists, let’s take care of them, let’s help them in their growth, and let’s not treat them as an “asset” that we can sell or get rid of when projects will end (unfortunately, this is how big companies operate when teams of a dozen or so people are dismissed at the end of a project). Let’s not allow a situation where developers are responsible only for writing code without considering its value.
Software companies that put people at the center of their business can boast a highly developed staff that integrates strongly with their workplace. As a result, more and more customers see huge benefits from working with them.
What in case of lack of specialists
We should also remember that programmers are not always necessary for every job with technology – leave those for challenging tasks.
PWC has published a list of steps companies undergoing digital transformation should take. These are:
- create a strategy that takes a holistic view of the current situation,
- launching pilot projects – with the understanding that not all projects will be successful,
- precise definition of needs and resources,
- data analysis and collection as an effective key to Industry 4.0.
- building the right culture and growing it beyond company structures,
- creating an ecosystem with comprehensive development of product and service solutions for customers;
Assuming that we should launch many pilot projects, let’s consider for which of them it is possible to build minimally viable products – and then try (where possible) to use low-code and no-code tools. With these, we can get less technical people prototyping quickly (of course, more complex integration pieces may still require the help of an engineer). Thanks to the fast implementation, managers or people responsible for the functioning of the process in the company are able (within a few weeks) to check and analyze the sense of an idea. They can test it in a natural environment, and if everything works, they can create a dedicated solution developed by an experienced team.
To the edge
Good software engineers are characterized by determination and persistence, thanks to which they can deliver effective and intuitive solutions to end users. They must have a rich imagination, be up to date with industry trends, read a lot, stretch their knowledge to the limit, challenge the status quo, and go beyond their comfort zone every day. Being a programmer is a continuous learning process, which makes this job exciting and offers the opportunity to develop a career path and personal development.
“PWC has published a list of steps companies undergoing digital transformation should take”
-> any link to this publication ? I could not find it.
Hi! Thank you for your comment. The publication I mentioned seems to have been released by PWC only in Polish. I couldn’t find an English version.
It’s here: https://www.pwc.pl/pl/publikacje/2017/przemysl-4-0.html