Settling back in London

I’ve now been back in London for a little over 3 weeks, living in a new flat about a mile north-west of Paddington (so about 5 minutes walk from Warwick Avenue on the Bakerloo line 🙂 ). Its great to be back and have the chance to catch up with everyone I’ve missed over the summer.

Its strange, but memories from America are already fading, I think mostly due to how busy I’ve been sorting everything out at home. I’m looking forward to going through photos of the summer to remind myself of all the places and people I was fortunate enough to see.

Agile build engineering worthy of more research

I’ve spent the last 5 months on a build engineering engagement. Its been enjoyable, for the following reasons:

– The projects I was working with were implemented in .NET so it was an opportunity to explore build techniques that I know from the Java world and see how they apply in .NET

– I was working with several separate, but related, teams and therefore was exploring how to best integrate the projects.

I’m hoping to think about these areas more, but there’s a couple of brief points that I thought were interesting.

Importance of IDE build engineering in .NET

In .NET its worth considering how the IDE fits in with the build environment. Unlike Java based projects we are pretty much guaranteed the IDE is Visual Studio. Moreover, a lot of .NET developers have come through the Visual Studio history, and so are used to working solely within the IDE. Tools like the NUnit Visual Studio Plugin aid this command-line-free method of work for the interactive development process.

All this being said, we must remember that agile development places a premium on repeatable, maintainable, automated processes for tasks outside that of the interactive development flow, such as continuous integration and deployment. Therefore there exists a question of how we marry these 2 worlds together.

The basic premise is that using Visual Studio project definitions within your automated process means that your interactive and automated processes remain closely tied, and updating your project structure through the IDE automatically updates your automated process (so aiding maintainability.)

You can implement this into a NAnt automation setup by using NAnt’s new <solution> task, or by calling Visual Studio from the command line (using the ‘devenv’ application). We do still need to use something like NAnt since VS only covers a subset of what we want to automate, i.e. it doesn’t cover packaging, testing, etc.

What remains to be seen is whether <solution> or calling devenv directly is the best way to go, and how much we do still need a command line environment in the development process (e.g. for deploying an application locally for acceptance tests.)

Managing project dependencies

The other point to come up was how projects relate to each other, and specifically how to manage dependencies between projects. Things to think about are:

– How to specify dependencies in a convenient way

– How to manage build- vs run-time dependencies

– How to manage chained dependencies

– How versioning comes into play, and can we used ‘ranged’ versions with fixed ‘published’ interfaces

– How to allow a project to depend on either a fixed version, or ‘latest’ version of another project

– Where ‘fixed’ version requirements exist, how to perform pre-emptive ‘gump style‘ continuous integration for the head revision of all projects.

– What needs to be tested for each project’s build

I heard someone talking about Continous Integration the other day, and I’d forgotten the value of the simplicity of having ‘one build’ even for a larger team (since these problems become less important). But where you have long build-times and/or different deliverable timeframes it is worth considering breaking up the project. I think this would become a valid option when the agile community has tools and practices to solve the above questions.

Goodbye Boston, see you later America

5 Months ago I was sitting on a plane to Boston for my first extended stay out of the UK. Today I’m sitting on a plane going back home.

Its been a facinating summer. The United States has such a variety of attitudes, cultures and environments that its strange that its only 1 country. I’ve been to 5 US cities this summer – Boston, New York, Chicago, New Orleans and San Francisco. Boston has (as everyone told me before I came) a very european feel, yet there is an unmistakable north-eastern ‘no BS’ attitude about the place. It also has a commuter-city feel about it and there seems to be a conflict in attitude between this largely republican middle class cross-section of american life, and the massive liberal student populous that also inhabits the city for most of the year.

New York City could be London’s younger brother that has outperformed its sibling. It must be the most concentrated, cosmopolitan city on the planet. It is full of life, opinion and opportunity. 9/11 was obviously a tragedy, but I can understand why an enemy of the west would want to strike at New York since it is an arrogant city in some ways and also highly visible to the world, yet there is enough strength and hope there for it to have picked itself up and carried on unperturbed. There is no way I would ever want to grow old there, or bring up a family there, but I definitely hope to live in NYC for some period of my life.

Chicago has the feeling of someone who has been there, done that and is confident in their own abilities. It is an open, friendly and relaxed place that offers much to all walks of life. Chicago is one of those few world-class cities that I *could* imagine bringing up a family in (the only one I’ve been to apart from Chicago would be Auckland, New Zealand). Chicago will be on my ‘must-live-in’ list just as soon as I can come to the terms of living through a long, freezing winter. 🙂 (Oh, and how to cope with traffic problems even LA would be proud of…)

My visit to New Orleans was brief but surprising. After being in the 3 ultra-modern cities described above it was strange to visit NOLO and see how it had not rushed along with the rest of the country. New Orleans really shows up the embarrassment of riches that the US has with regards to culture. Its one of the smaller cities, yet it still has unique music, architecture and lifestyle that are worth experiencing. NYC has become a safer city for newcomers and tourists in recent times – I hope New Orleans manages find the resources to follow suit as it is a gem of a place.

San Francisco, and its bay area, is miles away from the east cost more than geographically. The arrogance and brashness that the world sees stereotypically in the US just doesn’t seem to fit out west. I don’t know whether its the fantastic amounts of sunshine Californians get but they definitely have a more relaxed view on life. The Bay Area’s geography is stunning and beats anything the UK has to offer.

But Boston’s where I’ve spent most of my time and I actually feel a little sad about leaving. Its a hard place to be by yourself, since its not a big city by ‘world’ standards, and for the most part I’ve felt quite alone being here. In the last few weeks though I’ve started appreciating it more (finding some good friends helped!) I think yesterday summed it up – there was a jazz festival in the ‘south end’ of the city that if it had been in London would have been packed out. But this was Boston so we could sit on some grass with plenty of room to spread out and enjoy the music, the sun and some good barbeque’d ribs. There was a large mix of people – from students to families, black and white. We walked back to one of my friend’s apartments (Boston’s small enough to do that) and then went to a couple of (very different) bars in the evening. It was an enjoyable, chilled day.

So the US is a place of extremes. There’s things I don’t like about it, including the overridingly right-wing and money-oriented politics of the country. But it has so much to offer in exchange including a richness of culture, and sense of opportunity, unrivalled in the world. I hope the US manages to reconcile its leadership in the world with some more humanity-based politics and then it really will deserve its place in history.

I hope to come back and live here again. 🙂

GadgetWatch – Palm Tungsten T3

I bought a Sharp Zaurus PDA about a year ago and it hasn’t really worked out for me. The chief problems have been:

– size: it doesn’t quite fit in a trouser pocket, which makes it too big

– ease of integration with other apps on my actual PC

– like most Linux systems, doing anything new is non-trivial and therefore too much effort for someone as lazy as me.

So, taking the same route as I did with my iPod (i.e. find out what I *actually* want, and then buy it, even if its more expensive), I’ve just bought the new Palm Tungsten T3. What attracted me was the following:

– size: its small enough to fit in my pocket

– UI: Pocket PC just doesn’t cut it still for usability and Palm’s longevity in the market shows through.

– integrated bluetooth: Primarily so that when I’m arguing about a movie with friends in the pub I can connect to the internet using a bluetooth mobile phone and consult IMDB. 🙂

– good screen definition – the T3 has a 320 x 480 screen, viewable in landscape as well as portrait, which makes it one of the best displays on the PDA market.

So far I’m impressed, and it’s already helping me organise myself a little better. If in 6 months time I’m as happy with it as I continue to be with my iPod, it will be money well spent.