14 things you need to be a successful software developer: Introduction

A few years ago, I was asked to be the keynote speaker at a South African university conference and speak to their software engineering students. It was the first time I had been approached to keynote, so I spent some time with the organizers to understand their goals and what to expect from the audience.

The university had reached out because they knew me from years before, when I used to give entertaining yet deeply technical talks on Microsoft tech—things like Server AppFabric, WCF, T4 templates—and other technologies that have since moved from cool to the graveyard where old tech goes to live out its end-of-life.

The university had hoped that I would bring that same "wow" and technical depth to the event, but I had two issues with it. First, the tech I was using then was the least entertaining—Java—and so I felt the "wow" I could bring would be limited. Second, this was a keynote—there were plenty of wonderful speakers during the day doing tech and only tech. The lack of diversity in the content spoke to me, and I realized I had been given the opportunity to deliver a talk I had always wanted to give.

Early in my career, I had discovered Jim McCarthy’s 23½ Rules of Thumb talk, which he gave in the early '90s for Microsoft Consulting Services on what it takes to deliver software projects, based on his time leading the Visual C team. I watched it over and over again, gaining insights that no one I worked with had, and it sparked a lot of my thinking—even today, I rewatch it every year. I’d encourage everyone to watch that talk, not only for the guidance but also to see how shipping software has changed since the days of disks versus the cloud (something we can only appreciate in hindsight). The ideas he proposed later became Scrum, and his talk remains one of the most inspiring I’ve ever seen.

That’s what I wanted to do—so I proposed a talk titled 14 things you need to be a successful software developer. Why 14? I have no idea, but I knew I needed a number, and I felt like maybe 10 of Jim’s rules could be dropped or combined with modern thinking (though I wasn’t entirely sure). But close enough is often good enough.

This led to a few months of planning, refining ideas, and pitching them to trusted advisors before delivering it as a keynote—with major success! Then it was presented at the Developer User Group, Microsoft asked me to do it at the Azure event, and an attendee later invited me to give it to their employees. In fact, a year later, the university came back and asked for it all over again. It has been one of my most successful talks.

A few years have passed since that amazing run of presentations, and I’ve gathered new experiences that might influence my thinking. I also want to push myself to write more blog posts, so I’ve decided to turn this into a series—breaking it down into individual posts to see how they resonate with different audiences. Hopefully, this will excite or inspire you. If not, I hope it challenges you. If you’re eager to see it sooner, you can check out the slides from my last iteration here.