Archive for May, 2010

We All Live In An Uncle Bob Dialog

May 31st, 2010

Robert C. Martin (affectionately known as “Uncle Bob” in the development community) has a number of great books demonstrating the benefits of OOD/OOP and good design principles. Those acquainted with his books will also be familiar with his generous use of conversation dialogs between developers.

A sample excerpt:

RCM: “Will you help me write a little application that calculated bowling scores?”
RSK: “… Sure, Bob, I’d be glad to help. … I used to be a pretty good bowler … “
RCM: “Let’s begin with scoring a single game …”
RSK: “OK, we’re going to need some test data. Let me sketch out a little picture of a scorecard …”
RSK: “Shall we start at the end of the dependency chain and work backward? …”
- A Programming Episode from Agile Principles, Patterns, and Practices

This dialog continues for some 40+ pages as we’re walked through a paired programming session demonstrating test driven development and refactoring techniques. Admittedly, while reading these dialogs, I initially thought they were a bit over-the-top (campy), but as I actively listen to the communication happening within my team I realize that these dialogs are happening all around me.

An excerpt from this past week:

Me: “Will you help me write a stored procedure to retrieve the customer’s cart items count and default lightbox items count?”
Dev: “Sure, Adam, I’d be glad to help.”
Me: “Cool! This will be more efficient than aggregating the data from multiple repositories …”

Pull yourself in, that’s right, a little closer to the campfire, now sing it with me, “We all live in a yellow submarine… errr… an Uncle Bob dialog, an Uncle Bob dialog.” :)

Author: Adam Kahtava Categories: Musings, Software, Testing Tags:

Book Reviewed: Rework by Jason Fried and David Heinemeier Hansson

May 27th, 2010

Rework by Jason Fried and David Heinemeier Hansson has been on Amazon’s top ten list for a couple months now and for good reason, it’s captivating, easy to read, engaging, and fun. However, I was disappointed with the lack of references. If the authors had included references to texts that back up many of their opinions (books like the Mythical Man-Month, Peopleware, etc…) then Rework could have more impact on corporate decision makers. Unfortunately, without the external references this book is easily passed of as highly opinionated and subjective.

Author: Adam Kahtava Categories: Book, Review Tags:

Transparency, the Underpinnings of Becoming an Unprofessional

May 25th, 2010

The business world is full of “professionals” who wear the uniform and try to seem perfect. In truth, they just come off as stiff and boring. No one can relate to people like that.
Don’t be afraid to show your flaws. Imperfections are real and people respond to real. … Don’t worry about how you’re supposed to act. Show the world what you’re really like, warts and all … talk like you really talk. Reveal things that others are unwilling to discuss. Be upfront about your shortcomings. … You might not seem as professional, but you will seem a lot more genuine. – Rework: Jason Fried, David Heinemeier Hansson

I’ve struggled with the personal vs professional tension for sometime. Back in 2002, I started this site with the intention of professional self promotion (image above is my site from 2003). The results were predictable: the tone boring, the topics dry and most visitors saw through the veil of self promotion. I’ve matured since then (well I hope I have). :) Over the years I’ve found that a personal, down-to-earth tone maintains a healthy level of transparency both on the web and in real life. As Gandhi once said:

Happiness is when what you think, what you say, and what you do are in harmony.

Author: Adam Kahtava Categories: Musings, Personal Tags:

Install Git On Windows With PowerShell

May 4th, 2010

I like Git and here's a PowerShell script that I use to download and install Git on my Windows based development machines.

  1. # Installs git for Windows via PowerShell
  2. #
  3. # Sample usage:
  4. #
  5. #  Install git:
  6. #    PS> install-git
  7. #
  8. # Adam Kahtava - - MIT Licensed
  10. function global:install-git {
  11.   install-file ''
  12. }
  14. function global:install-file([string] $urlPath) {
  15.   $filename = download-file($urlPath)
  16.   invoke-item $filename
  17. }
  19. function global:download-file([string] $urlPath) {
  20.   $urlSplit = $urlPath.split('/')
  21.   $filename = (Resolve-Path .).ToString() + '' + $urlSplit[$urlSplit.length - 1]
  22.   $webclient = New-Object "System.Net.WebClient"
  23.   $webclient.DownloadFile($urlPath, $filename)
  24.   return $filename
  25. }

Not familiar with Git? Then head over to the best online Git resource available.

You can find more of my PowerShell development scripts here.

Author: Adam Kahtava Categories: .NET, PowerShell Tags: