Software Development: A Profession

We often refer to ourselves as professionals. The intermediate level assessment for Scrum Masters asks, “Do you view software development as a profession?” Resoundingly, the answer is “yes.” Many reasons are given, mostly focusing around our techniques, the titles of the various skill sets, and the criticality of the applications that we build. Our customers count on us.

But, I was less than convinced. If we were a profession, how could I tell if one person was acting professionally, and another was not? What was an unprofessional act? Something that was not transparent? Cutting quality? Not refactoring design when enhancements were added? I struggled with the question.

I link to some discussion of professions from Wikipedia below. If these criteria were applied to people selling their services as software developers, then I would have a minimum expectation. I could expect that they were educated in a certain curricula, had apprenticed with an accepted professional somehow, and had passed an initial set of tests. I also would know that there was a formal licensing body that established and maintained these criteria. Finally, I would have confidence that the person had to periodically reassert his or her qualifications to continue his or her participation in the profession. I would know this because the professional would have a license from a professional body.

I again raise the question: Are we professionals? If yes, how do we fit the below descriptions, or are they wrong? If not, what are we?


Formation of a profession

A profession arises when any trade or occupation transforms itself through “the development of formal qualifications based upon education, apprenticeship, and examinations, the emergence of regulatory bodies with powers to admit and discipline members, and some degree of monopoly rights.”


Main article: Professional body

Professions are typically regulated by statute, with the responsibilities of enforcement delegated to respective professional bodies, whose function is to define, promote, oversee, support and regulate the affairs of its members. These bodies are responsible for the licensure of professionals, and may additionally set examinations of competence and enforce adherence to an ethical code of practice. However, they all require that the individual hold at least a first professional degree before licensure. There may be several such bodies for one profession in a single country, an example being the accountancy bodies (ACCA, ICAEW, ICAI, ICAS, CIPFA, AAPA, CIMA, IFA, CPA) of the United Kingdom, all of which have been given a Royal Charter although not necessarily considered to hold equivalent-level qualifications.

Typically, individuals are required by law to be qualified by a local professional body before they are permitted to practice in that profession. However, in some countries, individuals may not be required by law to be qualified by such a professional body in order to practice, as is the case for accountancy in the United Kingdom (except for auditing and insolvency work which legally require qualification by a professional body). In such cases, qualification by the professional bodies is effectively still considered a prerequisite to practice as most employers and clients stipulate that the individual hold such qualifications before hiring their services.


33 thoughts on “Software Development: A Profession

  1. +1 to the observation – no, we’re not professionals. Anyone can call themselves a professional software developer and not exhibit any traits that we’d identify as such. And a big part of the problem is that a lot of CompSci/SoftEng departments do not, repeat *do not* see it as part of their responsibility to instill these traits.

    So, it’s largely left to the individual to take this up. The upside is that those developers who are motivated to unlearn the garbage that was loaded into them at school and begin to do TDD, CI, iterative/incremental software delivery, practice shared code ownership, etc. are going to be of a very high calibre.

    They’re also rare as hen’s teeth.

  2. The question whether or not software development is a profession I answer with a clear “yes”. — However, I care less about a formal certification than professional software development. There are thousands and thousands of professional software developers out there who do not hold any certification or degree whatsoever and they are still professionals and deliver high quality results. Hence, I think professionalism in your work and high quality results are more important than certificates.
    Certificates and degrees prove that the individually has successfully passed an exam. This does not make him or her a professional yet. He/she has to prove it on the job.

  3. Yes, you are right if you take the traditional (static and overhauled) definition of “profession”. But who says that a “profession” in today’s world automatically and always require certificates and/or degrees?! They may add value, but there is not automatism.

  4. I mostly wondered if we acted in any way similar to what people expect from those who call themselves professionals,

  5. Hi everybody,

    The discussion is somewhat twisted 🙂 … talking about a profession leads quite rapidly to talking about “professionalism”, “being professional”, etc.

    Do we, software prople, belong to a “profession” in the strict sense of the word? I think this is more of a political than a fundamental issue. In some countries, there is a “collegiated body” that represents professionals as a whole. In Argentina, several years ago, such a body was created for software professionals (fortunately, it’s span is limited to a certain area only, not nation wide). The results? Both good and bad software people are obliged to pay a fee to a body that results in no benefits at all. It’s a burden. You can join the body and see yourself a professional … in concrete terms, that just means some people are getting money from you, and you’re getting nothing in return.

    My parents are both professionals (engineer and pharmacist) and I’ve always heard from them how many of those professional bodies are to very much dominated by politics, resulting in many people getting richer by occupying political positions. Are there any benefits? Well, there are some such as the pharmacist’s or engineer’s country club, some loans, and so. But to my hone opinion, benefits you could perfectly achieve in other ways without the oppression and obligation to belong to such a body.

    So, in sum, if being a “professional” means having such bodies, my preference is “no, thank you”. We’re mostly still not “professionals” in many countires because we *thankfully* do not belong to such bodies.

    There’s a more practical and common sense view on what comprises a “professional”, and to me, that’s a person that acts under “professionalism”. And what is professionalism? To me, that’s just acting the way you promise to act when you assume a certain responsibility, using up-to-date knowledge on the subjects required to performing such responsibility well:

    * If I hired as a .NET software developer, I would expect a “professional .NET developer” to know the framework well, to have a certain degree of experience, etc (I do not even expect to have certifications).

    * If I hired a Scrum Master, I would expect him / her to perform the Scrum activities and conversations well and to achieve the results and benefits expected from the Scrum framework. Personally, I wouldn’t necessarily expect him to be a CSM!

    * Etc, etc.

    In the era of high-networking we’re living in, I think we do not need “professional bodies”. If you want to know if somebody acts “professionally”, you can quickly find out if that person routinely delivers what he promises. I would call that person a professional.

    Thank you for posting this very interesting converstation starter!


  6. In Malaysia, a recognized university/colleage degree is pre-requisite for employment. That’s the standard of recognition. The new hire is expected to behave in a standard way consistent to what is taught. Suppose a certified .NET developer is hired but uses .NET in a Visual Basic 6 manner, then it is not professional and this needs to be addressed.
    I once knew a Project Manager who tested her interview candidates on visual studio. She ask the candidate to achieve database connection (password provided) and display information on screen. After the interview was over, she reviewed the code. She realized some software developers were indeed more professional than the others. She hired those who met her standards and addressed this issue before hiring.
    If I am a Professional ScrumMaster from continuously increasing knowledge and getting experience in Scrum, I think I am a professional and practicing.

  7. As a professional Java/Web Developer (professional as in: I get paid for it), I really have no need for a standard. In Holland, lots of professions that used to be bound by obligatory memberships of groups are being freed up. Examples are professions such as carpenter, painter and other crafts. We live in a world ruled by free markets. My market value is based on how well I can do my own marketing. This is based on how well of a job I do at clients.

    I really hate certificates like Certified Scrum Master. All customers expect it, but you prove nothing at all by having it. The need for a certification body is completely beyond me if it goes as deep as that.

  8. I recently posted a blog entry about software development professionalism. I thought I’d share my opinion about this subject.

    To me, a professional software developer is someone fulfilling one of the roles in a Scrum Team. Other people that develop software may be professionals, but I don’t have the context to evaluate their professionalism.

    The Scrum Team as a whole consists of professionals when it :

    1. Is proud of the quality and value of its work, as contrasted with being relieved that they got “something done.”
    2. Is continually striving to create more value.
    3. Has developed and adheres to a definition of “done.” This means that each increment of functionality at the end of every Sprint is completely done and fit for purpose. There is no work left to be done. Technical debt does not accrue Sprint by Sprint, increment by increment. The resultant releases are sustainable, maintainable, and enhanceable. Te total cost of product or system ownership is and stays reasonable.
    4. Works in a safe environment where important topics can be discussed freely and even emotionally without anyone feeling at risk. Prerequisites for this are rules of etiquette and knowledge of how to resolve conflicts.
    5. Strives to eliminate waste.
    6. Works as a team rather than as a bunch of roles, titles, or individuals.

    This is not an widely accepted definition of a professional. However, it is how I evaluate the professionalism of a Scrum team.

    If a Scrum Team does not meet these criteria, I do not view them as professional. However, if they are striving to meet these criteria, I am proud of them and do whatever I can to help them achieve professionalism.


  9. A very brief definition for a professional is to have:

    The right knowledge
    The right skills
    The right attitude

    When recruiting developers, I have preferred the right attitude, given them a coding homework, and rarely missed the suitable and skilled ones.


  10. For the UK, the answer is that software development is not a profession, but computing is.

    There is a Royal Charter ( which makes chartered members of the British Computing Society legally recognised ‘professionals’.

    However, and I say this as a BCS Fellow, to date we have failed to raise the standard of IT within the UK to truly merit being considered equivalent to other more established professions. Organisations in the UK do not seek out ‘Chartered IT Professionals’ in the same way they would expect to employ a Chartered Accountant, and the BCS as a professional body is seen a irrelevant by many (most?) people who work in IT.

    That makes me sad, as I think we should be aiming to meet a minimum standard of conduct and expertise.

    I’m not sure whether software development is sufficiently different from other IT/computing activities to be considered a distinct profession.

    Regards … Simon Coles, FBCS, CITP, etc etc

  11. “Craig” — Why do you imply gardeners are not skilled? Some are very skilled—craftsmen, even. And some software developers are too—many are also polite, and able to express their thoughts elegantly and eloquently. Perhaps you are not these things, but beware of painting people you’ve never met with the brush you use to tarnish yourself.

    Here on this blog, with no picture, no last name, and no url, throwing out insults at every opportunity you are the epitome of the internet coward—who is usually the one who ends up looking the fool. Too bad. It’s possible you had one or two useful things to say, which got utterly lost in the temper tantrum.

  12. In the aspect of software development, professional are creative minds that deals efficiently with the computer programs. There are more rule and regulation in software development to which one should follow properly to be a professional.

  13. Hi! I know this is kinda off topic but I’d figured I’d ask.
    Would you be interested in trading links or maybe guest authoring a blog post or
    vice-versa? My site discusses a lot of the same topics
    as yours and I think we could greatly benefit from each other.
    If you are interested feel free to send me an email.
    I look forward to hearing from you! Terrific blog by
    the way!

  14. Pingback: A Code of Ethics for Software - Community Blog

  15. This Article is more informative for me and really helpful but i have seen another one that is also a great but you are my Cham website i want that you read this and update yours, You have a great blog here! would you like to make some invite posts on my blog? Cryptocurrency Development Tricks For More…

Leave a Reply

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

You are commenting using your 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