A couple of months ago I had a longish, nuanced, healthy discussion on Mastodon about professionalism in software development, and I thought it would be useful for me to summarise most of my views on the matter in a blog post, because that’s what I do after all. As usual, this post reflects my personal opinions, not those of my employer.
I have touched upon professionalism once or twice, though I never really tried to discuss directly what I see as being “professional behaviour” nor I have spent any significant time talking about my general feelings for qualifications, professional bodies, and the like, even when I have spent enough time thinking about them, particularly around my own career. Trying to put all of this into a consistent, and possibly relatable article is going to be… not easy. So please bear with me.
The first thing I want to make clear, is that I neither want to, nor would be the right person to, gatekeep what “professionalism” is. Indeed, I believe that different people can have different views of what is and is not professional for them, and I’m not looking to invalidate it, I just want to share how I personally see this.
Indeed, my own views of professionalism have been, early on, influenced by two people who took their own take on professional: Robin Johnson and Donnie Berkholtz, from Gentoo Linux. Both of them are people I look up to in terms of both professionalism and ability, and while as I said they influenced my view on professionalism doesn’t follow directly on either of them — and indeed it would be hard for me to distinguish now what inspired me from either of them: my professionalism is my own, but built on the shoulder of giants, like most of my work philosophy and general life views.
So let’s start with a straw-man view of professionalism which is oft-repeated, and was where the conversation on Mastodon has started. There’s a misconception that professionalism is the diametrical opposite of “fun” — so as long as you’re not fun, you’re professional. No jokes, no sparkles, no pride in your job. That whatever you do, you shouldn’t put your opinion forward, and be quiet not to upset whoever.
I don’t think that is the core of what professionalism is. There’s definitely a grain of truth in it, as I would expect professionals not to put jokes in bad tastes, or look to upset the people they work with. And as I said in the other post, when you’re working at a company (big or not), it would be unprofessional behaviour not to follow the handbook when it comes to providing feedback, for example by loudly criticise your employer in public — which does not mean defending your employer in public, whether deserved or not!
The reason why I believe that you should be respecting your employer, is because professionalism to me means respecting obligations and contracts. If I don’t believe in the obligations anymore, in my view I should see a way to cleanly break out of them, not to simply ignore them. Which is where I see my first strong interplay between professionalism and ethics, and why I believe they are distinct views to take. It is my professionalism that keeps me to my obligations, it’s my ethics that could see me walk away from them (following the process set my professionalism!)
Speaking of kernels of truths, I said earlier that “being professional” doesn’t mean not having fun, but to avoid jokes in bad taste. The problem here is that what is a joke in bad taste changes dramatically depending on who’s reading it, which is where the idea that being professional means not having fun is likely coming from. When you’re not sure how a joke is going to be taken, it’s almost always better to avoid jokes altogether. It also means being mindful that even innocent in-jokes that do not attempt to poke fun at people are often not very inclusive, and you never know when they will turn out to not be funny anymore by association.
Personally, I prefer keeping the “fun” in my professional life to ephemera, and to what is more clearly my personal views and spaces. So I have no problem with furry art, but my shared projects have the most boring and descriptive names you can come up with. This has the side effect of generally not requiring me to worry about the risk of them violating trademarks, or be stolen by the Mozilla Project.
At the same time, I don’t believe there’s an expectation that professionalism require “Western shaped names” as some people seem to imply. I say “Western shaped” because there’s quite a bit of leeway within what people seem to accept as a “real name” that can reveal quite a bit of biases, but in any case, I do not believe that naming has anything to do with professionalism. Even the FT managed to refer to Zatko as Mudge (although they do seem to prefer the western-shaped name as part of their styleguide) — and while I do use my full legal name in most of my accounts (among other reasons, because I chose my first name when I changed it back in 2008!), all my account names and email address are indeed assigned to Flameeyes. I would tell you one more thing: at work my profile is named Diego Elio Flameeyes, admittedly mostly for practicality (no accents there), which means most people, including my manager, HR, and my leadership know me by that name.
This also works as a segue for another related topic: my distinction of software as art versus software as industry, which is a distinction that is fairly permeable: while I find myself almost always thinking of myself as part of industry, I do end up sometimes acting like artistry. The main difference between these two modes, to me, is whether you’re doing something primarily for personal pride and accomplishment, or as a part in a system that goes beyond your own contributions. You could call this “art” mode “maker” mode as well, if you want to fit this into the same view as the makers’ movement that Adam Savage has been a prominent speaker of.
I do want to make it clear here, that with the “beyond your own contributions” I do mean that the software industry does not include only Big Tech or the work of software companies and consultancies. When you write a Free Software project with the intention for others to adopt it, you’re making yourself part of something bigger than your own contribution.
When you build something but you don’t want anyone else to use it, even if you decide to share it with the world, you may be interested in explicitly not being part of an industry, for one reason or another, which is fine by me, I don’t expect that something released in such a manner would ever need to think about professionalism in the first place.
But once you do share something with the world, with a compatible license, and utility, you are, willing or not, part of the Industry as a whole — whether you do want to be professional about it, is entirely up to you though. On the other hand, the way other members of the industry will treat and consider will depend on said professionalism.
Of course, it’s important to know that professionalism goes both ways: if you’re engaged in a commercial activity and expect to get free support from a FLOSS developer, you should not just be ashamed of yourself, but have a deep thought about what you’re doing in terms of your own sustainability. But at the same time, if you’re a maintainer of a project and you want to invite commercial actors to use it and contribute, you almost certainly will need to put up with the way commercial actors do business — which primarily, in my experience, is to understand and accept that those commercial players have customers of their own, and that almost always their primary intent is to make money.
A few too many times I have seen FLOSS maintainers complain that nobody is paying them to just keep doing what they are doing, and that even commercial players who want to give them money want to attach strings to them. I empathise with this feeling, but at the same time I realize that this is almost always the only way for a small to medium company to approach an open source maintainer: they most likely have tight margin themselves and are unable to just wait for the maintainer to get around to fix whatever they need fixed. Whether you like it or not, most of us live in some shade of a capitalistic society, and we need to work to pay bills and enjoy our lives.
Do note that here I’m not saying that every FLOSS maintainer needs to feel compelled to accept contributions (monetarily or not) or support requests (paid or not) from any company, whether they want it or not! There’s definitely a number of companies that I would never do business with (including but not limited to gambling, which also means cryptocurrencies) and if approached I would more-or-less politely decline — politely when I have an ethical disagreement with the venture, less politely if I believe they are a bane of society and complete destruction of the environment.
This is part of professionalism for me: I disagree with the direction that companies take all the time, but that doesn’t mean I’m going to abuse the people who reach out to me, for whichever reasons they did it. Don’t burn bridges unless you really feel you have to. And if you do accept a contribution from a company, well, it’s up to your professionalism whether to engage in criticism of your partners, but if you do you may need to disclose said contributions, and also give a heads’ up to your contacts, so that they have a chance to address your criticism, in my opinion. (This is very situational, there are definitely cases in which giving them a chance to know you are about to criticize them might backfire, so always take it with a grain of salt and plan ahead.)
Speaking of contributions, I also want to very briefly address the elephant in the room that is “That one guy in Nebraska.” I really dislike this comic and the way it is used in FLOSS discourse nowadays! I don’t know how Randall Munroe sees it exactly in terms of what the comic ends up representing, but to me it’s often paraded around in the worst possible of ways I can think of.
First of all, yes, it’s true that there’s definitely a ton of systems and services out there that end up relying almost exclusively on one or two people maintaining a piece of code that basically always work – until it doesn’t – and are likely overworked and underappreciated. Often enough, people talk about curl that way, with Daniel Stenberg as the guy in Nebraska — although it is my understanding that he’s actually paid to work full time on curl, and there’s probably a lot more topical cases of people working with zero support and reward behind them.
But the reason why this whole comic upsets me is that I see people using it as an excuse or even an aspiration. Some of them think that we should keep the guy in Nebraska in the same position, and make sure they are full of rewards. Others want to be the person in Nebraska that alone hold together half of the modern Internet, because they believe it’s cool. In either case, I believe that the solution is wrong (professionally, and ethically.)
I believe that in the situations that do exist of “the one guy in Nebraska”, the action to take is making sure that it’s no longer only one person holding up a complex system! This means at times building governance structures, and at times deciding that it’s not possible to rely on a project that is supported by one person only — which means forking or rewriting. While licensing terms very obviously had their part, it was not impossible to understand that Apple’s reliance on GCC, with a certain project-dictator in charge, would not have scaled long term.
Speaking of licensing, I have also seen at times people “surprised” (I’m never sure if they are really surprised because they don’t understand the reasoning, or if they play the surprised rethorics for their own purposes) when commercial enterprises decide to not use an existing hard-copyleft project in favour of reimplementing the idea or functionality in a soft-copyleft or even not copyleft project by themselves. This is particularly cringy when discussed in reference to AGPL-3 licensed projects, since the license is pretty much kryptonite for commercial actors.
I think this is going to be it from my side, at least for now. On Mastodon I have taken a side discussion about professional bodies as well, but I don’t feel like going down that route here, since it is a topic that I would have to brush up on before discussion. On the other hand I’m more than happy to dig into more details of what I discussed here, if anyone is interested — tell me over socials or in the comments below this article. I know the stream of consciousness I’m using here is not very conductive to build a consolidated view on professionalism, but I’m not setting out to write a Harvard Business Review style article, I’m just sharing my view with the world, take it however you please!