The Other Side of Programming
…and Why do We Need More than Just the Code
– I just wanted to nail the code. How did this happen?
Sadly, I heard this sentence more than a few times in my career (as someone who helps other people fulfill their potential). Usually, this sentence pops up when a person realizes that they need more than programming skills to succeed as a programmer, or when a programmer becomes a leader (team lead, project lead… name it as you wish, in the end – it’s people we are leading, not numbers and letters on our screen). These are two different examples, yet very similar in the fact that they both require a significant change in mindset. Let’s examine one by one.
First situation: Thriving as a programmer
No matter how good we are at coding, someone will delegate something to us – and we might not agree with it in all aspects, so we need to communicate that effectively. A programmer works (usually) in teams, and that implies there are other persons involved and relationships are to be set and nurtured (besides code). There will be bugs in the solution, or there will be conflicts in the team and then a programmer will have to cope with that as well… At this point, it is pretty clear where I’m headed in this story. It is evident that even when we work as a programmers we’re not an isolated cell, but rather a part of an organism. Besides growing our technical (hard) skills, we will need to grow certain soft skills that will help us to successfully cooperate with our superior, our team members and clients, as well as to be recognized as a valuable contributor to the organization and eventually, to thrive in our desired careers. To boost our self-management competencies, i.e. to thrive as a programmer, we will need a certain set of basic skills and knowledge, such as: communication skills, teamwork, relationship building, planning and organizing.
Second situation: Programmer thriving as a leader
Oh, so you were a great programmer and you were rewarded with a leadership position?
Seems quite easy – if we think leadership is the continuation of being a great programmer. Reality is immensely different. Being a programmer and being a leader are two completely different roles! Completely. For taking a leadership role, we will have to have an entirely different skill set and knowledge (or in other words – competencies) than at a programmer role. Of course, if we have the technical expertise (aka programming) that would help us understand the nature of work that our people are performing and thus more efficiently grasp the job that needs to be done and potentially how it needs to be done. This will bring added value to our role as a leader. Yet, switching from a programmer to leader is one of the biggest career steps (and changes) we can take. It requires a dominant shift in our mindset that we (firstly) accept and then act upon the fact: at a leadership role we now get results through other people, and we lead their performance. At our previous position as a programmer, no matter how successful we were – we were producing results on our own, and the only performance we were leading was our own. Yet to be successful as leader the situation requires a whole new set of skills and knowledge, such as: leadership mindset and leadership accountabilities, leadership ethics, assessing other peoples’ readiness for tasks and development potential, planning other people’s performance, delegating, giving feedback, leading other people’s growth and career development… If you are not prepared (at least very well informed) what can you expect at your first leadership position and if you are not motivated (or you become demotivated when you realize what’s it about) then leading people can be a tiresome process.
At Global Engineering Technologies we strive to solve these challenges prior to their creation. OK, sometimes we need to catch up with changes, but having in mind the speed of change nowadays, especially in the IT industry and the agility of our teams – we find this acceptable. So, what do we do? Firstly, we focus on this most important transition in the careers of our people – switching from what we call individual contributors (team members that get results through their own work) to first-line leaders (first leadership position in our pretty much flat hierarchy). We inform them on the accountabilities that are associated with their leadership roles, and we equip them with competencies (set of skills and knowledge) that are needed at that position through our signature growth program GET Ready 1.0. In parallel, we offer 1on1 expert consultations on leadership, so our first-liners can get the most efficient learning through their own practice examples. A natural progression would be towards further participation in programs that provide more advanced leadership competencies, again with tailored 1on1 support through consultation, mentorship or coaching-based growth sessions. On the other hand, individual contributors need to get the basic picture of what leadership is prior to stepping into their new leadership positions, alongside optimal self-management knowledge and skills. Our programs are tailor-made and aligned with our needs, and they integrate top business practices around the world.
In the end, in case such programs are not at your disposal at this moment, here are the tips you can use to thrive on self-management or at leading others:
- Self-awareness is the first step. Reflect, analyse where you currently are, and where you professionally want to be. Then think of what strengths you have to get you there and what are your major areas for growth. Be objective as you can but also ask for feedback from your colleagues and your superior. This will help you rationalize your self-image.
- Then, be proactive in personal growth. Don’t wait for your manager or company to offer you internal or external opportunities for growth. Read books and articles on your own. Enroll in some of the numerous online courses, where some of them offer free and high-quality content. Go to seminars and network with experts. Ask other experts for their opinion and actively listen. Ask for a mentor. Official certification in some skill/domain is great – but that’s just a cherry on top of the pie. Major portion of your growth happens before that. In fact, a major portion of growth happens during your workdays, when you are performing tasks or observing others how they do it. It’s just that you need to think consciously about it and realize what are lessons learned and when to apply it in future.
- State loud and clear what your expectations are, and not just in terms of salary. While salary or bonus may make you happy for a while, eventually it won’t be enough. That’s why you need to focus on your expectations in terms of growth and accountability, as well as quality of relationships at work. What do you want to develop further, where do you see yourself, what will you commit to in order to get there, but also what support do you need from your superior and the company? Also, what relationships do you want to improve and how? What will you do to have deeper and meaningful bonds with your colleagues? Remember, there is no synergy without team cohesion. You may talk about this at your Performance Appraisal conversation – but once a year is definitively not enough. You will have to address these questions at your regular conversations (aka meetings) with your superior. These conversations we call 1on1 meetings. In case you don’t have regular 1on1 meetings with your manager set by him/her – then you should proactively ask for a meeting to talk about these questions… if you really want to be in charge of your career and satisfied with it.
To wrap it up, ownership of your career and personal growth is with you. Your manager and company might be there to help, but you are the one setting the course and pace of action, it’s just whether you are aware of it and committed to it or waiting for it to happen. Whether you will be thriving as a programmer or a programmer thriving as a leader, or something else… it’s up to you.
Wishing you to fulfil your potential!