Monthly Archives: July 2007

What am I going to do in the next 6 months to be a better developer?

Looks like I just got tagged by Daniel Moth. The meme that is being spread is about what I am going to do over the next 6 months to be a better developer. Hrm, interesting.

I must admit that I’ve been struggling to find a new passion over the past twelve months. The work that I’ve been doing with Team Foundation Server has been pretty much all consuming.

As I’ve started to surface from this self imposed exile to “tools land” I’m finding that my thoughts are turning to the users of the software that we create as I try to understand their motivations and how we can design software that meets their needs.

In my next six months as a developer I am going to keep up to date on the latest around of Microsoft developer technologies but I am going to change how I apply them such that the maximum benefit can be realised for the end users. In other words I’m going to be less concerned with architectural purity and more concerned with listening to the people that matter most!

So – who am I going to tag:

You’re it!

DEV316: Build Server Virtualisation

I was reading this post by Jeff Wharton about the launch of the CommNet site for Tech.Ed 2007 down here in Australia. To be honest I am feeling a little bit guilty because Dave Glover asked for my presentation abstract ages ago and I didn’t send it to him. Anyway, here it is.


The DEV316 session is all about getting the most out of your Team Foundation Server investment with a special focus on build and deployment automation with a virtualisation twist. In this session Mitch will show how to use the following tools together:

  • Team Foundation Server
  • Team Build
  • Virtual Server
  • TFS Integrator
  • TFS Deployer
  • TFS Build Virtualiser
  • TFS Build Progression Guardian

This session is a must for build masters who need to manage complex build requirements and who are constrained by how much computer resources they can throw at the problem.

On hammers and nails.

I have to admit this post by Paul Stovell had me nodding and smiling, and I also giggled at my own joke when I thought how this kind of discussion would never have happened when Rocky was working for us, mostly because Rocky would have dispatched Chuck Norris to give Paul a round-house kick to the head.

Now, I don’t think that Paul is saying that we shouldn’t have security (and if he is, well, the round-house kick is well deserved), rather I think that Paul is saying that system administration duties need to be distributed to responsible people (and I’d like to think that hammer wielders, are, for the most part fairly responsible).

Just because I’m a software developer doesn’t mean that I’m a cowboy, or maybe I am. Why do cowboys have such a bad name anyway?

Eat your heart out Jerry Seinfeld.

Matthew Cosier just pinged me on instant messenger with a link to this article on InformationWeek. The post is about Bil Simser’s daughter named “Vista”. At the time I left this comment on his blog:

“Vista is asking your permission to see her boyfriend. Allow or Disallow.”

It seems that Nicholas Hoover picked up on that comment and included it in the InformationWeek article. Eat your heart out Jerry Seinfeld :)

Code Camp South Australia was a great success!

I spent this weekend in Adelaide at South Australia’s very own Code Camp. I presented on the first day but decided that I would hang around for the second day to see some more of the presenters give their talks. Overall I was impressed with the event and congratulations have to go to Peter Griffith from ADNUG and ACS who put a lot of effort getting the event organized!

Also a big thanks to Darren, Anne, Harry and Charlie Neimke who hosted me at their place for the weekend – much appreciated!

What’s next?

It was a timely reminder that Greg Low and I need to get together and start planning the content for Code Camp Oz IV to be held in Wagga Wagga next year, but I’d like to hear from the developer community about what kind of content they would like to see.

See you all at Tech.Ed!

Frank Arrigo is moving to Redmond!

Cameron Reilly has broken the news on G’day World, and that news is that Frank Arrigo is moving to Redmond to work on DPE strategy world wide. This is big, BIG news. I think that this is very sad news for the Australian Developer community but I can’t think of a better man for the job – so good luck Frank! You will be missed!

Of course, if you subscribe to Frank’s Twitter feed you might have guessed that something like this was coming.

Wallet = Single Point of Failure

A few moments ago I couldn’t find my wallet. It wasn’t in my pocket. It wasn’t in my laptop bags. It wasn’t in my luggage. The only other place it could have been was back at Darren’s place where I had stayed last night whilst attending CodeCampSA.

The whole incident reminded me of just how important it is to have your various identification cards available to you. I wasn’t too worried about my credit cards or my key cards, it was all about whether I would be able to get onboard my flight at the end of the day (although granted, it would be hard to pay for a taxi in Sydney without any cash/credit cards).

Wallet’s are a single point of failure, and the fact that they are easily misplaced makes them a particularly unreliable component – which makes it much worse. I would happily go to a series of embedded chips which were impossible for me to lose just to avoid the stress caused by misplacing identification cards.

Fortunately, I’m an idiot. I had simply put my wallet in the wrong laptop bag, and in a difficult to reach location in that laptop bag.

Avoid eye contact with Enterprise Library.

Ballchain I travel quite a lot. In fact it is rare that I don’t catch at least one or two flights a month, and based on recent form it is more like one or two flights a week. One of the constants at airports at the moment seem to be the credit card spruikers from AMEX and Citibank who use a number of tricks to get you to walk over to them. A classic example is exploiting an unsuspecting travelers need to be polite and respond to some kind of enquiry.

After enough wasted time experienced travelers learn to ignore the initiated conversations in the concourse and focus on getting from the gate to the taxi as fast as possible, they either completely blank the sales person or they walk on the opposite site of the concourse to avoid contact being made at all.

Getting from the gate to the taxi is kind of like a software project. There are things that you have to do, and things that you don’t have to do, and a whole heap of shiny distractions to slow you down. In a software project one of the common things that seems to come up is what “framework” are we going to use. This usually dissolves into a discussion about building your own or adopting something like Enterprise Library or the myriad of other freely available frameworks that have popped up over the years.

I’ve already got a framework!

Darren started a discussion about his thoughts on Enterprise Library, but I actually think that there is a meta-point to be made here. When we choose a development platform we choose not only a runtime (assuming a managed environment) but also a set of base class libraries (or in the case of .NET a BCL plus a number of additional frameworks like ASP.NET, WCF, WPF and WF).

For me, I need a lot of convincing that something like Enterprise Library is going to give me a lot on top of these frameworks to accept the mammoth amount of code that I am going to be responsible for when I integrate it into my code base. And before you jump in and list all the features – they actually need to be features that *I* need, not some mythical piece of software that what I am building today might turn into – someday.

The meta-point is that we are already sitting on top of a very capable and well factored framework, in most cases Enterprise Library just wraps or aggregates existing framework functionality in a way that introduces so much complexity that it actually detracts from the productivity of developers. If Enterprise Library did more than put managed wrappers around existing managed wrappers then you might have an argument, but other than some corner cases in cryptography it doesn’t give you much more than an existing .NET developer could build by using what is in the System.* namespaces.

Keep your eye on the goal!

When writing code, there are lots of things that can distract developers focusing on the needs of the end-user. Regard things like Enterprise Library with the same suspicion I do when I spot a spruiker at the airport, even if they use shiny words like “enterprise” (meaning if you don’t do this you aren’t enterprisy enough) and “library” (meaning that if you don’t use this your code isn’t reusable enough).