There are many blog articles on the Internet, listing the qualities and characteristics of the best programmers. But not one of them mentions honesty.
I find that interesting, because I consider myself a valuable asset as a programmer, and if anyone asked me which quality is most important to my success, I would not hesitate to say “Honesty”.
Let’s explore why I would give this unusual answer.
Programming is unique in a number of ways:
- Your work is almost always a complete black box to your clients: they don’t know how it works or how much work you really put into it. All they see is the “User Interface”, the part that is exposed to them, that allows them to interact with what you’ve built.
- Programming tasks are often treated as factory line assembly work: you are given some specifications, and you are expected to provide the required output within a specified amount of time. There is an assumption of predictability and a desire for controlled costs.
- In reality, programming is an art form. There are an infinity of ways to achieve a result that satisfies the client, even within the constraints of good, maintainable code, security, efficiency, minimal bugs and reasonable costs.
- More and more programmers work on their own, remotely, without any supervision.
The result is: a massive opportunity for deception. Even if you video-recorded yourself at work and sent the entire video to your client/employer, he/she would be unable to judge if that work really achieved the product you handed back at the end. It’s basically impossible to show clear evidence that the number of hours you claim to have spent on a project have indeed been spent that way.
This makes for a very interesting set of circumstances, in which the client needs to give the programmer a huge amount of trust, both before the job starts, and after it is complete.
As a programmer, I value that trust more than I value the money I get from my clients and employers. My decisions in how I work, how I report my hours and how I charge my clients are based on this value I place on their trust.
I also value my personal relationships with the people I work with. Being dishonest is a betrayal of the trust I have been given, and an act of sabotage towards the relationships I am building. Not only is it damaging the things I value most, it’s also hurting my future work prospects.
In today’s work marketplace, relationships and personal qualities like honesty matter more than qualifications.
And here is the crux of the matter: clients and employers may not understand the intricacies, the nuts and bolts of the work you do, but they tend to understand what matters to you most as a person. They tend to recognise your efforts at honouring their trust and building a solid relationship. They may never know how honest or dishonest you are, but they can see the consistency–or lack thereof–of your work over time.
They start to see you for who you are.
You can only hide (if you feel the need to) your true character for so long. You can only pretend to be good at something for so long… Eventually your true character becomes clear.
The good news are that, when you come face to face with yourself and you realise you don’t like what you see, there is always a way to change. Being honest with yourself is always the first step.
Then you need courage.