Ever since I got my hands for the first time on a computer when I was 9, I knew one day I would become a “computer engineer”. And so I did. My highest qualification is a Masters degree in Software Engineering. I worked as a software engineer writing code for around 6 years.
Leaving software development…
I enjoyed coding. But I also enjoyed keeping an eye on the big picture. At some point I started focusing my interest more on the requirements engineering part of the software creation.
On the other hand, for some reason I had the fix idea in my head that eventually there would be a moment in my career where I would stop coding and “move on” to something else… some kind of management/lead maybe? I felt that I had communication/people/soft skills (whatever you call them) that I wanted to use more than I felt I had the chance doing in pure software development.
So when the opportunity appeared, I made the switch. I didn’t become a team lead or a manager, but I stopped coding and became a full time requirements engineer in another team where I never worked as a developer before. This was a new role, with new people in a kind of new world.
I had no interest anymore in source code, frameworks, configurations, etc. I locked myself out of technical details. I trusted the team would find a great solution, which was always the case. I overtook a lot of the “glue work”, and I enjoyed it. I felt I was the missing piece in my team. I even had the chance to take a look into what agile coaches do, I started helping them with regular retrospectives moderation, which was a lot of fun for me. I discovered I new side of my professional career I enjoy and I can be good at: moderation/facilitation and public speaking. It sort of became a new passion for me.
At some point I even considered seriously developing my career direction agile coaching. I thought I had what it takes to become a great coach (with the proper training) and I could add a great value to the teams in my department.
I still think that way, but the world kept on turning and with new circumstances and experiences, I started drifting away from that idea. Instead, I started thinking I should probably go back to software development. Maybe not completely switching back, but at least partially as I did for the last 2 years before I completely left programming. I started thinking that I should be able to code again. Pick up where I left off. I shouldn’t loose my technical skills.
Regaining the interest: Why developing again?
Those ideas were circling around in my head for at least half a year (the second half of 2018), until the moment to take the decision became crystal clear to me: my team is about to start the development of a new project, “a green field”. It’s exciting!
My interest is back. And I never thought this would happen! I confess that I am a bit surprised that I am again so interested and motivated to learn and get myself to the status-quo level (I was away from development for the past 4 years), that I decided to take some time to put into words all the reasons why I am doing this.
Here is why:
I shouldn’t loose my technical skills: and I think it’s not too late to gain them back. It was a mistake to lock myself out of all the technical decisions/conversations, but at the moment I simply didn’t have any interest. It was a conscious choice. Eventually I realized that I need to keep my technical skills somehow so I can have a better judgement as a requirements engineer, or even as a tech lead, if I ever become one. And the only way of doing so, is by developing. At least now and then.
I don’t want to loose my technical skills: I decided that whatever path my career is to follow, I would like it to stay close to development. This means, I wouldn’t like to be in a role where I don’t have anything to do with development directly anymore, like an agile coach, a project manager, a senior manager, VP, CIO, CEO (LOL!!). I mean, I wouldn’t like to make a career deep into management. I want to stay as close as I can to the building part of the software and not stay in the planning/coordinating only. It’s cool to be part of the development team, it’s easy to have a feeling of achievement when something works. It’s challenging, but it’s amazing to overcome those challenges. It’s the kind of thinking that maximizes the use of my brain. Which is what I need to stay sane when I get old :P
My team is awesome. They inspired me: they make me feel safe. I am not afraid to fail or look stupid because I don’t know this or that. We have a really good dynamic and I even think I can add more value to the team if I am able to help also with coding now and they when it’s needed. I am sure it will be a lot of fun to build a new project with them from scratch soon.
Mastering timing & self-organization
It’s a loot of stuff I need to pick up now. The learning curve is steep, I know. On the other hand, I won’t be able to just put aside all my tasks as requirements engineer/analyst now to just focus on development to make it faster. But even if it would be possible, I don’t want to switch back completely. In my department there is this happy possibility of working as a software engineer/system analyst in a double role, focusing more on each according to the needs of the team. And that is the perfect solution for me. I want to stay in the two worlds.
But for that to work, I will need to become a master in timing and self-organization. Because on top of wanting to stay with a foot on each world, I don’t work full time. And I also plan to give some conference talks this year.
We will see, I am optimistic that I will make it. I promise I’ll write a post at the end of this year with details on how I managed to achieve all that ;-)