Software is eating the world and has been steadily munching away the past decade, with noticeable effects. You only have to look at businesses that compete outside the technology industry to find a software engineering function firmly embedded in the company structure. IT has truly become a strategic differentiator, and those that have embraced this realization have been able to propel themselves to the top of their markets.
But, although software engineering as an organizational department or function has become commonplace, many are yet to realize the next steps in this evolution.
Slowly, and steadily, information technology and its subsequent skillsets permeate every business function imaginably. The realm of ‘developing software’ is not beholden to the few but will be a core part of everybody’s skillset as much as we all come to read and write.
Don’t believe me?
Every company used to have those two excel wizards we would turn to for some of those shadow IT projects all companies have running. Instead, finance departments are creating their facilitating back-office applications by clicking them together in low-code environments. At the same time, HR executives are shaping the workflows of performance reviews and manipulating automated onboarding programs. The world of low code is only the tip of the iceberg.
The world is changing, and the skills we “traditionally” associated with developers are becoming part of the required skill tree for many jobs. Or rather, the outcomes developers can deliver are slowly being requested from people in other jobs.
The question is whether we realize that the list of skills of the average developer goes past those of ‘knowing the language to program in’ and ‘being able to use the keyboard to put in the right commands’.
Software development is, more than anything, a problem-solving job in which explorative, analytical, and creative skills come together to solve a problem. Developers design a solution that fits a range of requirements that are partly even implicit in the context of the problem to be solved. Concepts like separation of concern and cyclomatic complexity are not mere technical buzzwords they are part of a wide array of knowledge elements an advanced developer builds on to create solutions. Complex ideas and knowledge aren’t currently easy to transfer.
So, should we not transfer these skills and instead empower everybody to be able to do some basic development?
Yes, we should. We should start this transfer of knowledge early on and at scale. Get the kids coding!
This weekend my nephew of 4 was over to visit and sleepover. Starting school is exciting and is the beginning of learning many new skills. This got me wondering whether programming is part of early education. When I think back my first exposure to programming wasn’t until high school.
Luckily, nowadays, we have more options.
The good news is they DO start at the ages of 4 and beyond. As someone invested in the future of IT I could not let the opportunity pass to acquaint my nephew with the basic principles of programming. There are lots of really nice options available that allow us to help future generations get a head start.
No, I am not talking about video games.
Without playing favorites, there are educational games that teach the programming basics to our children. One game controls the direction of a small wheeled robot linked to a physical board on which you place large plastic directional icons. And, of course, this has been gamified to increase interest.
Am I too old for these toys? Yes.
Am I nostalgic to the point that I would have wanted these in my youth? Yes.
Do I think that these types of educational tools will make a difference?
We are still looking at the largest technical personnel shortage in history. Even though my nephew has another 20 years to go before he can add his name to the capacity pool, it is best to give him a headstart and ready for the “future of work”.