Software in Seattle
On the 22nd of May, I left Britain for three weeks to go and help out at our American office in Seattle, WA.
“This is it… if I take one more step, it will be the farthest away from home I’ve ever been.” - J.R.R. Tolkien
After an exhausting eight hour flight, I landed in Chicago for a connecting flight to Seattle. Before clearing customs I had one of my proudest moments as a Welshman. Amongst the English, French, German and several signs written in Asian scripts I saw this:
“Croeso I O’Hare International, Chicago”
I was about to formally enter the USA, so I was too busy Looking Like a Business Traveler Who Is Not A Terrorist to stop and photograph this.
Life in Bellevue and Kirkland
I stayed in the prim, well-to-do city of Bellevue. Although Bellevue manages to be a city with high rise buildings it still has something of a suburban feel about it. I walked around Bellevue on a Sunday and found the place deserted. The same day I got on a bus to downtown Seattle which was by contrast, packed. (That’s route number 550 from Bellevue Transit Center.) Like many places in the USA sidewalks in Bellevue are immaculately kept. Nobody uses them because everybody drives everywhere.
I like shiny buildings. Bellevue, Corner of 110th Avenue NE and 8th Street.
Bellevue has a fantastic new library which is the envy of British visitors because we’re used to public library cuts and closures.
Kirkland, as seen from the company offices. I worked in the top floor of the tallest building in Kirkland. (No prizes for that, because Kirkland doesn’t allow buildings over five stories.) The boardroom has a wonderful view of lake Washington. Kirkland is another well-to-do city, but unlike Bellevue it wants to be a holiday village.
The company barbecue. Traditional American food of course.
The Bellevue Hillbillies
Eating at Dixies BBQ/Porter Automotive is a company tradition. Dixies BBQ is a restaurant opened in an old garage on Northrup Way in Bellevue. Gene Porter circulates amongst customers menacing them with a pan of hot “man” sauce. Dixies serves traditional redneck fare with any beverage, so long as it’s root beer. I can now say that I’ve dined in the same restaurant as the Microsoft Gun Club.
“Windows 95 is so good the feds wanna’ make it illegal.” — sign posted in Dixies BBQ
Gene Porter keeps a number of maps. I was met with the question “where yoo frum bawy?” I noticed that I’m the third person to stick a pin in the map over Swansea although somebody has already visited Dixies from Neath and from Cardiff.
Intercontinental Distributed Agile Development
In our company, separate XP teams around the world work on the same shared code base. Responsibility moves from region to region around the world. When you start work at 9:00 PDT in Seattle, you make a video conference call to the UK team to get handover from our UK office. At 17:00 PDT in Seattle, we get called by Singapore to let them know what we’ve been doing and pass on the baton. These handover meetings are used to transfer the “virtual release token” from region to region following the sun.
Pike Place Market, downtown Seattle
It’s easy to forget how many operations you do every day against the CVS server. It hurts when you’ve got two fire walls, the internet and the North Atlantic between you and the CVS box. When the CVS box is that far away and it takes 30 to 40 minutes to catch up you can’t just look files up in the resource history and compare versions. Doing that wipes the sync against CVS. That means wasting another 30 to 40 minutes doing a sync to head before you can commit changes.
“what you forgot is that the CVS server is four and a half thousand miles away”
In my last week, the developers back in the UK migrated our code base from CVS to Perforce. In Seattle, we installed the eclipse plug in for perforce and P4Win. The plug-in for Perforce still needs some work, but it’s usable. As part of the migration we installed the perforce proxy. It took about a day to charge up the Seattle-based proxy server against the server back in the UK. After that, the equivalent of a sync took less than 5 minutes. Commits are fast too, so the difference is staggering.
The City of Seattle
I took a trip to downtown Seattle on Sunday 30th of May and rode the monorail to the Seattle Center. As things turned out, this was the day before a fire broke out on the monorail. I read in the newspaper that the city won’t run the existing monorail again because there isn’t a quick way to evacuate the cars. The new monorail being planned is to be redesigned with walkways.
Downtown Seattle viewed from the Space Needle. You can see the concrete monorail tracks stretching up in the bottom right of the picture. The monorail has only two stops. One of them isn’t far from Pike Place market and the other is in the Seattle Center tourist trap. The Seattle Center includes the Experience Music Project and the Pacific Science Center.
Street evangelism, Pine Street, downtown Seattle.
Paul Allen, one of the founders of Microsoft is well-known for philanthropy in Seattle. He’s contributed to lots of cultural organizations in Seattle, including the Experience Music Project, the Pacific Science Center and the Seattle Film Festival. We tried to get in to one of the Seattle Film Festival screenings at the Seattle Cinerama but we just didn’t manage to get tickets. I’ve bought many Microsoft products over the years and since Microsoft money has done so much for the Pacific Science Center and the Experience Music Project I’ve effectively already paid. The ticket booth attendants just didn’t seem to understand this.
Ye original Starbucks shoppe at Pike Place Market, downtown Seattle.
You can buy a Seattle City Pass to get discounted entry to the Space Needle, the Pacific Science Center, the Museum of Flight and a few other interesting places. Basically, you’re buying a book of tickets so if you go to several participating venues you save money.
Patterns study group
Monica our US-based XP coach has been to patterns study groups in the past. She pointed out that starting a design patterns study group would be useful for developers in the company new to Java and XP. It’s easy for people to misunderstand what we we’re trying to do. It’s not the case that anyone “gives a presentation”. Study groups are supposed to stimulate a discussion about the topic to deepen understanding in a way that wouldn’t happen in a presentation or if you just read the material alone.
The general form we followed comes from the Industrial Logic site write-up. The idea is to look at a bunch of related patterns, learn them and understand when each one helps. Using real examples harvested from our code base brought a degree of concreteness and practicality and it certainly provoked discussion. We covered three creational design patterns:
- Factory Method (We also covered Template Method as an introduction to Factory Method.)
- Abstract Factory
Although the Design Patterns book has been around nearly ten years now I found discussing the patterns in a group helped me a lot.
In the land of Redmond where the servers lie
A Random Microsoft Office. (They all look the same.)
On 10th June, I was invited to a talk about Agile methods, unit testing and mock objects by Scott Bain on the Microsoft Campus. The talk explained the basics of xUnit-style testing as used in extreme programming. He went on to outline how mock objects can help you isolate a single object from the rest of the system so it can be created and exercised independently by an xUnit-style test framework.
I had a few concerns about this talk:
- IMHO, it’s dangerous to suggest that people can still do test-driven development without writing the test first. Why give people a licence to use an inferior way of working?
- He even suggested that you can gain some of the benefits of test-driven development without actually writing the test. If you really believe test-driven development is worth doing, why not do it right?
- This stuff may not be cutting edge for people that work in an extreme programming project but it’s clear that using mock objects is still new to most people even in places like Seattle where there are many world-class software companies.
Things I didn’t manage to see
The Boeing Factory Tour - Boeing has the largest covered space in the world in Seattle. During the week they allow tourists to see the jumbo jet production line.
The Museum of Flight - On the approach to Sea-Tac airport, I was surprised to see a parked British Airways Concorde nearby. This must have been the one they keep at the Museum of Flight. Apparently they have an old “air force one” jet, Concorde, and one of the coolest planes ever built: Blackbird. Blackbird is an awesome achievement because it really was faster than speeding bullets, missiles and anything else that could be shot at it. Pilots flying blackbird have reported that it can fly so fast over long distances that the transition from night to daylight can be instantaneous. Blackbird is another fine Lockheed-Martin skunkworks creation.
Photo.net has a good picture of the Freemont Troll.
Genuine, Lenin Statue for sale, one previous owner.
Seattle Art Museum - Interesting just out of curiosity.
I learned a lot and enjoyed working in the Seattle area. Thanks to Monica Yap for inviting me, Tim Joyce for letting me go, Claire Goodall for setting it up, everyone at WDS (Americas) for being so friendly and helpful, and to Bennie Marais for paying.