A story about ego, pride and communication in the IT world.
A few months ago, somebody said that I was unprofessional and, I admit, I was pretty mad about it.
But do not worry, this is not an article about proving him wrong, even if it was my first thought back then.
First, in order to fully understand the story, a little bit of context is needed.
I am a software developer, currently working in a big retail company on behalf of my employer, a small IT services business.
The mission started out six months ago, with a team of four developers, a product owner, a devops and our customers support staff.
The latest is composed of a member whose time is split between two applications. She is backed by the rest of the support team, but we almost exclusively reach out to her.
We are lucky enough to be truly Agile, thanks to our PO’s experience and expertise.
Kanban is the framework we use, which means continuous flow of issues and deliveries, no sprint and — thanks to the old and new gods — no estimate.
This last part is very important for me, who has always struggled with the very principle of estimates.
One last detail, we are a team of relatively young and open-minded people, and the atmosphere can easily be described as light.
The cursed word
We were in the last stages of the opening of a new store in a new country when it all started.
A leader of the customers support team, who was in the store to be open, spotted a bug that could potentially delay a step of the operation.
The team was asked for prioritizing the issue’s resolution, and we did put it on top of our list.
I took the issue and started working on it. After talking with our customers support member, we found a workaround, using old tools that could prevent the opening to be delayed. As you may imagine, I was very happy with this idea. Not having to work under a whole amount a pressure and being able to deliver a solid solution and not some dirty hot fix is always nice.
After a few hours of hard-working, an update was asked to know when the fix will be deployed.
As it was a casual request, I replied with our usual catchphrase: “When it’s done, no estimate!”. Oh boy did I was wrong to say that this way.
The next thing I remember, I received a direct message from the customers support leader saying that I am not thinking about the greater good for the company. That I should be able to give an estimation. That I act unprofessional.
…what was that? Is it now unprofessional to only deliver the best possible piece of software? I was outrage! I do think about the greater good when I don’t write a quick and dirty duct taped fix! How could someone dare to say that about my work! About me!
Well, things have calmed down since then and it turns out that he might not have been that wrong..
What is professionalism?
I could have just moved on and forget about that whole situation, but here comes Uncle Bob and his book “The Clean Coder : A Code of Conduct for Professional Programmers”.
I have bought this book a few weeks ago and started to read it just now. As I was eating the first chapters, some memories started to emerge.. The very same memories that I discussed above.
So, what is Robert C. Martin’s take on professionalism ? Turns out it is not what I was thinking. It is not just about delivering the best product no matter how, nor that it is about sticking to the processes at all costs.
I am not about to paraphrase the points made by Uncle Bob in his book, and I urge you to read it if you have not already.
The most important aspect of professionalism is about communication. There are several chapters where the author talks about what it means to say yes or no in a professional context, and the implications of such decisions.
For instance, a professional must say no when asked to do impossible things. That is a concept that I already apply when the occasion comes.
So, one could say that I am acting professionally? Well, not really..
The point is not about saying no to every impossible deadlines, it is about searching for a compromise.
You cannot finish this task before the end of the week? Fine, but we really need some critical parts of it to work by then. Maybe it can be done by reducing the scope? Canceling some meetings? Changing the priority of some other tasks?
Anyway, it is our duty to act in order to find the right comprise that suits everyone, and to make sure that the job is properly done.
Of course, the book is not just about saying no — though it would be a fun 200 pages piece of literature. This is just one part of the requirements in order to call yourself a professional.
Back to the story
But what does any of those concepts have to do with the story?
Can we say that a lot of parties in the story act unprofessional? I think so. At least I did.
Instead of searching for the best solution — and there was an easy one already in place — I stayed in my position and kept on coding.
It seems to be the most professional outcome at the time for me, providing the cleanest solution. But in these cases you have to take a step back, share your point of view and listen the other’s in order to do the most appropriate action.
It is crucial to stick to your moral values and not to let the pressures and deadlines pollute your work. But in the other hand, we should all have the same goal — to create business value. It is essential that we work together, as professionals, toward it.