Do you know the difference between professional athletes and software developers? What is meant is not the amount of exercise that both get on average every day, although it would certainly be a good idea to make up the difference by having athletes spend more time on the computer.
All joking aside. In the life of an athlete, there are countless hours and days of arduous, intensive training, and relatively few competitions. In competitions, the aim is to reliably deliver top performance, while in training, on the other hand, it is possible and necessary to experiment, try things out, make changes and improve. In the public perception, training is often ignored, but in reality it takes up much more time than competitions.
In software development there is your project or your product. It takes up the majority of your working time. Some companies have something like a tech day, allow conference visits, or organize internal or external trainings, some companies have 20 percent agreements like Google once made famous.
Moving Fast
However, the lion's share of working time, I suspect well over 80 percent, goes into the project/product. We work in sprints . To be honest, I have always detested this word, because for me means quick movement . I associate it with restlessness, a rushing, a: we don't have time . Sure: from a business point of view, fast movement (in the sense of: progress) is desirable. But I would like to get at something else here.
The proportion of working time spent on training in the developer's daily routine is probably perhaps five or ten percent. Most of the time is spent on the project, in experimentation and trial and error, in other words learning tends to interfere. For athletes, this ratio is just the opposite. So maybe us developers should get a little more "athletic" and train more.
Is too little training a reason why so many software solutions are unnecessarily complex? At some point, you have to try out new tools, methods and technologies and - hand on heart, all of us developers all do, to some extent - live out our (technological) urge to play.
Practice makes Perfect
I've always wondered when software developers actually practice, or if we practice enough. I don't think so. Practicing, or rather training , is not a waste of time for a software developer, but an important prerequisite for professional and personal development. Which, by the way, can sometimes culminate in the realization that less (technology) is more (productivity) and that you don't always have to follow all the latest technology trends in your project.
I am convinced that many software solutions could be better, simpler and more tailored to requirements than they currently are. Why? Because in software development, experiments are not done enough in training, but are too often done on the project, where they manifest themselves directly as technical debt in the software.