Friday, January 28, 2005

Agile Development

I’ve recently been exposed to Agile Software Development. For years, I worked in a consulting practice where we were asked by clients to “estimate” how much time and money it would take to build “this application.”

Unfortunately, this is an impossible task. First, we never had a well-organized repository of past experiences that we could draw from to help us. Second, you just can’t know everything there is to know in software development up front. Things will change during the process of building the application. So, we would magically pull some numbers out of the air, pad them and then present a range to the client. Of course, we would tell them that a “Discovery Phase” would occur, after which we would have a more precise estimate.

Even if you conducted a thorough Discovery Phase, interviewed all the stake holders and all the users, you still will most likely not have all the information needed. There will always be things that weren’t thought of or things that become more or less of a priority.

So, in the end what happens is the project gets built, it may or may not meet all the needs of the client, and it most likely cost more than what was estimated at the outset.

The Agile process is designed to allow for this. It is based on the principal that it values:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

I’m very new to this process, but here is a high-level overview as I understand it:

The decision is made to proceed with a software project. Of course, a lot goes into that decision, but we’ll assume that the company needs this project done.

So the first question is, what does the project do, and how difficult is it to build?

To define what the project does, User Stories are created. A user story is a description of what the software needs to do from a user’s perspective. There is not talk of specific technology here, just a description of what happens (similar to a use case). The user stories are defined by having as many users or stakeholders as possible meet to discuss the purpose and functionality of the software. Each user story is recorded on a note card.

Once the user stories are defined, a forecasting session is held to determine the effort required to build the software. At least two developers should attend the forecasting session. Each user story is reviewed, and the developers each assign a point value to the user story.

This point value (called a story point) is equal to one ideal engineering day. The more complex the user story the higher the point value (or, the more days it would take to build).

If the developers disagree on the point value, it is discussed until a consensus is made. The great thing about this forecasting session is that everybody is involved in forecasting the project. It is just someone pulling numbers out of the air; the users and stakeholders are all in the room and they are learning about the amount of effort required to build the software.

Once all the user stories are assigned a point value (and if a user story has a high point value, it is broken up into several smaller user stories), they are then assigned a priority.

Based on the prioritization of the user stories, work can begin. The project is broken up into iterations. Iterations are typically 1 or 2 week periods of time where a release is made. This allows the users or clients the ability to see what is being built, and to test it.

At the end of each iteration is a review of what has been accomplished, and a determination of what user stories will be attacked in the next iteration.

Just like forecasting the weather, it cannot be determined what will happen too far in the future. For this reason, the entire project is never “estimated.” We have an idea of how much time each user story might take, but as the project progresses, we may learn things that change that. Just like the weatherman changing a weekend forecast as the week progresses, the project manager is adjusting forecasts as the project progresses.

Of course, for this to work, a great deal of communication is required between the development staff, the project manager and the customers. But since, the project is being released in iterations that require acceptance testing before they are “complete,” the communication is inherent in the process.

There are several other advantages to using this process. Instead of taking hours and hours creating a large spec document that nobody will read, we are creating easy to read note card user stories. These are quickly created and everybody has feedback in their creation. Developers can spend their time writing code, and not writing documentation. The code should be well written in a way that describes itself. A large document that nobody will read is not necessary.

Over the next several months, I will be on a development team using this methodology. At first blush, it seems like a simple, logical methodology that allows everybody involved to be fully aware of what is being built and the effort required to build it.

Here are some books if you’re interested:
“User Stories Applied” by Mike Cohn
www.mountaingoatsoftware.com

“Lean Software Development” by Mary Poppendieck
http://www.poppendieck.com/

Monday, January 17, 2005


My New Office Posted by Hello

Thanks to all

As I head toward a new path in my career, I would like to take time out to thank the folks who have helped me along the way.

First and foremost, Dan Fox has always been the person I look up to the most. Dan helped me build my first ASP application some 7 years ago, and has helped me out ever since.

Along with Dan, Jon Box was instrumental in driving me to become more and more knowledgeable in .NET and other Microsoft technologies. I especially enjoyed the time the three of us worked together on a team, and I thank Manish Chandak for allowing me that opportunity.

And of course, Rick Kight thought enough of me to hire me and guided me along the way. Thanks, Rick for being a great manager, co-worker, and especially friend.

I will never forget the friends I've made over the last 7 years - Chris, Lindsay, Michael... too many to name them all.

Thanks to everybody, and I certainly hope we can all keep in touch.

Friday, January 14, 2005

Randomness

I don’t really have anything substantial to write, so here’s some rambling…

• David Letterman on Carlos Beltran’s new team: “I've looked at this deal from both sides and it's really a great deal for Beltran. One hundred and nineteen million dollars, plus, with the Mets, he gets Octobers off.”
• Mike Sweeney states he was “misled.” He says that he was given the impression that the Royals would eventually up their payroll to around $60 million to build a contender around Sweeney. For the record, this season’s payroll is around $41 million. Sweeney says, “I'm not 25. I'm 31 years old. Only God knows how many years I have left to play. I want a chance to play in October.” Can’t say I blame him.
• Potty training a puppy is becoming an exhausting task. Somebody should open a housebreaking service. I’d pay any price!
• I just received my spring training tickets. For the second straight year, Dan and I (along with others) will be trekking to Arizona to catch some Cubs and Royals spring training games. This is a great way to get excited about the coming summer. I’m getting excited already.
• Kudos to Bud Selig (and the players’ union) for implementing a steroid policy in MLB. It’s not as tough as it should be (why isn’t “speed” illegal?), but it is definitely a step in the right direction. Hopefully, we’re coming to the end of the “lively player” era.

Thursday, January 13, 2005


What's so exciting about the new GTO? Posted by Hello

Wednesday, January 12, 2005

Return of the Muscle Car

I've always been partial to the Ford Mustang. When I was 15, my parents helped me buy a rusted out 65 Mustang with a 6 cylinder engine and a 3 speed manual transmission. I learned to drive a stick shift by driving that car up and down my driveway while I waited for my 16th birthday.

A year or two later, I found a '66 Mustang with a 289 V8 engine and automatic transmission sitting in a grass field. I bought it and my dad towed it home. It had been sitting in the field so long that the floor boards were rusted out, the drums were rusted (it took a while to get the wheels to spin to tow it home), and the brake lines were nonexistent. I did all the work myself, getting that car road-ready. I drove it to high school and to all my dates with my girlfriend.

So, I have fond memories of the old Mustang. Of course, I sold it and then regretted it. Years later, my friend Kris saw a '66 Mustang convertible at an intersection. He asked the girl driving it if it were for sale. She gave him her dad's phone number, which he gave to me. A couple of weeks later, it was in my garage. (see it here)

So, naturally I was excited to see the new 2005 Mustang. I must say, Ford hit a homerun with this one. It's not perfect, but I think it has just enough mix of old styling with new innovations to make it an exciting car.

I was also excited to hear that Pontiac was reviving the GTO. GTO is another classic muscle car from the '60s. I was anxious to see what retro styling cues Pontiac would use in the new model.

I was very disappointed to see the final result. What makes the GTO any different than any other Pontiac (or any GM car for that matter)? There is nothing distinctive about the styling of the car. And for a base price of $33,000, I would want something a little more exciting. Ford's done well to offer the Mustang GT at a base price of $25,000. (and the 6 cylinder Mustang base price is only $19,000).

Of course, I'm partial to Ford because of my emotional connection with the Mustang, but I really feel Pontiac missed the boat on this one. It was a great opportunity to revive the muscle car with a distinctive throwback model that could compete with the Mustang. Instead, we got just another Grand Am with extra horsepower.

Tuesday, January 11, 2005

XM Online

One other comment about XM. I subscribed to XM Online, which allows me to listen to XM Radio over the internet.

XM allows users to a free 3 day preview of XM Online, which gives access to all the music channels, plus XM Public Radio, a couple of comedy channels, and the Opie and Anthony show.

XM Online by itself is available for around $8/month. XM Radio subscribers can add XM Online for about $4/month. Silly me... I assumed that the free preview made a limited number of channels available and that as a subscriber, I'd have access to all of the XM channels. Well, after paying $48 for the year (the only option available), I found out that the same limited channel selection is available.

None of the talk channels are available. None of the sports channels. Why would I pay $4/month to hear songs? I can hear songs anywhere. I thought that was very frustrating. Plus, the web site doesn't make it clear that XM Online provides only a limited number of channels.

Squishy Audio

Now that I've been listening to XM Satellite Radio for a while, there is one thing I've noticed that can be a bit annoying. XM compresses the audio so they can provide more and more channels on their existing bandwidth. The downfall is, of course, the more compressed the audio, the poorer the audio quality.

It is especially noticeable on the talk channels, but the music channels also suffer. (and the city-specific weather/traffic channels are nearly incoherent) XM says they've been "experimenting" with different audio transmission techniques, possibly causing the poor audio quality. Here's hoping they will launch another satellite to increase bandwidth and thus allow for less-compressed audio. I'm sure XM has plans for adding more and more channels, and hopefully they won't make room for them by further squishing the existing channels.

Monday, January 10, 2005

NLBM

After meaning to for a long time, my son and I finally went to the Negro League Baseball Museum over the weekend.

If you're in the Kansas City area, I would highly recommend visiting the museum, located in the historic 18th & Vine area of Kansas City.

The museum contains many exhibits that describe the great teams and players of the Negro Leagues, as well as their struggles during a time of prejudice and segregation.

The one aspect that I will always remember is the fact that during WWII, our country was sending young men (black and white) off to fight a war against a bigot (Hitler), and yet, in our own country, racism was an accepted part of life.

There were some great players who played in the Negro Leagues, include the venerable Buck O'Neil who recently celebrated his 93rd birthday. Buck still lives in Kansas City and is the chairman of museum.

The highlight of the museum is the Field of Legends which features life-sized statues of great Negro Leagues players positioned on a baseball field. The manager of this legendary "team" is Buck O'Neil, looking on through the fence. Pitching is the tall Satchel Paige, who is throwing to the great hitter and catcher Josh Gibson. The field also features statues of "Rube" Foster, Buck Leonard, "Pop" Lloyd, "Judy" Johnson, Ray Dandridge, Oscar Charleston, Leon Day, "Cool Papa" Bell, and Martin Dihigo.

The museum gives baseball fans a chance to learn about the great players of the past. Players who were every bit as good as the white players in the major leagues.

Thursday, January 06, 2005

Ashleeeeeeeeeeeuuuuuughhhhh!

I thought maybe I was just too old to understand what them kids are listening to these days. I mean, really. That Ashlee Simpson song during the halftime show of the Orange Bowl was just awful. But then again, everytime I watch an MTV Video Awards show or the Grammy's, I think the same thing - this music is awful.

But then the boos rained down on poor Ashlee, and I began to feel a little better. Hey at least there were a few folks in the stadium who agreed with me.

And now, this column on MSNBC by Michael Ventre puts the dagger through the heart. To echo Ventre's thoughts, we (and the FCC, I'm sure) would have welcomed an exposed boob over her singing.

Tuesday, January 04, 2005

Identity Crisis

The Angels have again changed their name. Remember when they were simply the California Angels? That seemed to be the best name for them, in my opinion.

But then they changed to the Anaheim Angels. I guess they didn't want to represent the entire state.

And now they've changed again to the Los Angeles Angels of Anaheim. Huh? I hate to break this to you guys, but everybody's still going to call you Anaheim. When you say "LA," folks will be thinking the Dodgers.

Mickey Mantle Posted by Hello

Mickey Mantle

On New Year's, we welcomed a new member of our family. Mickey Mantle is a little Bichon puppy, 3 months old. He's a great pup, and he can really play ball.