Guest post originally published on the Rookout blog by Or Weis
In the age of discovery, navigators changed the world. Their unique skills won them fame, riches, and glory, as well as the ears and support of kings and emperors.
The rulers of old who knew the importance of investing in these skilled frontier men rewarded their nations with the longest and wealthiest golden ages they’d ever seen. Nowadays, in the age of data, developers are the new navigators. Their happiness is the key to the success of modern business and the employers and companies who understand this have the opportunity to become market leaders.
Traversing the oceans of data
Software engineers, Devops, SREs, Data Scientists, and developers at large are the new helmsman, navigators, and cartographers. The skills developers have and their unique access to the tools of their trade is the key to solving modern problems – problems of scale, automation, AI training, complex calculation and prediction, and in general, of data manipulation. Tools were and still are a huge part of both the developer and navigator professions. While navigators had the sextant, star charts, kamals, compasses, and containers, developers have an even more impressive list of tools such as IDEs, compilers, CI/CD, ML/AI models, Programming languages, cloud-services, serverless, Istio, kubernetes, and containers, to name just a few.
As you’ve probably noticed “containers” repeat on both lists, and indeed developers have named much of their modern tools after maritime namesakes. The same is true for Kubernetes (‘Helmsman’ in Greek), Istio (‘sail’ in Greek), and many more. When surveying modern software projects, it quickly becomes apparent that the required toolchain is constantly growing, and hence the knowhow and efforts that are required from developers is constantly growing as well. Of course, there is no doubt that without both the tools and developers organizations wouldn’t be able to approach, let alone traverse, the oceans of data.
The importance of quality data
Data is not the new gold or oil, it’s the new oxygen. Every part of the modern business needs it, ranging from sales to marketing to product, all the way through security, data-science, and of course to engineering itself. However, the pursuit and effort to obtain data is not about blindly collecting, as opposed to what some vendors of big-data solutions might be claiming. Data is about quality before quantity. Each voyage is about getting to the right data at the right time and how to derive the right products from it. You don’t want to drown in data, you want to swim in it. As historian Yuval Noah Harari put it in his bestselling book Homo Deus: A History of Tomorrow: “In ancient times having power meant having access to data. Today having power means knowing what to ignore.”
Looking at data-science really highlights this fact. The better data-scientists are able to label and curate their data-sets, the better outcome they can achieve. While more flexibility is afforded with deep learning, the quality of data still remains pivotal. Quality, as with many other aspects of life, translates to not only skill, but motivation and guidance. The ability to see the new frontier that can be obtained beyond the veils of data at the horizon, is directly linked to the creativity, freedom, and ability to persevere through obstacles. If we boil all these parameters down to a key one- happiness would be it. We need our developers happy.
Developers – You need them happy
The basic fact is that in order to truly succeed at their jobs at the level you would need to spark a golden age, your developers have to be happy and motivated. Just like their discovery age counterparts, good developers are hard to find and so it becomes a simple matter of supply and demand. If you want to get this supply, you better listen to their demands. It is currently estimated that by 2021 US companies will be experiencing a shortage of 1.4 million software developers to fill positions.
So how do we make developers happy?
Top causes of dev unhappiness
Before we can discuss how to make developers happy, we need to delve into the root of the issue and understand the cause for their unhappiness. According to the article “On the Unhappiness of Software Developers”, the way to foster happiness is to limit unhappiness. Yes, agreed, this seems quite evident. So what exactly makes these developers, these people who are standing at the helm of the future of technology, unhappy? 10 key causes were found to be the source. The first three originate from the software developer’s own being. This was found in instances when devs were stuck solving a problem, felt their skills and/or knowledge were inadequate, and when experiencing personal issues. The other seven causes are produced by external causes, such as colleagues underperforming, unexplained broken code, and bad decisions. As we can see, much of their unhappiness stems from sources directly relating to their job. So, how can we, with this knowledge, flip it to benefit our devs?
What makes developers happy
The following is a list of key concepts companies can adopt to improve developer wellness and happiness. The list focuses on the unique aspects that are relevant for developers, taking into account you are already doing the best to take care of their happiness as people first.
Reduce context switches:
- Context switches are interruptions to the workflow that require devs to shift attention from one task to the other. When CPU running software performs context switches it hurts performance. When people do it – it hurts performance and happiness.
Most developers know that in order to truly get the job done right one needs to get “into the zone”, a focused deep thinking state of mind. Context-switches are the death of that.- This can be achieved via methods like:
- Planning a supportive schedule that doesn’t burden developers with meetings and concentrates blocks of sequential work in which developers can get into their zone.
- Creating a quiet and supportive environment and culture.
- Investing in high-quality workstation gear – desks, screens, mice, keyboards, and possibly most important: good noise reducing head-phones.
- Investing in tools that streamline dev work – such as IDEs (e.g. JetBrains) , or productivity apps (e.g. Alfred)
Improve software knowledge and understanding – allocate time for learning:
- You need to understand the great professional pressure devs are constantly under; that developer work constantly requires devs to learn and relearn topics and technologies as new methods, solutions and technology in general is constantly rushing forward. From this understanding you can come to elevate the pressure and help your devs invest the time they need to remain up to date, both personally as professionals and, more specifically, as engineers combating technical debt for your organization.
Make resolving issues easy and blame-free:
- Like a car, which is only truly tested when rubber hits the road; software is only truly tested when it meets reality and production workloads. This makes testing, debugging, and handling incidents both difficult and extremely stressful. True developer agility is gained with focus on quick iteration, learning, and improvement. This requires an enabling culture, one that values learning over blaming. In addition investing in infrastructure and tools that enable agility in these processes: modern APM (e.g. AppDynamics , Datadog) , exception management (e.g. Sentry), and production debugging (e.g. Rookout) can dramatically reduce friction, as well as save your devs a lot of time.
Make communication between devs and the rest of the org easy:
- Developers have their own ways of communication, on average somewhat more introverted, sarcastic, critical, and of course technological. Embrace it- and encourage them and the rest of your organization to communicate. If your devs aren’t invested in your business goals; don’t be surprised when they fail to be motivated by them and ultimately fail to deliver for them.
- Developer excellence: As a theme developer excellence or wellness is becoming something companies are putting emphasis on, even hiring key personnel to lead this focus, in some cases VP and C-Level. While not a magic cure-all, this is a good strategy to communicate how important the wellbeing of developers is and allocate mind-share, time, and resources to driving it.
The Future is Dev
Looking at human history, there are distinct ages – periods in which key roles in society lead revolutions that forever change the fate of mankind. Shamans and chieftains, philosophers, kings, renaissance-men, and most notably in the age of discovery, explorers and navigators whose unique skills and spirit drove civilization forward, quite literally, by connecting the old world and the new world.
In this age of data, developers are taking the lead, harnessing an ever growing arsenal of tools, constantly requiring them to learn, adapt, and perform, while the challenges are constantly growing in scale and complexity. As the problems faced grow, so do the rewards. Consequently, the companies that best support their developers and take care of their happiness, will win a new world that holds a future that’s probably beyond our wildest dreams.