In this post, Andrew Old and an accountant friend begin to explore what a profession is. Broadly, three requirements are listed: a professional qualification, body, and code of ethics, such that “all members of a profession will belong to a professional body and the professional qualification is awarded by this body”. One additional implied point that I have heard elsewhere is the idea that the professional body can expel members when appropriate (e.g. if the code of ethics is violated).

I’m reasonably happy with that as a definition of a profession. It intrigues me because my job is to be a researcher and software developer, and many or most practitioners in these areas are not professionals. If you’re a UK teacher reading this, you aren’t a professional either. Is this lack of professionalism a problem that needs fixing?


The idea of being a profession is to uphold minimum standards of a profession (to prevent damage to the public from bad doctors or bad engineers), to uphold the reputation of the profession, to provide a voice to the profession and to collectively advance practice. Let’s explore some of those issues and also look at the costs of being a profession.

Upholding minimum standards is clearly a good idea. Bad software can cause real harm (famous example: Therac-25) or irritation on a massive scale (e.g. the general hatred for Microsoft in the late ’90s when Windows was quite unstable). Bad research can cause harm if acted upon, and generally harms the reputation of the occupation. Every researcher that conducts a bad study without a control group, uses bad statistics or fishes for a significant result harms the cause of research. However, regulation of practitioners is typically no guarantee against bad practice, just against malpractice.

As for advancing the profession: researchers and software developers tend to be very open about their practice. The web is full of software development blogs, question and answer sites like Stack Overflow (and in days gone by, newsgroups and similar). Developers invented the web, and colonised it in the name of helping each other to program — even if that often means berating each other about how not to program. One of researchers’ primary functions is to publish their work and attend conferences. Both of these fields seem to advance their practice without needing any professional body involved.

Sometimes, even being a profession by our definition is insufficient to achieve total change. There is a UK professional body for software developers: the BCS. The BCS accredit degree programmes, they have a chartership system and a professional code of ethics. So technically, UK software developers are a profession. It’s just that very few clients or employers pay attention. You wouldn’t hire a lawyer who wasn’t professionally accredited. However, people do hire software developers all the time who are not chartered or accredited (e.g. programmers who are self-taught, or transferred from other disciplines, and hold no qualification in computing at all), which in turn makes people wonder if it’s worthwhile being accredited or chartered, and hence not all developers are members of the BCS. Drawing a parallel to teachers: if someone sets up a professional body for UK teachers tomorrow, but in ten years’ time hardly anyone requires or notices whether teachers are members, will it hold much weight?


Being a profession has upsides, like being able to bar those who commit malpractice. But a profession does not come for free. A profession costs money, usually taken from individuals or their employers via membership fees. Certification and chartership costs time for those who apply. (Not to mention that an occupation is not necessarily worthy just because it is a profession. Did you know that homeopaths are a profession?)

I also wonder if professions can sometimes be an unnecessary barrier. One of the interesting movements in software development over the last 20 or 30 years is the growth in open source software. You are reading this via WordPress (open source) which uses the PHP language (open source), probably on an Apache web server (open source) on a Linux server (open source), and viewing it in your browser (which is likely also open source). Some open source software is developed by full-time programmers on the clock, but a significant amount is also developed either by complete amateurs (meaning they have no job as a developer at all) or by programmers in their spare time. If open source was only developed by accredited professionals, its health would be diminished, but I doubt that its quality would be noticeably improved.


Ultimately, when it comes down to questions of professionalism, I wonder: is professionalism something worth aiming for? Do the gains outweigh the costs? Is it hypocrisy if I were to answer yes for doctors (where I am a client) but no for an occupation where I am a provider? Thoughts are welcome below.

2 thoughts on “Unprofessional

  1. A timely post, as I feel this is something that the BCS has been reconciling for a number of years, as part of transforming into a modern professional membership organisation. Part of the problem lies with the diverse and cross-cutting nature of the computing/IT profession — it is inherently less cohesive or discrete compared to a traditional “professional” domain such as law, accountancy, architecture, etc. Hence for many people, identifying as an “IT professional” (and what that entails) is not an obvious step.

    I highly recommend this post by Anthony Finkelstein, which encapsulates my perspective: “I joined [the BCS and IET] to show my professionalism rather than to become a professional. My membership is about identifying as a professional and associating myself with others who share the same values.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s