Who Owns Your Career?

I just finished reading a book that every software professional should read: The Software Craftsman: Professionalism, Pragmatism, Pride.
The biggest part of the book is clearly addressed to people who code, but it also covers many points that are common to every professional, in all the fields, not only software.

One of them is related to the career.

The entire chapter about this topic is extremely interesting, but there is one part in particular that I found familiar, and from which there are so many considerations I could do. It’s about training.

“What if the company we work for does not buy us any books? What if the company never sent us to any training course or conferences? Would that be the only way we could learn anything new? Does it really mean the company is bad? Imagine that you need a plumber to do some work in your house. Imagine that you need a lawyer to solve any legal issues, or a doctor when you are sick, or a dentist when you have an aching tooth. You normally go to these professionals when you have a problem, so now imagine them turning back to you and saying, “Could you buy me a book? Can you send me on a training course?” What would you think about that? To make things even worse, imagine that you, for some really bizarre reason, decide to buy them a book or send them on a training course, and once they acquired the knowledge you gave them, they come back and charge you for their services. How does it sound to you?”

How many times I heard people complaining about technical training.
Of course there are some of them which are too expensive for an individual (various certifications, etc..), or other ones which are very company-oriented and you really need some internally organized courses.
I am not talking about those ones. I’m talking about people who say they’re not growing (professionally) because they do not receive enough training from their company.

Let’s continue with the book.

These professionals (n.d plumbers, dentist, lawyer) need to invest in their own careers so they can do a good job, satisfy their clients, and hopefully be referred to other clients. They use their own money and time to keep themselves current.

This is key: use their own money and time to keep themselves current.
Invest in your own career. This is the question that everyone should make him/herself (not necessarily software):

are you investing in your own career?

On the other hand, factory workers, for example, rely on training. Factories need to train their employees to use new machines so they can do their mechanical and repetitive work well.
Developers who rely only on their companies to provide them knowledge are not professional software developers. They are just factory workers in disguise.

The thing is, we work in a field that is continuously moving forward. And in the last few years, I would say, the bar has become even higher. Things are rapidly changing, and those who are behind are paying the price. We are definitely not in a field where we can act as factory workers.

Our industry moves, possibly, faster than any other industry. Languages, frameworks, practices, and processes are all constantly evolving. Keeping up to date and constantly getting better at what you do is key for a successful career as a software craftsman.

Software crafts(wo)men are people who keep up-to-date with the latest trends and technologies, and not because they’re cool and geek. Because they are investing their time (yes, even their spare time) to be good professionals.

How we manage our career is really the heart of the entire software craftsmanship movement.

The Approach of a Software Crafts(wo)man

It’s the company that has hired me as a professional because it thought I had the capacity to achieve their goals and fix problems. It’s not me who has joined the company because I (only, and selfishly) wanted to grow thanks to it.

The relationship between the company and a software crafts(wo)man is a mutual partnership, not a one-way selfish approach: we are asked to act as professionals, and we ask to have the power to make technical decisions and to influence the (technical) direction that the company wants to take.

But still, in order to be in a position where we can take such decisions, a software crafts(wo)man is required to have the skills to do that.
And those skills are not coming from a 3 days training: they come from exercise, learning, curiosity, passion.

So, the next time you face a new technology and, yet after some time, you still complain because you didn’t receive enough training do do your job, ask yourself:
who’s really owning my career: it’s me, or it’s my company?