Monthly Archives: November 2007

Team building

14 Nov 2007
by mjeaton, posted in Uncategorized   |  Comments Off

After reading this post by Keith Elder, I started thinking about the teams I’ve worked on in the past and the idea of “team building”.

Looking back over the years, I can honestly say that the team at Spartan Stores (Steve, Pete, Jay, Rahul, Pete W., Wally) was the best I’ve worked with.  I worked with some really smart people that knew what it took to write top-notch software.  We knew when to work, but we also knew when to play.  While it was never official, our team building consisted of lunch trips to the local bike shop and the occasional day trip to one of the local mountain bike trails.  There were many times when we’d have meetings and someone would be riding their mountain bike in the office around the conference table. :-)   We also took breaks and went behind our building to kick a soccer ball around or throw a football.  Hell, there were days we’d play Unreal Tournament too.  It was a solid team that could produce results so we never got any flack. :-)

While working at Sequoia, it wasn’t as laid back as Spartan because we all had to be billable, but we still found time to do team building – mostly at the project team level.  Our manager did take both the Lansing and Grand Rapids offices on a day-trip to go canoeing on the Au Sable river near Grayling, Michigan.  It was a great day.  They chartered a bus for us so the alcohol flowed freely on the ride to Grayling.  The canoe trip itself was hilarious with people (especially the manager) getting dunked throughout the day.  It let us blow of steam and get to know everyone in a very casual setting.  Great stuff. :-)

Of course, I also worked at a company (within the last couple of years) that thought team building consisted of the following:
- personality profile testing
- sitting in a conference room discussing how we could deal with the different personalities on the team. :-\
- disciplining anyone that tried to speak up about how stupid it was. ;-)

I applaud Keith for bringing his remote team together in the way he describes.  More managers/leads need to do stuff like this.

Checking technorati / what’s on my phone

14 Nov 2007
by mjeaton, posted in Uncategorized   |  Comments Off

Ugh.  I was just checking technorati to see who’s linking to my blog and just found a month-old post in which I was tagged to write about what’s on my phone.  D’oh!

First, an apology to Kevin for not seeing this until now. :-)

I have a pretty standard phone…nothing fancy — Katana.  Granted, it does have things my other cell phone didn’t, but for the most part, I use it for talking and texting. ;-)  

So…what’s on my phone right now?  Looking under “My Content” , I see:

- Pool
- Ms. Pac-Man
- Tetris
- WPT

Beyond that stuff, just the standard browser. :-)  

I won’t tag anyone because I do think this has run its course (and anyone I *would* tag has already been tagged).

Taking over bad code, a question and some name dropping :-)

03 Nov 2007
by mjeaton, posted in Uncategorized   |  4 Comments

If you took over an in-progress project from another developer, would you take his word for it that “it’s 99% complete” or would you want to verify it against the specification?

I recently took over a project from another developer.  After looking at the horribly written code, I asked the client for the spec so I could verify that the code was actually doing what the client wanted.  The client wasn’t quite sure what I was asking for, so he emailed the original developer.

BTW, this is what I was presented with when I first loaded the solution into Visual Studio.  I removed any identifying text from the screenshot. :-)

SolutionExplorer

The developer (we’ll call him Jim) replied back to the client essentially telling the client how stupid I was.  In the spirit of full disclosure, Jim and I both worked as Project Directors (tech leads) at the same consulting company in 2000-2001.  Professionally we got along most of the time, but we definitely had our differences and butted heads several times.

Here is a quote from the email he sent to the client:

It sounds like Mike is getting lost in the way the app was implemented.

It could be that he just isn’t familiar with dotnet 2.0 and master pages. If that is the case, the architecture and framework I used may not be what he expected. I tried to pepper my code with lots of comments about how/why I did it the way I did. If he has some more specific questions, other than [where is the spec], I could explain parts of it so he could get over the framework and just work on the app logic.

Huh?  My request for some kind of specification means that I’m dumb and don’t understand .NET development?  Wow.  WTF-ever.  My initial reaction was outright anger, but strangely enough, that changed to having doubts about my own skills.  Maybe the code wasn’t that bad.  Maybe I really didn’t “get it”.  Maybe the code was “perfect”. ;-)

I had to know, so after consulting with some friends and colleagues (name drop time!) like Dave, Jayme, James, Will, Dan and Mike (non-blogging loser :-p) I calmed down and realized that no, it wasn’t me and yes the code really did suck. :-)  

The code itself is a great example of copy-and-paste development.  Each of the pages you see in the screenshot above is one step of a Wizard.  Each of the code-behind files is almost identical with gems like:

If (Not Request.Form(“ctl00$btnNext”) Is Nothing) AndAlso Request.Form(“ctl00$btnNext”) = “Next” Then

    btnNext_Click(sender, e)

ElseIf (Not Request.Form(“ctl00$btnPrev”) Is Nothing) AndAlso Request.Form(“ctl00$btnPrev”) = “Prev” Then

    btnPrev_Click(sender, e)

End If

That just feels dirty. :-)

BTW, another quote from his email:

The funny thing is that the app is 99% done and just needs a few bug fixes.

Oh, did I mention that the 1% includes the fact that the damn app doesn’t write to the database?  Nice.

BTW, after talking to the client, it turns out there is no specification.  There’s not really even any emails back-and-forth between the client and Jim.  It was based primarily on conversations.  The client and I walked through the screens yesterday and they appear to be what the client wants with a few minor exceptions.

After looking at the code though, I’m not comfortable with taking it as-is and trying to support it.  My recommendation to the client will be this:

  • I’ll use what he has a base, mainly for the user interface
  • I’ll re-write the code and bring it in-line with another web app I’m doing for them for consistency.
  • I’ll document

Did I mention that Jim and this guy know each other. :-\

Ok, this post started with a simple question: If you took over an in-progress project from another developer, would you take his word for it that “it’s 99% complete” or would you want to verify it against the specification?  Any thoughts?