The Story of How I got into Leadership - Part 1
How some formative experiences in my early years as a Developer led me to think I would never be a Manager.
Hello dear reader,
I spent the biggest part of my professional career in leadership roles. Yet, in the very first years in the profession I built such an image of the manager's role that I thought I would never trade the joy of programming for something that had to do with managing people.
This is the first of a two-part series that walks you through the story of how I went from being overly skeptical of the role, to deciding to dedicate most of my career to it.
In this first issue, we'll look at my early experiences and impressions of management.
Next week we'll look at how my views evolved over time, and why I'm happy doing what I'm doing today.
πΎ The Origins
As most of us, I started my career as an individual contributor, doing a mix of development and sysadmin work.
That happened at the turn of the Millennium, at a time when the Y2K bug was the only tech related news spoken about in mainstream media.
Back then the profession had nothing fancy:
π€ Nerds were still considered weirdos without any superhero traits.
π΅ Salaries were decent, though not among the top 10% tier.
π©βπ» We called ourselves Programmers or Developers. Software Engineer wasn't a thing yet
Life as a programmer was way less fashionable than it is today, but I loved it.
I was finding deep satisfaction in getting computers to do what I wanted them to do.
I was very involved in the open source community, which I found aligned quite strongly with some of my values and principles.
In other words, at that time I was happy spending most of my time staring at a screen, jumping between terminal shells and Vim sessions. I always had an IRC window open to communicate with a small group of friends and peers.
I definitely didn't excel in interacting with people in the professional setting, and I displayed quite some traits of the proverbial brilliant jerk archetype. Maybe I wasn't that brilliant, but definitely a jerk.
I was still living and working in Italy, the country where I was born and raised.
For those of you who aren't familiar with the history of the Italian tech market, let me tell you what it was like to work as a developer in Italy in the early 2000s:
Most companies preferred to leverage body rental consultants rather than hiring directly. This created a situation where most of the workforce was provided by agencies.
These agencies in turn, especially the big consulting firms, would rely on various layers of sub-contractors to actually source the talent.
Most developers were jumping from a precarious contract to the next one. They moved from project to project and from client to client very often, without a lot of consideration for what their own desires were.
Ultimately, given the Chinese Box setup above them, Developers were often lacking a proper management structure to support their growth. Layers had more to do with profits than with personal development opportunities.
At some point I found myself contracting for a company, let's call it company A. I only met with them when I had to sign the temp contract.
This company was selling me to another company, company B. These guys I only met when they escorted me to my first day at the office.
Company B was selling me to one of the Big 4 (the one whose name starts with A), let's call it company C.
Ultimately this big consultancy firm sold me as part of a huge project for one of the leading telco companies in the country. We'll call this company D, or The Client.
In this setup, nobody cared for my personal development. The closest thing I had to a manager was the person in charge of my team in company C. In reality his role was closer to a glorified project manager than a proper people manager, but at the time I hardly knew the difference.
This was my first job in a big corporation, and I felt that everything was managed in a way that didn't make a lot of sense to me.
Two key areas stood out:
π©βπ» The Developer Workflow
π€¦ββοΈ The role of the Manager
Let's look at them in details.
π©βπ» The Developer Workflow
The whole project was set up in a way that was driving me insane.
I'll skip the details of the manual fixes that were executed on production databases on a daily basis. Suffice to say that there was an entire team dedicated to that.
The part that I still can't fathom is how the developer workflow was set up, or rather how it accidentally happened to be. I can't believe someone sat down and deliberately designed such a process.
Everyone in the open plan office space had an Windows NT Workstation assigned to them. Workstation being a fancy word for an old pc with a meagre 14β CRT screen.
All the software produced as part of the project was running on some big Unix machines. Dec Alpha initially and then Sun Solaris.
How were developers writing, debugging and testing their code?
By following this very streamlined and optimised process:
All the code was versioned in Visual Source Safe. The Microsoft proprietary equivalent of Subversion. Visual Source Safe could only be accessed via Visual Studio IDE on a Windows Workstation.
Developers would use Visual Studio on their Windows workstations to checkout the code, and edit it. This is not Visual Studio Code as we know it today. I'm talking old school single platform IDE with costly licenses.
The code being written for Unix, they could not even build it on their local machine. So, every time they wanted to test a change they had to copy the file over to the Unix machine, compile and test the software. All these steps were executed manually of course. Every time there was a compilation error, they had to go back to their local IDE, make a change, then copy the file over and over again.
Once the code was working effectively, it was checked into Visual Source Safe via Visual Studio IDE.
Granted, this was 2004 and CI/CD, DevOps, etc was still not a thing, but even for the time and with my limited experience this looked extremely inefficient.
A few weeks into the job I had adopted a completely different workflow for myself that made me significantly more productive than anyone else in the team.
I was making all the code changes in Vi directly on the Unix machines, and I'd only touch Visual Studio at the end of the process to check in all the changes that I had completed.
I even mentioned it to my manager, but he seemed more worried about me not following the canonical approach than he was worried about team inefficiencies.
Which leads me to talk more about the manager.
π€¦ββοΈ The big consulting firm βManagerβ
There are only 4 things I vividly remember about this person. None of them positive.
I realise he was not set up for success and was put in a role probably without guidance. I forgot his name, but I hope he got a chance to develop into a better manager over time.
Here are the 4 key memories from this formative experience.
Memory 1: He did not inspire me
On my first day at work I brought in my personal laptop as I had received zero information on how the onboarding process would go. When I was escorted into the office by some weird guy from company B, I realised all workstations where running Windows NT.
My laptop was running Linux. No dual boot, just Linux.
I approached my manager and informed him about the situation. I asked if it was going to be possible for me to use my Linux laptop for work as I didn't have a workstation assigned yet.
He stared back at me with big eyes and asked: βWhat is Linux?β.
His superior overheard this and stepped in with a basic explanation of what an operating system is.
Not the best first impression.
Memory 2: He did not set me up for success
This dude would hoard information like his life depended on it.
He wanted me to get the job done with the minimum amount of information. He assigned me tasks on some complex systems that managed accounting, billing, plans provisioning, etc without ever giving me any documentation or explaining me what the purpose of the change was.
I remember working on systems with only a vague idea of what they were supposed to do.
To this date I'm pretty sure I've introduced bugs and misbehaviours in the system simply due to the embarrassing lack of context on how they were supposed to work.
To his discharge, in retrospect I think he was merely βfollowing ordersβ, and aligning with the strict policies of company C in terms of not sharing too much information with sub-contractors.
Yet, he could have made more effort to share relevant information.
Memory 3: I felt discriminated
All around me there was an unofficial yet very evident Caste System.
People with different statuses, depending on whether they were employees of The Client company, employees of Company C or one of the many subcontractors, got extremely different treatment.
I'm not just talking about perks and benefits, that would be understandable.
I'm referring to the varying levels of attention and support received based on one's rank. Despite the fact that we were all working on the same project.
As I befriended some of the people a few castes above me, I was able to discover that they were given access to resources and information that I wasn't. Information and resources that were critical to be successful at doing your job on this project.
That felt profoundly stupid, as it only promoted the old idea of higher ranks equating to more power.
Memory 4: I felt taken advantage of
I think I lasted about 6 months in that project, before I decided I had enough of that madhouse.
I must admit that there had been some interesting components to the job. The part that I enjoyed the most was when I had been tasked to migrate one of their software from one version of Unix, Dec Alpha, to Sun Solaris.
Anyways, here is what happened on the day I told my manager that I was going to leave the project.
He did the obvious: he offered to get me hired in Company C. He saw the contributions I was making to the project and my unique skills around Unix systems, and he was afraid to lose them.
Though I felt flattered for about 300 milliseconds, I didn't fall into the trap.
Besides that fact that I had zero intention to continue working in such an unhealthy environment, I felt really disappointed that he only made this offer when he had no other choice.
He was making me such an offer in his own best interest, to save his ass. It seemed he had no interest in my personal growth. If that would have been the case, he should have made me such an offer before I announced my departure. And he should have put in efforts to help me develop as a better professional.
I felt taken advantage of and that my value had not been recognised until it was too late.
Not a great leadership lesson, but a lesson nonetheless.
As you can imagine, at this point in my career I would have never considered moving into the managers track. I thought managers were mostly project managers who cared more about their own personal trajectory than the team they happened to be responsible for.
I was seeing them as very detached from the day to day work, lacking competence and doing a job that seemed the opposite of fun and rewarding. To my eyes many of them looked miserable and caught in the proverbial rat race.
Despite the hardship of the overall job market, I was still finding a lot of enjoyment and fulfilment by spending my time staring at a terminal screen, getting machines to do what I wanted them to, and chatting with my peers on IRC.
My plan was to make that last for as long as possible. Little did I know that things would change significantly in just a few years!
In the next issue I'll go in details into what triggered the transformation, and why I eventually decided that the leadership track was what I really wanted to do.
In the meantime, I'd love to read about some of your most frustrating experiences with managers.
Have you had any experience with managers that left you with a negative impression on the role?
How did that influence your role as either an individual contributor or a manager?
Please share in the comments section!
See you next week for Part 2!
βοΈ P.S. I'm offering Free Mentoring and Coaching sessions to people that have been affected by recent layoffs. If you know someone that could benefit from that, help by sharing this post with them. Deadline for applications is on Friday, January 19th at 18:00 CET.
Recuerdo que una vez me dijiste "el core del negocio no debe ser tercerizado" y, habiendo estado en esa misma posiciΓ³n (aunque sΓ³lo lleguΓ© a la compaΓ±Γa "C"), supe inmediatamente de que hablabas.
PD. control de versiones en el 2004?! que pro! nuestro jefe nos hacΓa copiar carpetas y mantener cΓ³digo separado por cliente.
Nothing changed 20+ years later in these companies. Same model, different country but the rest is still relevant.