In my quest to build my own software credo, I’m starting out with writing an autobiography of my career in software. In this post, I’ll describe what I’ve done and a few things that I learned about myself in the process.
When I was in 6th grade, a teacher had me write an autobiography. It was a brain dump of pen and ink in chronological order. Although this is still a great way to write an autobiography and is one of the steps that I took, there a couple of new ways to augment what you do online. If and when you do the brain dump method, it’s worth going back to identify peaks, valleys and plateaus.
The “My Maps” capability of google maps allowed me to create a google map of my software career. It includes places where I’ve worked, and places that shaped my ideas about software such as the elementary school were I placed “Oregon Trail.” My google map spans 1 province, 2 hemispheres, 3 continents and a few states.
It’s also useful to create a temporal reference, and it’s now easy to create and share timelines online. I put some of my important evens into a timeline with Timeglider
As my guide for this process, I’m using a resource from the Unitarian bookstore called, “Building Your Own Theology” by Richard S. Gilbert. It suggests a few activities you can do after you’ve “spilled the beans” to help pull out some information that may have gotten lost in the volume of data:
- Where did events take place in space
- Who were the 3 or 4 people that helped you the most or meant the most to you
- Which software communities have had a lasting impact on your development
- Important decisions you’ve made
- Happiest and Saddest Experiences
- Master themes
3 or 4 people who have had the greatest impact on my software career in no particular order
Mark was my mentor and boss at Equifax. He gave me confidence that I could write code, and stuck with me through my crazy experimental project. He knew everything about Unix and showed me. I have yet to meet anyone who knows half as much about the command line as Mark does. Since I consider Unix one of the great loves of my life, this is a big deal.
Steve had the greatest management attitude I’ve ever seen. He said to me, “You hire the smartest people you can find, trust them and things will be alright.” He made me feel set up to be successful. The fact that he saw me as a “cool kid” made me believe in myself as a cool kid. He is a tinkerer, and always had some interesting side project going on such as creating an iPhone app. When the iPhone came out and I said they were too expensive for me to have one, he told me that I should look at things like that as an educational investment. Steve is living proof that it is possible to be a great boss without helicoptering or micromanaging.
Dr. Lauren Hacker
Lauren taught me C++ and went beyond to help me when I was having a hard time with Physics II. If it hadn’t been for Lauren helping me in physics, I would not have passed my CS degree. She helped me write some pretty tough programs. Lots of people in class hated her crazy assignments, but they ended up being more like the real world. They were my initiation into the chaotic reality of building software in an agile environment.
Mark and I worked side by side together at Atlassian. Aside from having a great understanding of what real teamwork involves, Mark is a truly great tester. He taught me all about follow through in testing and I think of him every time I go one step further in finding a bug or testing something out. He taught me to scream “Hurray!!!” every time I find a bug or someone else does. He’s also recently written a terrific blog post on security testing. We both tested the hell out of Confluence together and would celebrate the end of every week with a Coopers and a “Cheers!” Here’s to you dude!
Dr. Orlando Karam
Dr. Karam shepherded me through my Masters thesis project at Southern Poly. I also took his Summer class on game programming which is one of the most fun classes I’ve ever had. You know the fun teacher who really knows his shit and will push you a little harder than you think you can go while still telling jokes? That’s Dr. Karam.
(This is the absolute smallest list I can make and the truth is, I’ve had lots of help from lots of great folks.)
Communities that have had a lasting impact on my software development
My blog & twitter network
There’s no way to overstate the support I’ve gotten through friends I’ve made with blogging and twitter. You guys know who you are and how much I appreciate you. This support network has helped reinforce my confidence. It’s made me a better writer, software developer & tester. When I’m feeling burned out it keeps me inspired and interested. It also helps me see what’s true if I end up surrounded by dysfunction as we all do at one time or another.
The Agile Community
As a pragmatist and someone obsessed with “getting shit done,” I’ve always been happy around the Agile community. While the word “agile” itself has become ubiquitous and means many things to many people, I’ve found that other people I know who love agile typically care about how they treat people, how the software treats people and they also have a tendency to find ways of cutting through bullshit in order to get the software out the door. While not every person who does those things self-identifies as an “Agilist,” and I’ve also met some real assholes who identify themselves as Agile, for the most part, I’m down with agile and the people in it.
AST-ers and CASTafarians
This is an organization that cares deeply about moving testing forward and their conference was a revelatory experience for me. I’ve gotten a lot of support from the people in this group and they’ve been there for me when I’ve found myself in a dark corner.
Important Decisions I’ve Made
Going back to school for Computer Science
Learning how to use the VI text editor even when no one at school knew what it was
It is OK and “A good thing” to open your computer, switch out parts or even break something if you learn from it.
Pursuing my distributed research project even when I only vaguely knew why I was doing it
Pursuing data visualization over concurrency for my masters
Moving to Australia and then back to the U.S.
Happiest and Saddest Experiences
Putting together my master’s thesis and doing the research
Writing about Art and Making software on the porch of the Durango Library with Zeger von Hese
Getting my paper accepted at PNSQC and the whole process of writing the paper, presenting it and then taking it “on tour”
Finding out that something I’ve written has helped someone out or inspired them
(I’ve pickled the sad ones and shoved them way back on the top shelf of my closet.)
Master themes of my Career
Unix is one of the great loves of my life.
Treating people well has to come first. It has to come before process. It has to come before the code.
I’ve found confidence with building software and I’ve fought to keep that confidence in tact.
I take huge risks even if I have no assurance that things will work out.
If I’m not doing something I think is creative and artistic, I am not happy
Too often, I’ve tried to make side-steps work instead of going for what I really want.
My best accomplishments happen when I have enough downtime to get creative.
I am more successful when I have a large goal to work towards and support in obtaining it
I’ve learned quite a lot from this exercise in autobiography and not just about myself. Hopefully some of the ideas above will inspire you to pursue your own autobiography. It’s worth mentioning that although we didn’t plan this and we are posting independently, Michael Larsen is also in the midst of blogging about his autobiography.
Next up in our credo work is “A Software Parable”