My Journey as a Software Craftsman
By: Dan Stewart
December 20, 2020
I began typing at a very young age.
In 1998, my dad bought an email account through an Internet Service Provider. Along with the email came 5 MB of website storage. I learned HTML and quickly filled the website with animated gifs.
With two days of HTML experience, I landed a job as a Web Content Administrator at the Stillwater News Press. At that time they called me a "Webmaster". I was responsible for publishing the daily newspaper articles to the website.
From that point on, I was addicted to the Web. I built websites for the Human Resource Management Association at Oklahoma State University. I also built a site for the Student Academic Mentor program.
It was my senior year at OSU and switching to a computer science major was not in the cards. I completed my degree and worked for a year. Then I went to the Information Technology Institute. It was an intensive nine months of programming, and I ended up graduating valedictorian. Unfortunately, the school was a casualty of the Dot-com bubble and closed down.
First Programming Job
Fresh out of IT boot camp, I landed a job at petroWEB as a Web Developer. Graduating top of my class gave me a lot of confidence. I worked hard to learn ASP, but I stopped when I had learned enough to do my job.
The Hacker has a different attitude. After sort of getting the hang of a thing, he or she is willing to stay on the plateau indefinitely.
Mastery by Leonard, G.
I was the hacker from George Leonard's Mastery book. I would work hard and do my job, but only my job. I didn't push myself. This would be my pattern at I get It and the College for Financial Planning up until 2009.
For 10 years I got by on being smart and improvising. In the book, Nurture Shock by Po Bronson, chapter 1 talked about the "inverse power of praise". My friends and family would tell me how good I was with computers. I graduated top of my class, work was easy for me. This kind of praise lulled me into a false sense of security. All of that crumbled in 2009.
For the first time in my career, I had a chance to work on a Greenfield project with a Master Craftsman. He wanted to use:
I was completely lost.
This was the shock that I needed to wake me up. This experience got me into Software Craftsmanship, user groups, and writing this article. It is humbling to describe my journey. It is far from over, but I finally feel like I am on the path to mastery.
I then began to practice and improve my skills.
Train, practice, repeat, build a pattern, and acquire…
I need to remember to pause as I program.
If you practice pausing to take inventory even in the middle of actions, the procedure eventually becomes automatic, at which point it is so swift it is virtually instantaneous.
Whether you are on the mats or in the middle of everyday routines, time off can be more important than time on. You learn to weigh all relevant data in your goals and then strategize the best plan to get you where you want to be—leaving enough flexibility, of course, to recalculate and restrategize as you flow.
Beyond book smarts, a programmer needs time and motivation. How do you become a better programmer? By programming!
First Quality Engineer Job
In January 2014, I was promoted to Quality Engineer. I would tell my friends, "Instead of making stuff, I'm breaking stuff." After 17 years as a Web developer I was ready to become a tester, but I didn't want to give up programming. So I reinvented myself and found that testing was a joy. In May 2016 I was promoted to Senior Quality Engineer. My focus was on test automation along with test planning and test case management.
First Product Management Job
In March 2020, I was promoted to Associate Technology Product Manager (TPM). I work alongside another TPM on a student homepage for Kaplan. Her role is to work with senior leaders on a roadmap. Then she collaborates with designers and researchers creating the designs that the team will work on. I take these designs and create Jira tickets. Then I work with the team in refining the tickets. I act as the product owner setting priority and answering questions. As we near the release of the feature, I conduct user acceptance testing. After the release I monitor the product to ensure things are working in production.
This quote represents the content of this website.
The material presented here neither is complete, nor is it entirely firmly established at the present date. Furthermore, it is hoped that this manual will bring about comments and questions by those who program.