My first few weeks at my new job involved writing code to solve problems and taking the comps from Creative and turning them into a website. After I got the sites together we started the “Quality Control” phase. My coworker went through the sites with a fine tooth comb. He compiled a list of everything that was out of place or didn’t work on various browsers. One list contained over 170 items to be corrected.
I like a to-do list as much as the next person but this type of list borders on spirit-crushing. I look at it and feel overwhelmed. Some of the items I cannot act on currently. Even if I took the un-actionable items off my list, 90 percent of the list would remain. Many changes require sifting through the CSS to find the exact combination to make the box move five pixels to the left. If I’m really lucky, the change I make for IE7 will then cause an issue in IE8.
I don’t enjoy what I consider technical “housework”. I enjoy building the code equivalent of a tree house or tinkering in the garage. When it comes to cleaning the virtual bathroom grout with a toothbrush, I want to do anything but that. As I have thought about this I can’t help but think of the personal projects that litter my servers. In no particular order:
Geek-Maps.com - The idea for this site was spawned after episode 718 of Buzz Out Loud. The fun part was making it work and getting mentioned on a later episode. But then I started thinking about all the additional features I should add. Combine the multiple design possibilities running through my head and it never got past the initial phase.
Inventorymystuff.com - A site catered to churches to track their books and allow members to request books.
TwoBirdsOneStone.org - You register a goal you want to reach and a charity to raise money for. Your social network provides encouragement for you and funds for your charity. If you fail to reach your goal, you are on the hook to match a percentage of the money raised.
There are a number of reasons I failed to follow through on these projects. The idea was interesting but I couldn’t justify the time for a site that wouldn’t really accomplish anything. Time constraints with my personal life and my day job. I would think of more and more features and I couldn’t see an end in sight. Another promient problem was after the initial challenge was solved, the project wasn’t as fun.
After a quick glance at my bookshelves, you would find costless books with bookmarks poking out of the top. Generally, I get 20–30 pages in before being distracted by another shiny book. The Kindle app on my phone shows over 10 books in various states of progress.
All this self-examination has caused me to evaluate how I respond to “technical” housework. I adopted a few practices that have helped as I slog through these QC lists.
Triage the list - My coworker went back and grouped all the functional items together. It was smaller and I could see progress as I worked the list. I will implement that on my next project.
Attach action items to tasks - Over the past week I have taken a few minutes once or twice a day and just read through the list and determine next actions. I flag whether it needs to be discussed or I require an asset from Creative.
Stop whining & get to work - This has had the most impact, but is the hardest to implement.
I may enjoy creating treehouses and tinkering with new libraries and technologies; however, I am short-sighted and I miss many “small” things that wreck the user experience. I make a really great treehouse but forget to put in a ladder. Case in point, I constantly forget to see how my code is going to respond in IE7. Some of the cool things I implement make the site unusable in IE.
So I remind myself that everyone is not out to get me and make more work for me. I triage my list and get to work. Before I know it, that list will be gone and we will ship a great product.
Do you struggle with wanting to build the treehouse and not clean the tile? How do you balance it?