The Project Dashboard

Quick, where is your project at?

Now, does everyone on your team know that information?

Ah ha. Gotcha.

If you’re an agile shop, then you probably hold Daily Standups. If you aren’t, then you probably hold daily Sitdowns (see also: boring meeting).

As everyone talks about their status in those meetings, everyone else is busy breaking Company IT policies. Only Youtube gets a pass (it’s really hard to watch a video with sound in a meeting. People tend to stare). At the end of the meeting, everyone who is still awake heads back to their desk. The management types (of course) schedule another meeting, and the cycle repeats itself.

Break the cycle.

Don’t discuss status in the Standup, discuss particulars. Keep the status information on a status board.  

Enter the Project Dashboard:

At a glance, anyone on your team can tell the following:

  • Server Status
  • Completion percentage
  • What’s going in the next release
  • Anything you want

How long does it take to build one?

For one as good as the Panic Status board, a few weeks. I’m building one now, and because I’m building it using ASP.NET MVC, it took me all of about a day to get the entire thing up. There are still metrics I’m adding, but the basic functionality is there. For it to be polished and out the door? About two weeks.

Why doesn’t your project have one?


If Programming had a Narrator

On Automation

<Narrator voice=”Michael Westen“>When you’re a programmer,you think of everything around you as something that can be automated. If you need to get something done, your first thought is usually how to get someone else to do it for you. Usually that’s a computer. In the course of automating this task, you may find out that it’s harder than you realize. But a good programmer works through those odds, because he knows that at the end of the day, the only thing that matters to the people you deal with is whether or not you were able to do it.</Narrator>

On Talking to A Programmer

<Narrator voice=”Michael Westen”>Being a programmer requires a sharp mind and great concentration. Every interruption causes a programmer to lose focus and often requires them to start over at square one. It’s no surprise then that they normally shy away from contact at work. In order to talk to them, you need to include food and something geeky.  Star Wars is normally a safe topic unless they have Star Trek paraphernalia on their cubicle. Pizza is always a safe bet. </Narrator>

Make it Happen

I used to work on a team that was full of smart people. Chock full of them. They were approachable and funny. Probably the best team I’ve ever worked on. Even with all these smart people, there was never any change. Awful processes stayed awful, deadlines slipped, and everyone felt like they were on the Voyage of the Damned.

Much like the Titanic, that team sank. As teammates, we drifted apart because of a number of issues, but all related around a fundamental problem:

Nothing ever Changed. 

What we could have used was someone to take the initiative and wake us up from our slumber. Preferably with loud cymbals:

To that end, I’ve made a promise to myself. If I want to see anything added to a project, I’ll take the initiative and do it. No Automated Unit Tests? Add them. No build process? Make one. Manual status reporting? Automate it.  

As a Lieutenant Colonel used to say to me. If you want something to happen, you have to Make It Happen.

Practicing What You Preach

Recently I found myself arguing in favor of automated deployments and builds (from both the Database side and the code side).  In of itself, this is not new. I’ve been an advocate for this as long as I can remember.  Before you somehow think me a principled man, remember that I embrace the three virtues of a good programmer:

Laziness – The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don’t have to answer so many questions about it. Hence, the first great virtue of a programmer. Also hence, this book. See also impatience and hubris.

Impatience – The anger you feel when the computer is being lazy. This makes you write programs that don’t just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer. See also laziness and hubris.

Hubris – Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won’t want to say bad things about. Hence, the third great virtue of a programmer. See also laziness and impatience.

I admit, I’ve strayed from the fold. When I bought my Macbook Pro, my first task was to set up my development environment. Besides the normal pain of having to have Windows 98SE, WinXP, and Win7 discs for this install, I needed to pull down the Source code for my projects and get IIS and SQL Server set up for local development.

Enter: Giant Gaping Flaw In My Plan.

As it turns out, the twiddling I’ve done with local builds to ensure that SQL Server runs (instead of just throwing error 40) doesn’t translate well across dev environments. Neither does the database. My database isn’t in source control.


So this week I’m taking the time to put my database under source control and working on scripting out the settings needed to bring any development environment I’ve built up to speed using Powershell. 

I can hear some of you now, wondering Why the hell is he doing that for his personal projects? The answer is simple. I need to practice what I preach. Yes, it’s overkill, but it’s also beneficial. I can’t tell you how many times I’ve dealt with a new hire who has had to spend time setting up their own development environment.  Doing this will give me the experience necessary to automate that for any future work.  Plus, building ladders is fun.

Downtime: Borderlands

Gaming is my second favorite thing to do with a computer. It’s surprising then that I spend very little time writing about it.

That ends here. Line.

Borderlands has been out for a while now, but I’m just now getting into the meat and potatoes of the game.  Last night a friend and I reached the New Haven Portion of the game — approximately 2/3rds of the way through the game.  At this point I’m confident that I can make a ‘buy’ recommendation for the game. It has Diablo-inspired loot mechanisms, and it provides an avenue for PC players to play cooperatively online, both ‘musts’ in my book.  If you do buy it, do yourself a favor and do all of the side-quests.  Too many times people buy a 40-hour game and finish it in 3 hours.

As they say: Getting there is half the fun.


30 Days of Blogging

. I first started blogging oh so long ago, it was witchcraft. You posted words on the internet, preferably in some sort of form, and people read them. Some people even took to the internet as a sort of public journal. My involvement in this matter continues to be disputed. And I categorically deny (much the same way a guilty politician would) any involvement in “Livejournal” or any of its derivatives. I have standards, you know.

But this post is not about my alleged trangressions against the internet body. 

I come today to celebrate thirty twenty-eight days of blogging.  Indeed, for the entire month of February, I blogged. They weren’t all winners (this isn’t Lake Wobegon), but they are there.

I was apprehensive about blogging for thirty days straight. It’s not as if I haven’t done this before (cf: Livejournal), I just haven’t done it before on anything more than naval-gazing. 

It turns out this fear was unfounded. Blogging and forcing my thoughts onto paper begat more thoughts. I have 10 or so topics that are written down, waiting for pen to be put to paper. 

I didn’t expect that.

It is one thing to blog for thirty days straight, it is wholly another to be enriched for doing so. It’s tempting to throw things up here and see what sticks, it’s far more difficult to prune each post to just the desired length and forcing it to yield just the right statement. 

I guess that’s for the next thirty days.

Mac Impressions: Minute Zero

My Macbook Pro arrived today. 

I got a feeling that tonight’s going to be a good night…

I’m typing this entry out on the new keyboard while Windows 7 is installing on Parallels. 

If other laptop manufacturers could just nail the presentation of the user experience, I submit that they may have a chance once a user opens a Macbook Pro.

Presently, they’re collectively screwed.

I’ve *never* felt good about opening a new laptop or Desktop. Too much packaging, too much cruft. 

With the Macbook, I have a warm fuzzy from minute zero.