Sprint - a minimalist scrum management tool May 7, 2008
Posted by Todd in Articles.add a comment

Today I released my Google App Engine project called Sprint. It is a minimalist scrum management tool. My goals for writing it were to learn python, get a feel for Google App Engine, build a tool that I would like to use, and to see how fast I could complete a working release. It is admittedly still very rough around the edges. The initial release is missing some CRUD (specifically some UD) and some field validation on dates and other stuff.
The dashboard is aimed at the developer/user to make it really easy to see the sprint backlog items they have been assigned, their current estimate, and the date of that estimate.
The project page is more for the scrum master to see the bigger picture and to review a burndown chart for each sprint.
The backlog page is for product owners to record their product backlog items and assign each to a sprint.
Items, projects, backlogs are all ordered by title. I considered adding some sort of ordering mechanism but decided to let that wait in the interest of speed. Items can be reordered by naming them with an appropriate number on the front.
You can give it a try here: http://sprinthq.appspot.com/
Feedback is welcome (you can provide feedback here).
Tools and Statistics
I wrote Sprint using Textmate. I used blueprint.css as a framework for the layout and styling, and JQuery for the javascript effects and form validation. It is version controlled via git using the Textmate git bundle. It took me about a week and a half of work to complete the first release.
Making Memories with our Apple TV April 17, 2008
Posted by Todd in Articles.2 comments
Last year we purchased an Apple TV. My original reason for purchasing it was to eliminate all the CDs from our family room and to fiddle with putting videos on it to see how far we could get toward eliminating all the DVDs too. Little did I know that one of the features that I least cared about would be the one that made me fall in love, photos.
Shortly after bringing the Apple TV home and hooking it up I had achieved my goal. I packed up all the CDs, got rid of all the old and broken jewel cases, packed them in sleeves and relegated them to a storage box. My next order of business was to demonstrate the Apple TV for the boys. They thought it was cool to flip through the music and see the album covers, but I was stunned to see what happened next. I chose one of their favorite albums and started it up. After about a half minute of listening to a favorite song the album art faded to black to be replaced by our family photos floating upward across the screen.
To my surprise the boys were mesmerized. They were still listening to the music but they were also transfixed by the photos and started commenting on them: “I remember that”, “That’s when we …”, “Look it’s me and grandpa”, etc. I thought their reaction was cool but probably just a passing fancy with the photo screen saver.
I was wrong. Nearly a year later they still watch and comment on the photos every time we turn on some music. It was no passing fancy. It has become the way that we experience the family photo album, and I think it is better than the way I experienced family photos when I was a kid.
There are two reasons that I think it’s better, the first is frequency. Because we always use the Apple TV to listen to music the boys view and discuss our family photos far more than I ever did when I was little. I think this helps them build memories of their childhood that are far more rich and visual than mine.
The second reason is the randomness of the experience. When I was leafing through a family photo album with my parents it was always a sequential, page-by-page experience. In contrast, the photo screen saver on Apple TV selects photos randomly and displays them in larger and smaller sizes as they stream across the tv screen. I’ve seen the boys make connections between people and events of their childhood that I think were a result of seeing photos from different times and places streaming by at the same time.
I was definitely convinced that consolidating my CD collection on the Apple TV would be a great reason to buy it. Little did I know that the photo screen saver would provide such value for my family. It is our digital equivalent to sitting on the couch flipping through family albums, but even better. For us, making memories is the killer app on the Apple TV and we are tremendously pleased with the purchase a year later.
Master Craftsman: Bill Scheffler - Pure Prairie Organics April 10, 2008
Posted by Todd in Articles, Craftsmen.add a comment
For various reasons over the past two days I’ve been thinking more about true craftsmanship, what it is, why it is important, and why people don’t appreciate it as much as they should. As I was considering these questions I started thinking about examples of craftsmen that I personally know and/or admire and I thought it would be fun to periodically highlight those whom I see as true masters. (BTW - in the absence of a better gender-neutral word I’ll continue to use craftsman/craftsmen in reference to both men and women that I highlight.)
I have known Bill Scheffler for a year or two now. Bill owns a company in Wheaton, Illinois called Pure Prairie Organics. A year or so ago I enlisted Bill to take care of my lawn. He’s not a mower, he doesn’t trim the bushes or spray the trees. He’s a lawn doctor, a good one.
When I first tried to contact him about getting a quote we had a hard time connecting. We played a little phone tag, but Bill made it clear in his messages that he would be out of the office, so to speak, for the next two weeks. He was attending an organic gardening/farming convention in Wisconsin. It was the first indication I had that he really took his business/his craft seriously.
After I finally received his quote and signed up for a year of his service I started seeing more examples of his craftsmanship. Within a short time I think I recall receiving a welcome note and newsletter. Bill produces newsletters a few times a year and drops them off each time he comes to the house, and they are remarkable. As an example, in his latest newsletter (a 4 or 5 pager if I recall correctly) Bill discussed: expected local weather trends, his approach to organic lawn care, unfortunate upward trends in cost on some of his raw materials and some of the possible economic drivers, mowing recommendations, organic weed control, aeration, growing grass under trees, grubs, soil testing, etc. It’s like a short course in organic lawn care, and though I never imagined I would ever find such a topic interesting, Bill’s writing style and passion consistently make me want to learn more.
I am also lucky to have met Bill on a couple of occasions when he was visiting my home. On each occasion he took the time to talk with me about what he found in my yard, any changes he recommended, and any tips on taking care of my shrubs and bushes. He didn’t seem anxious to run off to another house and I think he would have given me a personal half-hour class on organic lawn care and gardening had I asked. Again, Bill’s enthusiasm, passion, and depth of knowledge came through and it made me very confident that I had chosen someone who would really keep my lawn looking great and educate me in the process.
Bill is a true master craftsman. Take a look around you. Do you know any master craftsmen? Write about them and tell your friends. More importantly, let them inspire you to be a master craftsman in your field. Bill definitely inspires me.
Do You *Really* Want a Rock Star Programmer? April 2, 2008
Posted by Todd in Articles.1 comment so far
Dear Interweb Entrepreneur,
I’m writing to express interest in your ad for a “Rock Star” Programmer. I am interested in knowing whether you really want employees who think they are rock stars. And, if you do really want someone who thinks they are a rock star, isn’t it bad form to come straight out and tell them? Seems uncool to me.
I suggest that you really want a Master Craftsman, an artisan, a virtuoso. Perhaps you really want someone who has a commanding presence but is still approachable, someone with quiet confidence whom people respect, a teacher, and a wizard with code.
If that’s who you really want, don’t come right out and say so. Try a different approach. Present them with the opportunity to solve a fantastically intriguing and unique problem that they just can’t resist, and let them know that you will make it worth their while.
If you don’t have such a problem to solve maybe you just need a solid journeyman programmer, someone who has solved problems like yours many times in the past and does so consistently and confidently.
Or, maybe you really do need a rock star to add a little glow to your otherwise completely unremarkable product. I’m just saying maybe it’s a good strategy for you…really.
Sincerely,
Todd
Minimalist Time Tracking with Basecamp April 1, 2008
Posted by Todd in Articles, Basecamp.2 comments
When we started using Basecamp for project management we focused on two basic features, milestones and messaging. We dabbled with to-dos, writeboards, and templates but never used them consistently. However, in late 2006 we decided that we needed to better understand how we were utilizing our growing development team (mostly external contractors). We needed time-tracking; however, I wanted it to be adopted quickly, consistently, and by 100% of the development staff. I needed it to be as easy as possible but still provide some useful decision support data.
Reporting Frequency
The first factor we considered was reporting frequency. We wanted to be able to make resource adjustment decisions monthly, so we needed a monthly report. We also desired a consistent reporting period. As a result, we settled on weekly reporting of hours worked during the previous Monday through Sunday period.
Granularity
The second factor we considered was granularity. Our goal was to generate reporting data that could be sliced and diced enough to provide meaningful decision support, but we didn’t want the team to spend more than 10 minutes per week recording time.
We ended up collecting three dimensions of time data including person, project, and category. We also collected time data in full hour increments rather than fractional hours.
To achieve high level categorization of hours we used a to-do template called TIME TRACKING with the following tasks:
- PRODUCT REQUIREMENTS
- DESIGN
- DEVELOPMENT
- INTEGRATION & TESTING
- LAUNCH
- OTHER
- PROJECT MANAGEMENT
We used upper case for all the task descriptions to make them stand out relative to any other to-do items that might be listed under a project. This to-do template was added to all projects with time tracking turned on. (We also used a shorter list of general time tracking to-dos for some generic projects related to bug fixing and other maintenance work). The time tracking option adds a small green clock icon next to each task. This provided us with a category dimension that was consistent but super easy to collect.
Entering Hours
The process to enter hours was really simple. Each week, preferably on Monday when memory was freshest, each team member would go to each project they worked on during the previous week and click on the to-dos tab. Then, one at a time, they would click on the time tracking icon next to one or more tasks in the TIME TRACKING list and enter the total number of hours they worked during the week on that project on that category. The hours were always reported on the date of the Sunday at the end of the reporting period. So if a week was missed for some reason the hours could be entered later with the correct Sunday date. Finally, team members entered a short note, one to two sentences, to indicate what they did during the hours they reported.
Training
Training on the process was pretty straight forward. We went over the process with the team using a Webex teleconference and I produced a short screencast video (for future team member training and review) that we kept on our internal wiki.

Reporting
Once we had the tracking process in place, and everyone was consistently reporting hours, generating monthly reports was a fairly trivial task. Each month we would look over the time reports for the previous month to make sure everyone had reported for all periods and there were no obvious omissions. We then exported the time report in csv format and opened it with MS Excel. Within Excel we created one or more pivot tables from the report data. We generally reported hours by project, by person, and by contract company (a dimension we could add directly in the spreadsheet). We also compared total hours reported to total possible hours using some assumptions to get to a 100% utilization baseline.
Costs and Benefits
Overall we estimated that the process cost us about 10 minutes per resource per week plus 15 minutes of project management time to download and generate management reports. The resulting data and pivot table reports provided us with more than adequate decision support information.
Conclusion
We were very pleased with the Basecamp time tracking solution. We were able to generate meaningful decision support reports with very minimal burden on the team and at very low cost.
Clearly, this solution was tailored to our situation. As an internal product development organization we did not need the granularity and accuracy that would be required to bill hours to clients.
If you are in a similar organization and you are considering using Basecamp, or already do, I recommend you give this process a try.
Props
I tip my hat to Jennifer Glaeser who helped to define and implement this process (the “we” I refer to above). Thanks Jen.




