alt.net conference review [altnetconf]

Last Friday saw me on an early flight from New York to Austin, Texas, for the (first?) alt.net conference. This was a ‘not organised by Microsoft’ open space format weekend event for people with background in, or a desire to see more, .NET development done in a ‘way’ that may not necessarily fit the norms as suggested by .NET’s own documentation or Microsoft’s knowledge base as a whole.

This ‘way’ covered technical, people and project practices that would all be very familiar to people who’ve worked on eXtreme Programming (XP) / agile projects although this conference didn’t want to use the tag of XP or any other methodology. More specifically, we were interested in the use of lightweight development environment tools (CruiseControl.NET, NAnt, Subversion), test / behaviour driven development, domain driven design, open source technologies, lightweight frameworks (over heavyweight servers), reflective adaptable teams, etc. Basically, anything we can use to deliver cheaper, more effective, less buggy software faster to the customers of our teams without the constraints of ‘one size fits all’ prescriptive solutions or so called ‘best practices’.

Really, it was all about discussing pragmatic options for software development in the context of .NET projects.

So with all that loftyness out of the way, what really happened? The mixture of the attendees was about half consultant / mover-shaker / open source leader and half people primarily coming to learn while also having their own opinions. Almost everyone present had a blog which led to plenty of egos to go around. There were also several things I took away:

For software languages and methodologies to grow and improve our craft they need a passionate community of talented individuals with a common purpose. Although I think the purpose could be honed somewhat, it’s clear to me that this little part of the .NET world has the other 2 bases covered and as such, even without thinking about Microsoft, is an exciting place to be…

… but representatives of Microsoft were also present, and not just junior engineers with too much time on their hands. Representing were Scott Guthrie (I didn’t know much about him before but he’s an awesome guy who heads up a big chunk of Microsoft’s developer tool division. I was hugely impressed with his intelligence, ability to know in small detail what all his teams are doing, and his humility), Simon Guest (who’s been around the agile world for a few years now), Scott Hanselman (recent MS hire but all round clever chap who ‘gets’ doing the ‘right thing’), Jim ‘NUnit’ ‘xUnit.NET’ Newkirk, Brad Wilson, Howard Dierking (MSDN editor-in-chief) and some others I’ve forgotten.

Considering some of the conversation that went before this conference, I was impressed that these guys even came, yet alone how well they got into the spirit of the conference as much as they did. They actively sought feedback, constructive criticism and were willing to give their own opinions even when it didn’t fit the ‘normally heard’ MS company line.

But the biggest thing to me was Scott Guthrie announcing and demonstrating a new web MVC framework for ASP.NET. MS rarely (if ever) announce ANYTHING publicly outside of a finely tuned MS marketting event and here was Scott showing off something that would normally have been a star of Microsoft’s Professional Developer Conference (PDC) at what could be thought to be a “rebel’s” private meeting. This was a risky move with the opportunity for a big payoff, but it worked for the following reasons:

  • As I’ve already said, Scott is an intelligent, nice guy and had the respect of the audience
  • This was not pushed in a ‘marketing’ way. It felt like ‘this is something interesting we’ve been trying out in the garage for the last few months and we’d like to get your opinion on it’
  • Most importantly it is a FANTASTIC product. It’s a simple, clean, extensible web framework that pleases the most vehement of TDDers while still providing fall-back options for fans of existing ASP.NET . I’ve never heard anyone from MS use the word ‘testability’ when talking about a new framework but Scott did and I think some of the design decisions (e.g. the choice to explicitly hand-off the rendering the view from within the controller) could actually teach some supposed existing ‘TDD-friendly’ web frameworks a lesson or two.
  • And finally I don’t often blow my own trumpet, but I’m going to now. 🙂 Nearly 3 years ago I blogged how I’d dumped using the heavyweight ASP.NET web forms library for CruiseControl.NET and instead opted to write my own web framework with testability in mind. The design that I had – a small front-controller routing to page-specific sub-controllers (or ‘actions’ as I called them) which themselves delegated explicitly to view renderers – is not a million miles away from what this new framework does. Don’t get me wrong, the MS library is much richer and better than mine (and I hope that before long someone will rip out my custom framework from CCNet and replace it with the MS version), but it’s nice when in some way someone validates your decision to buck the trend by making something like your innovation the new trend.

I hope this new framework from MS is sign of things to come. The combination of C# 3, the new LINQ libraries and a bunch of libraries all setup for TDD and extension (rather than replacement) where necessary with open source ‘mini libraries’ could make .NET a compelling development platform.

Of course, not everything was great. The biggest problem (to me) was the lack of diversity. Of 100ish people only one attendee was female and the overwhelming demographic was 25 to 40 year old white middle class male (yes, me included.) I know this smacks of our industry as a whole but it’s pretty appalling.

But overall I’m glad I went (despite the fact that instead of a .NET developer these days I manage a team of Java developers.) The obligatory Texas BBQ and Tex-Mex just added to the occasion…

More, with links, here and here.

On open plan offices

Today I read a good little piece (via Garrett Smith) on open plan / open space offices (i.e. no individual offices). A particular gem came towards the end (emphasis mine):

Frankly, whether people will admit it or not, most of the time you end up in an environment with a private office for status reasons, not business reasons, and status is not a particularly compelling argument for a specific office configuration. In fact, status has the downside of causing people in the company to work toward status instead of working toward results.

Many people call out the fact that in open plan environments concentration can be hard, and I recognise that to an extent. However I think once you get used to working in such environments concentration is perfectly feasible, and the benefits of ad-hoc communication far outweigh the negatives.

I also find the ‘status symbol’ factor of an office unnecessary and somewhat offensive. Seniority already earns good compensation, responsibility and challenge; adding ‘perks’ such as an office just creates a them-and-us barrier that belongs in the feudal system of the middle ages. However, even worse is when people are told they ‘have’ to take an office in order to advance their career (and yes I do know a guy that that happened to.)

The best addition I can make to this area from my own experience was the ThoughtWorks office in London. This was a total open-plan office (at least while I worked there), from the CEO down, with lots of meeting rooms of various sizes and also break-out (non enclosed) areas for informal discussion. Even the HR people (who probably most need an office by function since they are the ones having the most legitimately closed-door meetings) used the communal shared office pool. And when one wasn’t available, well that was a good chance for 2 people to go and get a coffee together, stretch their legs and talk privately on the way.

Changing the 'lock screen' keyboard shortcut in Ubuntu

Sometimes it’s the simple things in life that make me happy…

I have both an Ubuntu and Windows desktop at work and wanted to use the ‘Windows-L’ keyboard shortcut to lock my screen on Ubuntu just as it already does on Windows.

Turns out it’s very simple.

alt.net conference writeup to come just when I get around to it.

I'll be at the alt.net conference in October

I’m not doing much coding at the moment, and none of it in .NET, but that’s not stopping me going to the alt.net conference in Austin, TX, for the first weekend in October.

What is alt.net? It’s tricky to say. Fellow XTC-NYC’er Dave Laribee coined the term in April and talking to him at d.b.a. last week I’m not sure whether he thinks it’s much to do with .NET development at all, it’s more about a group of people approaching software development with a common context (that’s the .NET part) trying to move their craft forward. Whether that progress is using .NET, Ruby, Java or a million monkeys with abacusses (abaci?) isn’t really important.

As such, I’m looking forward to the conference. Apart from anything else it will be a good chance to visit the People’s Republic and find me some good bbq’ed ribs.

Now about that iPhone price reduction

Let me get this straight from the get-go : I’m not expecting or desiring sympathy.

For those that haven’t yet heard, the iPhone got a $200 price reduction today. That means my iPhone I bought a week after it came out a smidgen under 2 months ago cost 50% more than if I’d bought it today. I admit it, I’ve been had by the mighty Steve.

Yes, I know this is what can happen when you’re an early adopter, and I don’t think there’s anything legally or morally wrong with what’s happened. Frankly, if I’m willing to shell out 600 greenbacks for a little gadget when there’s people in the world starving I don’t have a moral leg to stand on anyway. And besides, I’ve been ‘lucky’ – I’ve bought 5 or so pieces of Apple hardware now and this is the only one [1] where I’ve been caught by unfortunate-timing-of-apple-purchase-osis.

What is the point is that a friend of mine, who isn’t an apple fan-boy, and isn’t (that much of) a geek, and frankly has better things to do than watch every apple-event live blog like I do, and who bought their iPhone 3 weeks ago, just got quite royally rumbled. Will they, or a few hundred thousand other people here or there be a little bit sceptical when it comes to next buying new Apple hardware?

So a marketing blunder on Apple’s part? I think so, but they just made nearly $200 million bucks out of it, so quite a lucrative one.

[1] Oh, apart from when the gigabit-ethernet Apple Extreme came out a month after I got my 100Mb version, but that’s a minor quibble. My 2G iPod, G4 Mac Mini and 24″ iMac all had very healthy ‘still in the apple store at the same price’ shelf lives.

Update

OK, looks like Apple think this was a blunder too. At least they have the balls to acknowledge and do something about it.

Introduction to Continuous Integration @ Agile 2007

Today I presented a session at the Agile 2007 conference on Continuous Integration. I’ve given this presentation a couple of times, but it was still a bit tricky getting the slides, demo and time for Q&A into 90 minutes. The slides are here.

There are a whole bunch of CI people here, and another couple of CI sessions tomorrow, so even though I’ve never made it to CITCON I feel I’ve had a mini one here.

iPhone morning … in my apartment

So you know how last week I was saying how I didn’t buy an iPhone the night it came out? Well I also didn’t buy one that weekend … but in the end I did buy one yesterday (yes, that’s the distraction I was talking about in my July 7th entry!)

So what made me change my mind? A few things:

  • When I tried using EDGE again on one of my colleagues’ iPhones it wasn’t as slow as I remembered – I’m thinking maybe the local cell was a little swamped on the launch night
  • Actually, the thing about there being no rebate on the plan isn’t entirely true. Getting the same plan on a Blackberry or Samsung Blackjack is going to set you back an extra 20 bucks or so
  • Really the biggest thing though is that it’s just so wonderful to use.

So after my existing phone really did stop working properly this week I decided to give in finally to the hype and lay down some greenbacks. My initial impressions are:

  • The whole process of buying the phone and getting it working was exceptionally impressive. I was in the Apple store about 2 minutes, and then about 60 seconds worth of using iTunes (which fronts the iPhone activation process) once I got home was all I needed to do. About 15 minutes later my old phone stopped receiving calls and I was up and running.
  • All the ‘wow’ impressions of when you first use it still hold true. It’s so easy and fast to do so many things with the device that it’s a wonder something even half this good hasn’t been done before.
  • Certain things do feel a bit ‘version 1’ like the lack of cut & paste, the fact that iTunes went a bit weird for a while when I had read-only calendars it was trying to sync, and other small things here and there make me look forward to the first software update
  • Call quality I would say is poor (or maybe my last phone was just good) – I hope this is something they can fix up on a software update otherwise it’s going to annoy me

Only one thing worries me – I’m off to the UK on Friday for a week and as yet I haven’t found a way of turning off EDGE – I really don’t want a $200 roaming data charge when I get back to the US. I’m going to call up AT&T tomorrow and see what they have to say.

So yes, in the end, Steve’s reality distortion field had it’s day. I bet he’s laughing all the way to the turtle neck store…

iPhone night in NYC

It’s the night a million Mac fans have been waiting for – the launch of the iPhone.

I’ve been pondering whether I would get one ever since it was initially shown off at Macworld.

I finished work today after 6pm (the launch time) and walked up Broadway past an AT&T. I bumped into a couple of colleagues who had been lining up but had given up after the store had run out of 8GB models (apparently they only had 20 in stock.) They wanted to get one, and I wanted to see the line outside the Apple Store in Soho (which is only a 5 min walk from my apartment) so we walked up there instead.

We got there around 7pm and the line was around the corner, but only about 10 minutes in time. Once inside, the Steve-Jobs-clones were organised perfectly. There were 2 demo desks setup downstairs and a fast moving line to actually buy them upstairs. My colleagues went straight for the purchase option and were done lining up and buying in less than 5 minutes.

Still reticent I decided to spend some time trying it out. The good things about it:

  • It’s a great design. Pretty small, feels very solid, easy to hold, very lightweight.
  • The touch-based user interface works well, especially considering this is a first-of-a-kind device.
  • The screen is great. Bright, clear, huge for a phone.
  • It’s just wonderful to use – it really does put every other phone out there to shame

The not so good:

  • EDGE really is pretty slow. I tried using Maps – it works ok but not great. To really push it I tried Flickr which of course was dog slow. I loaded up the front page of Meebo (which would allow using an instant messenger, an app which the iPhone doesn’t have natively) but didn’t want to log in on a shared device so I don’t know how it works.
  • Some weird text functionality is lacking. Selecting chunks of text, no cut/paste.

Then the other things I didn’t like which I already knew:

  • No push email – if you regularly check for updates this could kill your battery life.
  • only 8GB – not enough to be an iPod replacement for me
  • $600 for the handset and no rebate on the $60/month plan, and only 200 texts/month? I can afford this, but that’s damned pricey, especially since I’m going to want to replace my (now dead) 20GB 2nd gen iPod soon.

So in the end, despite the peer pressure, the hype, the Steve-Jobs-reality-distortion-field I didn’t buy one.

But there’s always tomorrow. Or maybe I should see what the 5th avenue Apple store is like at 4 am…

I'll be at Agile 2007, speaking on Continuous Integration

My conference attendance this year will be a short trip south to Washington DC, to Agile 2007. It’s been a while since I’ve been to a big agile / XP conference and I hear they’ve grown a bit so I’m interested to see how the community has changed. Indeed, Agile 2007 is already sold out with 2 months to go before it actually takes place.

I’ll be speaking on the Wednesday, giving a beginners’ track session – Introduction to Continuous Integration. It’s a subject I’ve been speaking on for years now, but it’s always enjoyable to be able to share this kind of stuff with people new to the area.

Hopefully I’ll see some of you there.