I often find myself asking whether I'm in the right profession, working as a software developer. It's a question I've answered negatively in the past, but for a couple of years now the answer has been increasingly confident.
How do I know, you might ask?
It's not because I get up in the morning and do the tasks my employer requires me to do to get paid. It's not because I perform well at what I do. It's because I strive to perform better.
A fascinating book I read recently, The Software Craftsman: Professionalism, Pragmatism, Pride (2014), defines the software craftsmanship as following:
"Proposing a very different mindset for developers and companies, a strong set of technical disciplines and practices, mostly based on Extreme Programming, and with a great alignment with Agile methodologies. Software Craftsmanship promises to take our industry to the next level, promoting professionalism, technical excellence, the death of the production line and factory workers attitude".
It's this very clause that answers my question. As a professional software developer - or a software craftsman, to be precise - I rarely feel like working on a factory production line. Instead, I care about the results of my work, commit to continuous learning and improvement of my technical excellence, and feel attached to the professional community around me. For me, coding has never been something I only do from 9 to 5 with my back tightly glued to the chair. On my spare time, I read books, watch videos, write this blog - and most importantly - write code for side-projects either by my own or by contributing to open-source projects.
I've worked with colleagues who don't like to code on their spare time. Some of them have also said that coding is only a job for them and nothing more. That's completely fine. Extremely opinionated people might tell them to switch careers, but I'm not the one swinging the axe of judgment here, nor am I elevating myself above others.
The only thing that matters is that I recognize my inner software craftsman. Big thanks for this goes to my employer who never imposes unrealistic deadlines or forbids me to leave work before I've finished with a feature. Instead, they send us to courses and purchase books to help us grow. One of the essential things a fair company can do is to encourage their employees to become craftsmen, masters of their profession.
Being a craftsman is not exclusive to tech companies and, unfortunately, many a company still has that production line rolling until the foreseeable future. Granted, a significant number of careers are jobs where craftsmanship is either impossible or actively discouraged. No one can fix the former, but the latter can be fixed with a professional environment built within the company by an emerging craftsman community. Whether you're a practical nurse, a salesperson, or a senior software architect, it all begins from the community (and a head full of strong will). Another relevant quote from the book above goes like this:
"You just need two people to start a community, internal or external. It is not difficult to bring a culture of learning into an organization. The only thing needed is a passionate developer willing to start it. Stop finding excuses and be this developer."
Are you a craftsman? If yes, what is your profession, and when did you realize it? If no, why not?