I had something happened this weekend that made me realize how much of a geek I am. I always knew this down in my heart, but this really proved it. But first, some background.
My wife owns a small business. Although I have a fulltime job as an agile coach, I work some nights and weekends helping her with her business. Anyone who owns a small business will attest that the work is never done, they just decide to be done for the day.
Over the weekend, I was helping with the year-end Christmas card mailings. To accomplish this, I needed to downloading the name and addresses of all the clients that visited either location over the last 12 months, cleaning the list, and printing out mailing labels. Since we planned to mail out around 2200 postcards, I planned to use Excel to clean up the addresses. (No, using Excel is not the geeky part, that is still coming).
Once I got the list downloaded, I started to append and clean the various addresses fields. My goal was to write one excel equation that would append the various address fields correctly regardless of the data within the field. Looking the data, I quickly realized I had four different cases. I started by writing an equation that would work with the happy case. Before moving to the next case, I verified that the equation was returning what I expected. I then expanded the equation to handle the second case and verified the equation worked with both case one and case two.
That is when I had the epiphany, I was using Test Driven Development (TDD) to clean up the mailing list. I wasn’t using all the rigor that a full development team would use, but I was using simplified TDD. I started with an understanding of how to pass each test (correctly format the address) and I wrote just enough to pass the test. I worked from the easy case and proceeded through the other cases, verifying that the equation formatted the address correctly.
As humans, it can seem natural to overcomplicate things. Trying to implement practice like TDD can seem overwhelming. Reading how other people are implementing these practices can discourage starting out. Just remember, what you are reading is not their first iteration or there first try. Don’t let perfect get in the way of good. Give that change a try. My example of using TDD is far from the gold standard of TDD, but it accomplished the goal, to produce a product (mailing list).
As we reach the end of 2017, what can you do to try something new? What can you do to help your team or your family try something new? It doesn’t need to be the gold standard. It can be just good enough. The key is giving it a try.
Image from http://itssimpleholidays.files.wordpress.com/2010/11/christmas-card-table-runner-5.jpg