Good Developer: Taking Initiative

Photo by Alayna Tam on Unsplash

Good Developer: Taking Initiative

In my second interview with Awesome Source (formerly Virtual Academies), Tonio, our Lead Developer, said, among a lot of other things, that he liked when people took initiative.

It immediately stuck with me as something that I needed to do, but back then I didn't understand the full meaning of what it meant, nonetheless, I started taking initiative.

The project I'm currently assigned to, Viper, is an experiential learning engine, a white-label learning platform where you can build courses with advanced activity types, integrate with other learning platforms and so much more...

Crawl before you can walk.

Viper's codebase is big and early on I decided that I needed to learn all facets of the project, so, I started small, learning only what I was assigned to, but as time went by, I started reading more and more code to understand better how certain components worked, even if I had no work assigned that touched that code, and when my ignorance got the best of me, I asked questions.

I will make the estimate that I understand about 50-70% of the codebase, there are a few subsystems & new components that I haven't taken the time to understand how they work, but if I ever get a bug ticket I'm not scared to dive into it and spend 2 hours grasping the functioning of the component/system before attempting to fix it.

I took the initiative to learn what I didn't have to and, as a pleasant consequence, it turned me into a better developer overall.

Take initiative first, worry about the details later.

3 months into my new role, our Lead Developer suggested that I look at a piece of the roadmap, a feature called Multiple Coach Assignment, which involved converting a singular user system to a multiple user system.

To put it into better words, our courses have coaches and we only used to support one coach per cohort, this was limiting and the feature involved allowing multiple coaches for these cohorts.

On the technical side of software development, I was semi-experienced, I was still a newbie but an informed one at the very least.

However, this particular piece of the roadmap was barebones and when it came to augmenting an existing system, researching the requirements, writing specification documents, and planning out in phases and the only experience I had was personal projects and while there are similarities between developing for the love of the challenge and developing for the needs of others, it's like asking a home cook to prepare food for a restaurant. In the end; they'll be unprepared.

chef preparing several plates Photo by Sebastian Coman Photography on Unsplash

Worrying about the details.

The sheer size of what I set out to accomplish intimidated me, but already committed to it, I started researching the codebase to see which parts of the system would have to be considered as possible breaking points and, after a ton of reading and the double amount of questions, I finally started jotting down the specification document. I started doing something I hadn't ever done before.

I could've asked one of the senior team members to do it, they already write most of the specification documents since they deal directly with clients, but instead, I recognized that taking the initiative would add much more value to how others perceive me as a professional, but most importantly, it allowed me to learn, create and gain experience in something that I had previously estimated being years down in my career.

Taking the initiative in picking the project and writing the specification document, taught me a lot about project development without even realizing it, and the action of proactivity, of initiative, made me a better developer, not only by my own metrics, but also for those who work with me.

I want to circle back and reinforce a few important points so far.

  • Take the initiative, no matter how small it may be
  • Take the initiative to learn things you don't need to because the need might arise
  • Take the initiative to lengthen your stride because the world doesn't wait for you
  • Take the initiative because opportunities might be hidden within

Lastly, and the most important point is to take initiative on improving yourself.

Take the initiative inwards.

There is no greater enterprise than the self. This is where you need to take the initiative the most, on yourself.

Some people loathe the fact that human beings are not perfect, but I see it with a different eye, I see a path towards perfection. This doesn't mean that I count on reaching the end, no I don't even believe that I'll ever reach it, but as long as I strive to follow that path, then I'm moving forward.

There are many definitions of what a perfect human being might be like and I'm not here to tell you what I believe to be the correct version of perfect. No, to the contrary, I have no idea what a perfect human being is. All I know is that there is a path towards perfection and unless you take the initiative to find your path, then you'll never find yourself walking the journey.

“As you start to walk on the way, the way appears.” - Rumi

So take the time, take the initiative to work on yourself, learn how others have walked this path, look back at the paths that you have walked, tune your inner satellites, apply a star algorithm and pathfind it within yourself.

I decided to include the quote below because to me it speaks about potential, a potential of abysmal proportions that we all have, a potential that for most people is dormant. And it's only by taking the initiative on improving ourselves that we stand a chance at waking up the potential from its deep slumber.

“What lies behind us, and what lies before us are but tiny matters compared to what lies within us.” —Ralph Waldo Emerson

What is the key takeaway?

There are many things external to ourselves that we can take the initiative to change, improve or even create and it will most definitely help you become a good developer and a better person, but those things you took the initiative on are ephemeral and won't have a long-standing impact on yourself.

I firmly believe that the most important thing to take initiative on is bettering yourself.

Just like a bug in the code, if you merely patch it then there are good chances it might come back, but if you look deep into the source and trace where it originates from and fix it, then you'll never get angry at end-users again just because they're using the hammer you to spread peanut butter and jelly.

"There are a thousand hacking at the branches of evil to one who is striking at the root." — Henry David Thoreau

This article is heavily inspired by 7 Habits of Highly Effective People by Stephen R. Covey, although I'm not done reading it yet, I find there are mountains worth of value in reading this book.