When you see a number in the title of an article, you may expect to find easy tips you can start implementing today to level up your skills. I have consumed some of these articles myself, and quality of these posts vary from superficial to playing an essential role in my success.
I prefer focusing on transformation instead of information. Why? Because if I asked you to enumerate these points, you would be able to point out many of them. Knowing these points is not real power. Understanding why these points are important and how you can put them into action is the real power.
In this article, we dive deeply into communication. It is very easy to make communication mistakes that look innocent on the surface, but in reality, you undermine your progress with it.
I have nothing to do
When I was 18, I found summer work for a month. I worked in a hypermarket filling the shelves with cheese. Unfortunately for me, I worked too fast and we had too many people in the cheese department, so I ran out of work. My experienced peers advised me to go in and hide from the managers.
One day, manager found me and took me to the vegetables area. I got done with everything within a few hours. He ran out of work too.
I went back to the cheese department, and the same manager picked up on the fact that I had no work. He found something else for me and my manager also gave me more work.
My peers advised me to work a bit slower so that I fill my eight hours appearing busy. So sure enough, I was filling the shelves with small round packets of camambert cheese as I saw the local CEO star at me from the corridor in front of his office.
The day after, we had a weekly meeting with all the employees where management instructed us to smile every Tuesday. I found this meeting weird, but this time, at the end of the meeting, I was requested to stay with the director. She explained that I was not meeting their expectations and I have one hour to hand over my uniform and leave the hypermarket.
This was the first and last time I got fired in my life. Interestingly enough, days before I got fired, I already wanted to leave, because work seemed to be pointless to me.
This experience taught me two things:
- knowledge workers are usually better off, because they can more easily do something meaningful even if they have nothing to do
- you can find something to do even if you don’t are done with all your tasks by being proactive and asking around
As a professional software developer, you have to fulfill your tasks your manager gave you to avoid getting fired. I did that in the hypermarket example. In fact, this was all I did. If you are good at these tasks, you will stay on the level where you are right now. Because the faster you work, the more likely it is that you are a good fit for your current position.
If you get caught doing nothing regularly, your manager will find it a concern, because you don’t report in advance that you will run out of work. At the hypermarket, indeed, my manager didn’t really pay attention to me. However, I never told her that I didn’t have enough work, because I chose to listen to my peers instead assuming that they know it better. After all, some of them had been in that position for more than ten years.
So the first level of taking responsibility is when you signal that you need more work. This may get you farther than most of your peers, even as a developer.
However, level 2 of taking responsibility is when you suggest what should be done to bring the company forward. These are the tasks that not only give you the most career capital, but also get you promoted.
You can also show gratitude, because as a knowledge worker, you get a chance to use company resources to work on interesting projects and find tasks for yourself. Back in the days in the store, I only had a chance to clean the shelves or sell watermelon near the entrance when I ran out of tasks.
This is not my job
After the two levels of responsibility in finding job for yourself, it is not surprising to conclude that in terms of getting promoted, you can cut all your ties with getting promoted on multiple levels. Let’s call these levels the “yellow card” and the “red card”.
Imagine you are a Java developer taking care of business logic and your application is rendered on the server side. Your manager asks you to take care of a small styling change. Then you say, “This is not my job! I am not a CSS developer!”.
Is CSS that hard? Both you and your manager knows that it’s not an optimal usage of your time. However, the task has to be done by someone. Are you in a position to delegate it as a lead to someone who is a better fit? If not, you have to get into that position first.
If you work in a Scrum team, even the scrum.org official Scrum guidelines point out that the development team has to pick the outstanding tasks in the current sprint without paying attention to what the titles of the team members are. Teamwork means that sometimes you have to do things that are not among your expected duties.
Does this mean that you can’t point it out that you do the task, but it’s not optimal use of your time?
Definitely not. Once a professional freelancer pointed out that it will be not an optimal use of his time to use his coding skills as a DevOps engineer to set up a CI pipeline, and he offered that he does it regardless if we can’t hire anyone. He also offered me some contacts of his who are more equipped for the job than he is.
If you say “I won’t do this, it’s not my job”, you get a yellow card from your manager. You may collect multiple yellow cards before getting fired, because after a match, the yellow cards lose their effect. However, at one point, your employer may show you the red card and fire you.
If you get fired what happens? For many developers, it is not a big deal, you find another job at an expense of some job hunting. You may even earn a bit more.
The red card that costs you a bit more is the red card that eliminates you from getting promoted. How can you get this card in the easiest way? When your employer asks you to do something that requires soft-skills, communication, or taking responsibility in any way, just tell them, “I am not a manager, this is not my job”. Even worse, you may also consider, “This is your job, not mine. I am not a manager”.
You can be assured that you will not be considered by your manager for a promotion.
Have you read Emotional Intelligence 2.0? According to their study, 90% of top performers have high emotional intelligence, and it makes them an extra $29.000 a year.
Soft-skills are your entry ticket to taking more responsibility either as a manager, a tech lead, or as a specialist.
You/the company should take care of me
Throughout my career, I have found that one factor that may predict success at the workplace is a choice between thinking of yourself as a being entitled or being intrinsically driven.
Entitled developers tend to think along the lines of “
If the company gives me
then I will do my best”. What can benefits be? A lot of things:
- a raise and/or a promotion,
- free entry ticket to conferences,
- working from home,
- reduced working hours,
- 2-3 days of on the job mentoring,
- inspiration, motivation,
- different tasks than what he/she is doing,
- taking care of tasks that are not his or her job,
- parties, free beer, free drinks, free pizza, free other stuff,
- good managerial evaluation.
In my post Asking for a Raise – and Getting It – Part 1, I used the phrase “put wood in the fireplace before asking for heat”. In a healthy environment, there is competition, and the best fit will be promoted. If you don’t deliver because you expect a promotion, you won’t be chosen for the promotion.
Some less experienced developers also have had issues. A few developers feel entitled to rebel against working on the most important task that moves the business forward in favor of open-source contributions, refactoring, and tasks that are contextually important, but are not important at all when the house is burning. When the company is worrying about losing a million dollar client due to the absence of a small feature, chances are, your best action is not refactoring and not developing open source libraries during those few weeks until the client gets what they want in exchange for a seven figure payday for the company.
Others have the false impression that they work while their managers just take the money capitalizing on their work. In reality, managerial duties are often not comparable to developer duties, and in the position of a developer, you often have limited understanding of the big picture even if your management is completely transparent with you. Therefore, criticizing your manager and feeling entitled for doing the job, does not make much sense.
Recall my experience in the hypermarket. I wasn’t a developer, I did the job of filling the shelves with cheese. I didn’t criticize my managers, but due to lack of experience, I didn’t understand that I should have contacted my managers for advice on what to do if I run out of work, not my peers. I didn’t understand that the manager that sent me to take care of vegetables or sell melons, had a continuous burden of locating me and finding new work for me, because whenever I was done, I went back to the cheese department. I became a burden and maybe my managers had a point about firing me.
I blamed them for not giving me exact feedback why. Knowing what I now know, chances are, in my situation, 2/3 of the employees would have become defensive, negative, and entitled. Obviously it’s the manager’s interest to manage the situation in a diplomatic way. She showed some understanding, and told me the decision was already taken, and just gave me superficial reasons.
The opposite of entitlement is responsibility.
Now I know that I am responsible for finding work for myself, to report to my managers, and suggest improvements. This is the path of responsibility, and this path maximizes your chances for not only raises and promotions, but also for collecting experience that comes handy in case you decide on leaving employment behind and starting your own business.
You are not recognizing my skills
In many corporate environments, there is an uncomfortable process called calibration. Everyone in the organization gets assigned a grade. In many organizations, these ratings are awarded according to a bell curve, and there are a fixed number of underperformers, average performers, and overperformers.
A company implementing such a rating system cannot afford not to have clear rules, and therefore, managers tend to collect information to responsibly execute calibration.
In his book What Got You Here Won’t Get You There: How Successful People Become Even More Successful, dr. Marshall Goldsmith argues that 360 degree feedback is an optimal way of collecting feedback on the work of a professional. This feedback will contribute to the rating.
If most people cannot say that you are overperforming, chances are, you won’t end up with an overperforming evaluation.
In a less formal environment, if your manager doesn’t know why you are overperforming, chances are, your request for a raise will not be supported.
This is why transparency and establishing feedback loops is important. In order to be appreciated by the business, it is important to connect the utility of your work with the business.
I am better than him/her
Don’t put down your colleague. As soon as you do that, others will rightfully think that you have an agenda. If you are better equipped for a job, concentrate on the objective and consider how you can make a difference instead of criticizing the other person.
The key to go is to be objective oriented. When you are objective oriented, your focus is always on what needs to be achieved. Once you focus on the objective, it won’t matter who gets a specific task. If you are truly better than your peer, your accomplishments will carry this message with them.
Action speaks for itself.
In case your accomplishments are not transparent, it is your responsibility to make them transparent. How? By using feedback loops and giving your manager status updates either formally or informally. Setting your goals, contributing to team OKRs, and helping others out will be noticed in most environments.
In the unlikely case you are still not noticed, you can find a better job, where your effort will be appreciated, or start a business yourself.
“To be honest with you…” and “Trust me!”
These phrases signal explicit influence, where your optimal solution is narrative influence.
Explicit influence is when you say what you want the other person to think about you. While being direct is a great virtue in many environments, directness does not work with the thoughts of other people.
If you ask me to buy your car, chances are, my mind will first think, “why would I buy it?”. If you ask me, “have you ever considered owning a car like this one?”, my mind will likely to investigate the emotions linked with owning your car. Most people have no conscious control over this process. Once it becomes conscious, it’s too late, the neurons have already fired and the emotional connections have been made.
Similarly, if you say “To be honest with you”, my mind will first ask if you lied to me before. Not a good place to be in. You can simply omit this phrase, because it sends the other person the message that you were not honest before.
When you tell me to trust you, my mind will first ask why? Other people trust you if your actions speak louder than your words, and your actions reliably deliver results.
I don’t know how much time it takes
Steve Jobs was not the easiest person to work with according to Walter Isaacson’s biography titled Steve Jobs. There were stories of Steve regularly firing people who had mental obstacles about work.
Whether Steve Jobs was right or wrong, it is up to interpretation. However, most of us have no doubt that Steve Jobs was so objective oriented that he just did not tolerate working with people who are limited by mental obstacles.
It is often hard to justify if Steve Jobs was successful because of or desipte his leadership style, because this is a multivariadic problem to analyze and our information is incomplete. It is certain though that time estimation gives the business more information than not having the courage to perform the estimation.
Although most businesses are forgiving with developers, if you continuously stick to not knowing how much time it takes you or your team to develop an update, chances are, your action will be perceived as an attempt to avoid taking responsibility. This perception may block your progress.
I know, there are situations when your manager tends to overload you on purpose and count on your past commitments to deliver. This act signals a toxic environment, and it makes perfect sense for you to defend your boundaries assertively or find a new job. Becoming reluctant in giving estimations will not solve your problem, because managers in a toxic environment will find a way to assert themselves at your expense.
A professional takes responsibility and does his or her best to perform estimations. A professional also informs management as soon as it becomes clear that the delivery dates are in danger.
I will try
A friend of mine once worked with a company offering poker, casino, and sportsbetting solutions. Suppose a product manager says, we need to complete a sportsbetting system for the World Cup. You figure out that the World Cup is coming in three months, and according to your estimation, the development of such a system would take at least nine months. You have developed similar systems before, and you know that three months will be very unlikely if not impossible.
You try negotiating the scope of the deliverable, but the manager says, it has to be completed in three months. He has already promised it to the board of stakeholders. What do you do?
If you say, “I will try my best”, you will have to face the following consequences: your manager will likely translate “I will try” with “I am committing to deliver it whatever it takes”.
In the unlikely case you deliver it, you will feel the hero for a while, and all developers want to be heroes. The cost of delivery is overtime, lower quality software, and possibly burnout. As business expects you to deliver, you will not be rewarded for the delivery, as you are just doing your job, and all you can expect is acknowledgement for a job well done.
Delivery comes with a risk of delivering software that contains bugs that may in extreme cases generate major losses for the company. If the developers did not end up becoming heroes, chances are, they will be blamed for the erroneous delivery even if they were sent on an impossible mission.
If the development team does not deliver, they will be rightfully blamed, because they committed with “I will try”.
By saying “I will try”, the developer was unprofessional by softly signalling his concerns, but committing regardless. The manager was also unprofessional by not pointing out the obvious: work capacity is not created out of thin air. As a result, no-one is innocent and the development team should share responsibility of non-delivery with management.
A professional cooperates with business to find a feasible solution through re-scoping, hiring, or other means. If management does not cooperate, the professional resigns.
If you are interested in similar cool stories about software developers stepping up and becoming assertive, check out The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin also known as Uncle Bob.
If you are lacking generic assertiveness training, the best introductory resource I can point you to is Manuel J. Smith’s When I Say No, I Feel Guilty. You will get a lot of inspiration by going through the examples and your assertiveness will improve.
There are different types of mistakes many software developers make. Most of us, myself included, have done things throughout our career, that undermined our progress without us knowing it.
By sticking to simple rules, your actions and your communication will show that you are a true professional. This will unlock opportunities for you.
If you would like to take your career to the next level, book a free roadmap session with either me or with one of my coaches.