Software coding is fun. Ask any developer why they are compelled to a life of programming and they’ll all confirm this truth. Software application development professionals, hobbyists, students and even casual coders do it because it’s essentially very enjoyable.
Engineers love to program because they love problem-solving. They are attracted to the challenge of creating things, fixing things, improving things and making our lives and the world better and safer. Typically, they form a close bond with the systems, platforms and tools that they work with and get to know them far more intimately than many other craftspeople; but like any marriage, this is a relationship that can experience growing pains.
Developers get to know their software tools so well that they inevitably end up finding flaws in the platforms they use. It’s not unusual to hear a programmer tell you that a service (i.e. any given tool, component or even software language) is ‘really good at X’, but pretty much ‘sucks when it comes to Y’ and so on.
Developer Experience (DX)
If this fun vs. fear factor really exists, then surely enterprise software vendors should be considering this aspect of the way they build their technologies. We’ve all heard of customer experience and the quirkily written User eXperience (UX) factor, so should we be more concerned about Developer Experience (DX) to make sure the software engineers building our next killer apps are actually having a good time doing so?
“Absolutely, yes it’s true. A key consideration for software platform development today is that the tools and services created should enable the users – and in this case, I clearly mean the developers in the first instance – to have fun while using them. Even if we don’t define it as fun, developers should feel a sense of joy. Some software engineering tools really are a joy to use, while others are (and let’s be as democratically polite as we can here) the ones we have to suffer for want of a better alternative because they are functional… but more painful than joyful,” said Kris Jenkins, developer advocate at Confluent, a full-scale data streaming platform that enables users to access, store and manage data as continuous real-time streams.
“If there is a category of tools for software application development that we could label as the ‘fun to use ones’, then it would be the parts of any software engineering offering that enable developers to get started quickly. This fast start cadence element is critical because it enables developers to get on with problem-solving and delivering for users,” added Jenkins. “Tools of this kind also engender a better ability to iterate, change and be dynamic – and what’s not fun about that?
The general consensus here is that as technically complex and intricate and professionally demanding software development is, it really should always be an enjoyable, fulfilling and (at times) fun exercise.
“If we had to pick a handful of the most important, most progressive and most compelling technology principles today, I think we can zone in on some solid cornerstones,” said Shawn Ahmed, CMO at CloudBees. “There’s AI and Machine Learning (ML), there’s DevOps and DevSecOps, there’s MLOps in the middle tier substrate and there’s edge and the Internet of Things – although we could easily extend that list if needed. But above all those elements we need to also embrace fun.”
CloudBees’ Ahmed points out that as much as we recognize the developer enjoyment factor and the need to strive for it, it’s not going to be as simple as just saying let’s have fun. This is in no small part down to the need to perform so-called ‘shift-left’ alignment in application development – a notion meant to describe earlier software testing and more stringent checking controls.
“There has been so much talk about shifting left which is not inherently a bad idea, but if done incorrectly it sucks the life out of innovation. We end up asking developers to become security experts, operations experts, compliance experts and so on. It leaves no room for the fun stuff – writing code and solving complex challenges. But when shift left is done right, it actually supports innovation and velocity. It’s all about making sure the things you are shifting left (like security, compliance, operations, etc.) are done in an intelligent, automated way,” said Ahmed.
This topic was originally tabled by Sacha Labourey, co-founder and CEO at CloudBees, when asked for a key takeaway when speaking (virtually) at his company’s recent developer/user conference. Quite unashamedly and with totally positive fervour, he called for the fun factor to be addressed from a serious productivity perspective.
“The problem of a lack of ‘fun’ in DevOps lies in the tools that are not directly useful at the task at hand – like security, compliance and testing tools – that are introduced into the developer’s workflow,” said Labourey. “Today, they are known to be particularly good at… interrupting a developer’s ‘flow’ and every interruption makes it hard for developers to get back into their ‘zone’.”
Labourey reminds us that with an avalanche of alerts and notifications to attend to, all classified differently and requiring access to different tools, it’s tough to expect any developers to have a fun experience.
“So, to put ‘fun’ back in DevOps [and software coding in general], we must move our perspective from ‘how can we industrialize a process that brings safety to the organization’ to ‘how can we ensure that the daily experience of a developer is as smooth as possible, all while making it safe and secure for the organisation?’. By following this rule, we can keep developers in their zone as much as possible, while making sure organisations satisfy their responsibilities,” he added.
Hashtag: I love my job
It’s a compelling thought if we stop and think about this subject i.e. how many people actually stop and tell you that they have fun at work and love doing their job? Okay yes, if you happen to be a television travel show show presenter, a ‘seeing dogs’ for the visually impaired trainer or a cocktail bar manager on a private luxury yacht, we don’t need to question whether work is fun. For most of us, fun work is when we work with good people and experience minimal stress, but perhaps now we can extend the definition further.
“Having been in software engineering for some three decades, this is a subject close to my heart. Developer solutions should be fluid and slick, while delivering excitement at the backend that translates into excellent user experiences,” said Matt Quinn, general manager, Tibco, a business unit of Cloud Software Group.
In a way, there are in fact parallels with gaming, he suggests.
“It’s exciting, addictive, intuitive and competitive. There’s a yearning for status among peers and a desire to acquire new skills and talents to keep you ahead of competitors. But, it is also a collaborative process, where contributing often counts for more than the achievements of an individual and where glories – or wins – are a shared experience. I am my happiest when I am coding. Along with the excitement of competing and creating something new, I see it as this super weird combination of art and science. It touches a part of my soul,” added Tibco’s Quinn.
Quinn’s upbeat Australian tones are perhaps well suited to this discussion. He smiles when he talks about software development challenges and realises with some clarity that the job itself is typified by a Sisyphean cycle of never ending problem solving. From his perspective, the scope element he describes is critical, as is the need for any tool to be able to integrate with a developer’s existing toolset – having to repeat tasks in more than one place due to poor integration is painful… and never fun.
Beanbags & soda
There’s undoubtedly a consensus building here and we’re seeing a groundswell of effort moving to ensure developers do get to have fun, perhaps on the back of society’s wider efforts to address happiness and well-being. No self-respecting enterprise software vendor event passes without some kind of live coding challenge, the use of a beanbag filled developer zone and the provision of an unlimited refrigerator for those that want to drink their own body weight in Pepsi (other colas are available) during the ‘hackathon’ challenges.
Ebullient and high-spirited on all things developer-related is Taylor Dolezal in his role as head of ecosystem at the Cloud Native Computing Foundation (CNCF).
“Creating experiences or solutions with code is incredibly enticing,” said Dolezal. “With software code, we aren’t bounded by the physical limitations that we traditional consider fundamental to our everyday lives. Instead, the biggest limitation to creative scope is usually how quickly someone can type in most cases! Code allows us the space try out and prototype many things; it enables us to probe, test, verify and then iterate [in cycles of cumulative progression] until we have something [an app, an internal service, anything] truly helpful or engaging.”
Through his tenure at the CNCF working with software application developers from students through to all grades of professional engineers, Dolezal explains how he sees coders get positively charged as a result of what he calls the ‘instant gratification’ that programming offers.
“If we have to define what really makes development fun, it probably comes down to the fact that coding enables people to experiment and explore their deepest code curiosities – and that often happens inside a personal journey when someone wants to fix things, or make the world better in some way. That’s not just fun, that’s good karma too,” added Dolezal.
For his money, we need to build software systems, platforms and tools that deliver a positive developer experience, because this factor is now essential in everyday software workflows. Dolezal concludes by pointing out that in any given software project, there are always many moving parts and components, so developer will lose momentum and motivation (and the fun factor) if they are constantly trying to debug a workflow.
Starting out his working life as a software application developer, but now enjoying a successful ‘upgrade’ to chief technology officer at enterprise cloud software company IFS is Dan Matthews. Swedish born Matthews still codes on occasion (because it’s just fun, right?) and takes a hands-on approach to working with the programmers that make up the IFS community. Why? Because he knows what the long term impact of good (fun) versus bad software tools leads to.
“It’s a known fact (ask any software programmer) that a good developer experience attracts people to a software ecosystem, just as a bad experience can drive them elsewhere in pursuit of attractive, compelling, intuitive (and yes, fun) tools that work they way they want,” explained Matthews. “This factor is especially important when enterprise organizations consider which software they will underpin their business on. If they want to attract top talent to implement, integrate and extend their software stack, they should factor in that the developer experience that comes with it is enjoyable.”
Matthews says that this rationale is the validation for why IFS has an entire team dedicated to developer experience. He champions the use of tools (software tools and, given his practical weekend pursuits building sheds, power tools too for that matter) that a user can depend on to get the job done.
“Whether we are building software or a shed (I admit to having around twenty power tools, you can’t go wrong with a circular saw and an impact driver), we need to use tools that work all the time and that impose no waiting time for the user to take the next step. Whether its a user interface upgrade or a new roof, the same logic applies,” said Matthews.
In terms of where this subject sits at a higher level, the more seasoned and experienced software industry professionals may think of this whole discussion as some kind of mechanism designed to pander to the whims of snowflake Generation-Z.
That’s (arguably) quite wrong. We should all enjoy ourselves – especially after the last three years of global change that still leave us with inflation, infection and invasion as we look to close out 2022.
Going forwards, perhaps we can hope for a time when more of our line managers will not just delegate work and instruct us, they will also think about coming over (physically or virtually) and asking us if we’re enjoying what we’re doing. Who knows what expression they might use to do this, but let’s just hope they say something to show they’re thinking about this topic.
Are we having fun yet?