I currently specialize in writing Ruby code for functional user interface testing of web applications; and I value continuous improvement of testing and development processes.
- Open Source Projects:
- Owner of Selenium WebDriver (Ruby bindings)
- Lead Developer of Watir
- Lead Developer of Watirmark
Quality is something that needs to be owned by everyone on the team from the very beginning of the development process. It should not be solely measured in bugs found by customers, but also by ease of understanding and flexibility to make changes. When done properly, Test Driven Development helps to ensure that software implementation decisions are made in a way that promotes easier long term maintenance. Good testing suites allow teams to have confidence that the changes they make to their product will not break other features.
Functional testing with code represents a revolutionary change over traditional manual testing. The methodologies and approach a company takes today needs to be fundamentally different than five to ten years ago to more fully leverage the unique advantages. Tests need to be decoupled and granular. When possible, APIs should be used to do the heavy lifting of setting up, tearing down and validating results. Writing scripts that mimic what manual testers have done is not a substitute for significant investment in experienced developers who can design and execute a focused, adaptable testing framework.
Software Development Background
Software Development is not my first career. I went to the Naval Academy and majored in mathematics, focusing on Operations Research. I loved it, but the Navy needed more submarine officers than operations researchers. So I studied all of the nuclear and other engineerings required to run a reactor plant in the middle of the ocean. The lack of sunlight put a decided damper on my staying in the submarine service. So I left the Navy and took a job as a process engineer at a semiconductor manufacturing company. Working in a clean room was more fun than being on a submarine, but still not what I wanted to do for the rest of my life.
When casting about for what I wanted to do when I grew up, I kept coming back to an experience from my time in the Navy. My final six months in uniform was actually spent in Baghdad working on General Casey's staff. Essentially the Army couldn't push all of the paper that needed pushing by themselves, so they recruited officers from other services to help them out. The paper flow process was painful and slow (including printing things out and hand typing written corrections, etc). As such, I sought out the Knowledge Management Department to work with them on getting the whole system automated. The officer in charge had taught Computer Science at West Point and commented that the way I approached the problem and my instincts would make me a good software developer. I didn't really know what he meant by that at the time, but I'd enjoyed writing basic perl scripts for websites I'd done. I figured that at least there would be more flexibility with a software career than what I'd done in the past.
I went back to school to take a year of graduate and undergraduate courses in computer science in preparation for a career as a software developer. It provided me with a wonderfully structured environment to learn both theory and good basic engineering practices for writing clean code. I have 8 graduate credits and 18 undergraduate credits, which I've actually found extremely useful so far.
My first job was at a startup with some really smart people (one of them had written an O'Reilly book). On my first day, my manager idly mentioned that he needed someone to figure out "this selenium stuff," and I jumped on the opportunity as a way to be immediately useful to the rest of the team. Figuring out the software meant I was focused more on testing than development at that time, but it also gave me more insight into how the overall process worked, and how to see the bigger picture. With each new job I've taken I've written fewer tests and spent more time focused on writing the software that my colleagues use to write the automated tests. I love this combination of real software development and focusing on the bigger picture of how testing actually facilitates the business needs of a company.
I grew up in Portland, OR. Then, because it seemed like a good idea at the time, I attended the Naval Academy and served for a number of years as a submarine officer. During that time I lived in Annapolis, MD, Charleston, SC, Groton, CT, Port Orchard, WA, and Skokie, IL. When I left the service, I decided on Austin, TX. I'd fallen in love with the people, the youthful progressive vibe and the overall laid back attitude. I briefly tried to escape to Seattle, WA, but once you experience sun during a winter, it is hard to go back to incessant overcast skies and drizzle. It wasn't long before I moved back to Austin.
I Dance to Swing and Blues Music
I used to do a lot of swing and blues dancing. As things tend to do, the people and the music and the favored dance styles changed. The popular music went from 1950s soul jazz and mainstream jazz to early 1930s Charleston. The dance styles became more stacatto and hard hitting, and I increasingly missed the stretchier and more laid back feeling. In order to hear the music I most enjoy dancing to, I got together with a friend and started Groove Austin. At this point, it is a monthly dance on the fourth Thursday of the month at the Texas Federation of Women's Clubs. It is held in conjunction with the weekly Austin Swing Syndicate dance.
I Travel to Interesting Places
The states I've visited
The states I've danced in
I Knit Cool Things
Several years ago, two of my favorite people in Austin started a knitting night. One of the women enjoyed making beer coozies. When I asked if she'd make me one, she suggested I learn to make myself one. Since I didn't get to see my friends much anyway, I decided that it would make a lot of sense for me to join them.
I disovered that knitting was really good for me. I often find relaxing difficult. Even sitting watching TV, I'm often fidgety. I need to be on my phone or doing something else. Watching TV and knitting is extremely calming. Plus, my friends get cool things when I knit.
I host a weekly knit night at my place, and most of my projects are visible on Ravelry
I've taken the beer coozie to a new level with my own pattern and custom logos. I've made several dozen of these so far with a couple dozen different logos. I don't take orders or sell them, but I like finding logos that mean something special to various friends, and adapting and incorporating them into a personalized coozie.
I Read Fun Books
My reading has picked up again considerably in the past few years. I use Good Reads to rank and write reviews of the books I read.
A number of years ago there was a meme about BBC's 100 important books. that had nothing to do with the BBC and had a lot of veery peculiar choices. I decided to make my own list of 100 important books and start reading through all of them. I didn't want it to be the best books, because I have no way of evaluating those, but rather books that are familiar in popular culture and are highly considered or influential in their time. I've posted this list as a Facebook note, and at some point I'll write it all out on Goodreads and link to it here.