I was in Elementary school, perhaps 4th or 5th grade, when I came across an interesting book in our school library. It purported to teach the reader how to make their own computer games. Using some derivative of the BASIC language, it provided tutorials and the code to do various jokes and simple games. I recall specifically one program that asked the ‘player’ to point to their head and say the abbreviation for mountain (which is MT) three times. Then, after a few seconds the computer program would print out ‘It sure is!’, as it had duped the player to saying their head was empty out loud.
And while it would be cool to say from that day I was hooked at writing computer programs, the truth is a bit different. Sure, I wrote a few dozen programs as a kid, but by the time I was a teenager, I had moved on to other interests until my senior year in high school, where I decided to take a programming course. This class was also based in BASIC and I took to it like a fish to water. It felt like an old friend, but with age came a better understanding of what I was telling the computer to do. Where before stood insurmountable obstacles to my understanding were now gateways to a brave new world.
When I applied for college, I opted to major in History, but this did not last. Before I took my first class, I was a Computer Science major and never wavered from that path.
In 2004, in a graduate level class taught by my favorite professor, we learned about technical practices, agile development, and something called “Extreme Programming”. This exposure to XP was the first time that I felt like a professional software developer in college.
During my senior year though, I faltered. Through ignorance on my part, I missed the career days and questioned if coding was really for me. I didn’t start my first job until 2 months after college, and then it was a job as a QA Engineer. It was at this time I wondered, “Why am I coding?” and decided to start my first blog of the same name.
For me, coding started as a hobby, and I’ve always worried coding professionally would cause me to lose my passion for it.
But regardless, a year after graduating college I transferred to a role in Software Development and worked on many different projects for a number of years. Most of these were “waterfall” projects. But, in 2009, struggling to keep track of so many tasks, I discovered Kanban and embraced it for managing all that I was working on. I even went so far as to build a Kanban board app in Ruby on Rails and hosted it kanbanfordevelopers.com. In 2010, I moved on to a new job, where I worked with Kanban until 2013.
In 2013 though, an opportunity presented itself for me to be a Scrum Master for a Scrum team. I jumped at the opportunity, as at the time, it was only a part-time role. I thought this new role would allow me to ‘come out of my shell’ and learn to exist in an extroverts world.
But a few months later, the organization decided it was time to have dedicated Scrum Masters, so I reluctantly gave up software development for the first time.
About a year later though, I was bitten by the coding bug again, and jumped at the opportunity to be a split Scrum Master/Software Developer again. This time, I had the added challenges of working with a team that was new to agile, the organization, and was tasked with maintaining a legacy system where we had no one to ask how things worked.
And this time was fun. Perhaps some of the most fun I’ve had in my professional career. But I came to realize that by being a split role, I was hurting my team, so I gave up software development for the second, and perhaps final time. But this time, I did it knowing why I was doing it: the teams I coach can only be coached effectively if I give them my full attention, I stay completely neutral on technical decisions, and I use my coding powers for good and not evil.
So why am I NOT coding? So I can best coach, help, and grow the teams I work with.