Second Anniversary Working at Thoughtworks

This time last year I blogged about my first year of employment with Thoughtworks. Not surprisingly, one year later now marks my second year and like all good things is a nice time to reflect on what things have happened since then. The best place to start is probably to see what I wanted to change last year and what has happened since then.

Second Anniversary Working at Thoughtworks London

(From Last Year) Single-Project Consultant
Anyone who has worked in Brisbane understands that the commercial scene is not as broad as Sydney or Melbourne, and a consequence of being Brisbane-based (or is that bound?) means that I only got to work on a single project whilst I was there. I understand the commercial reasons behind it, but I think the same reasons pair rotation is important also apply to project rotation – consultants gain invaluable skills and spread knowledge, techniques and practices continually adding to the value of the organisation and to the clients they work with. Two years on I have now been on three different clients and four different projects, and I am now about to roll onto a fourth client.

(From Last Year) Lack of Travel Opportunities
Consulting brings with it the threat of constant travel, but being based in Brisbane didn’t bring anything with this. One of the programs Thoughtworks offers to its employees is an Exchange Program that enables people to transfer to the different offices (UK, Canada, India, China, USA and Australia) for a year to try living in a different country. I opted for working in London and it has been a fantastic experience since arriving in August last year. I have even visited an English seaside town for one of my projects but I do prefer experiencing all that London has to offer for the rest of the time that I will spend here.

(From Last Year) Further Feedback
One of the greatest things about working from the London office is the sheer number of people that you have access to on a regular basis. I imagine the other Australian offices would be different to Brisbane, but it’s great that you can bounce ideas around and discuss different topics with more than just a handful of people.

In terms of more formal feedback, the UK is setting great initiatives with project roll-off reviews and annual reviews. It really isn’t too hard getting other colleagues to give you feedback informally.

What Other Great Things Happened?
I am continually stunned by myself to see how my skill set continues to expand in so many different areas because I get to talk with and work with really bright people. It is especially more apparent when I pair program with people just how many more patterns, refactoring, testing and development techniques and principles I have learned.

All of these things I am now trying to share with more people. Last year I presented at an internal conference (one of our fabulous so-called “Team Hugs”), and was accepted to Agile India to present a Ping Pong Programming Challenge (but unfortunately couldn’t make it due to certain circumstances). This year I’ve submitted proposals to both XP 2006 in Finland and the Javazone conference in Norway both for later this year. I think it’s a great opportunity to share what knowledge I’ve gathered and get more feedback from industry fellows.

I am now dabbling in several new languages, some old and some new and am also now focusing on expanding on skills outside of just development to become a more well rounded consultant. My current focus is developing skills on being an agile coach because I have found clients tend not to understand a lot of the principles and I have found a team will be more effective if the team performs a number of the basics. As you may have read in previous posts, I am now currently building up a catalogue of retrospective exercises that I have found useful and what others might find useful. My personal beliefs have also significantly changed or perhaps even strengthened. I strive consistently for building self-empowered teams, not only because I think it is more successful but I think it is more fun and frankly I would rather have fun whilst working.

I did a little bit of sales work early on that was really just showing clients the way we work and the way that we do things, something I found quite interesting. It was nice that we could polish off some of the work that we did, turn it into a demo, and give it to people who were interested in doing things a different way and having them say, “Wow.” It’s such a rare opportunity that we get to do this on our projects and be appreciated by our clients.

So the good: Meeting and working with loads of other TWers, doing a variety of development and non-development roles, great amount of personal and professional growth, and all the things to improve from last year did improve.
More to improve on: Sharing this experience with more people and developing skills in even more areas.

Disappointment at Dawaat

After getting back from the big trip from Amsterdam, I caught up with Brett who was visiting from Australia for an internal work conference. We decided to head out to Brick Lane for a curry, just a little bit of that insight into the famous “curry lane” of London. We ended up at Dawaat because it was the first we stumbled across that looked seemingly alright, but turned out to be extremely disappointing.

According to its website, six brothers run the restaurant and I’m sure we probably met most of them that night. The curries are cheap and with a 20% discount offered, so I thought it was going to be a bit of a bargain night but ended up a very unsatisfying night.

It first started with poor quality poppadums served with even lower quality chutneys and sauces. Our waiter continually pushed us to order more food than we really wanted to eat throughout the night, saying we should get starters, side dishes and dessert and kept at it even when we made it clear we only wanted exactly what we ordered. Admittedly the waiter was correct about ordering two rices as well as a naan since the serves were so small and way overpriced at £2 each.

When the curries arrived they looked pretty dismal and tasted even worse. They had served my Rogon chicken dish with about two times the amount of onion than chicken, and the Korma chicken Brett had ordered was quite watery with no kick to it. They both had insubstantial amounts of meat and its sad to say but the naan bread was probably the best thing we had and it’s generally hard to get that wrong.

The evening continued to turn even more sour when we asked for the bill (several times), taking about half and hour to arrive. The waiters had even gone as far to miss the 20% discount that one brother had first offered, with a quick correction when pointed out but a noticeably lacking apology. I finally paid by credit card and it was even more difficult with the waiter standing over trying to get me to put more service.

You may think that this was a bad experience for us, but from what I observed that night, there was definitely a consistent theme there. One waiter continually insisted a particular table to leave as quickly as possible, apparently because there was a booking, and they were understandably angry because they hadn’t been told about it when they first arrived. It had escalated to a point where I heard the diners vehemently say “we will *LEAVE* when your *BOOKING* finally arrives”. One final example I saw was when another couple were shifted half-way through their meal so that the waiters could more easily accommodate a larger group of five.

Details: Dawaat
Found On: 60 – 62 Bricklane, London E1 6RF
Contactable On: 0207 375 3095
Highlights: Naan bread was alright
Room for improvement: Avoid the experience at all costs – it’s not worth your time here when there are plenty of other options on the same street. There’s plenty of place for improvement here, but frankly it’s not
The Kua Rating: 1 out of 10

A Weekend In Amsterdam

The GangI spent this last weekend with a number of people in Amsterdam to celebrate Ben’s stag weekend before he gets married in May later this year. This event had been building up for some time since we booked our flights and hotel back in January. We left on Friday morning to arrive there at just around lunchtime where the eight of us, including Ben, Karl, Nathan, Andrew, David, Matt and Damian met at the hotel.

We flew BMI, which has been one of the least painful flights I’ve flown, and it was even easier getting from the airport to the city one we arrived. A 20 minute train ride costing only €3.6 conveniently drops you right in the middle of Amsterdam Central. After navigating the treacherously narrow and winding staircase, we checked into our hotel located extremely close to the centre of town, The Orange Tulip Hotel, before we proceeded to venture forth into the city.

Ben And PatThe cityscape of Amsterdam is strew with canals and bridges crossing canals with narrow multi-storied buildings, a consequence, from what I understand, of a historical tax based on the amount of house frontage. Each building is decorated with awnings or stone and granite figures mounted at various points in typical European fashion. Many of the buildings are surprisingly but noticeably crooked, either overhanging the street from above, or slanting distinctly to the left or right into another building though I don’t really know why.

By The CanalsThe streets are wide as trams ferry large numbers of people through the city day and night. The roads also accommodate cars and pretty much most of the roads have a dedicated bike lane for the massive number of cyclists in the city. Cycling is an obviously favourable way of getting around if you’re a local, the evidence easily witnessed by the sheer number of bikes that litter the bridges, posts and sidewalks of town. Many of them appear antiquated, most of them have large handlebars, no gears and many of them appear to be rusting, but all, of course, equipped with that essential bell used to warn pedestrians that you are in their way (and not the other way around!)

Our weekend kicked off initially with a visit to the Heineken Brewery where they have a tour that is pretty much self-running. For any sort of brewery tour, they do have some more exciting things such as the Thirst DJ room (where you can mix it up with both lights, sound and video), a table-soccer table, and a number of ‘rides’ best left enjoyed to those easily entertained. It’s probably not worth the effort other than the three beers and a souvenir glass to take home.

Bike ChaosWe had dinner at an Indian restaurant and hit a number of bars/pubs to celebrate the occasion with Ben. We also walked around town including parts of the Red Light district, one of those places that you hear so much about and can’t really avoid if you visit Amsterdam. It’s not really worth describing in great detail here but let’s just say it was quite shocking to see in real life.

The next day we tried to go for a bike ride tour around the city but both bad weather and bad timing saw us miss our only opportunity. Instead we decided to embark on a ride in a glass covered canal boat around the city that proved both cheap and lengthy though unfortunately not as entertaining as originally thought. I definitely recommend taking a more personal tour if possible as the commentary on ours I found disappointing.

Overall it was a pretty fascinating city in how liberal it is, but sometimes not quite as nice with the prolific number of rowdy crowds from both the US and the UK disturbing the atmosphere. I think everyone had a great weekend anyway and that is really all that mattered in the end.

A Retrospective Timeline

The retrospective timeline is a useful exercise for gaining a better understanding and a richer context for a particular retrospective. This means that this exercise becomes less useful when you do retrospectives more frequently and especially useful when doing a retrospective spanning longer periods or you run retrospectives less frequently.

Goals
The timeline aims to give a very visual overview of the events that occurred during the period for which you are doing the retrospective. The facilitator should use distinct and bold colours to identify distinct events so that it is easier to interpret the results. The timeline is a great way of determining trends over time for periods in the project and a useful mechanism for getting a feel for how the team felt throughout the course of the project.

When To Use It
As mentioned earlier, the timeline retrospective is useful for refreshing the memories of participants and you might find it useful in the following circumstances:

  • For projects that are run without any intermediate retrospectives
  • For projects that require more formalised processes (i.e. not necessarily uber-agile)
  • If you need to communicate a more complete perspective for outside parties that may require reporting to
  • If all participants did not necessarily work on the project during the entirety of the project (people rolling on or rolling off)
  • The end of a project retrospective

The Fundamentals (Part One)
There are two major parts to this exercise. The first is noting all the events. Make sure that everyone has access to different coloured pieces of paper where:

  • Green represents good events
  • Yellow represents significant or memorable events
  • Orange represents problematic events
Retrospective Timeline Colour Chart

The types of events that you might want to consider suggesting include things like when people rolled on or off projects, when things kicked off, when someone in the business made a decision that affected the team in a great way, when the team did achieved something really amazing, etc.

Get everyone to scribble each event down on separate pieces of paper and then get them to tack it along a standard timeline along a whiteboard or several sheets of paper stuck to the wall. This is where sticky notes or lots of blu-tack helps. It should look something like the following:

Events along a timeline

It is a good idea for you to get everyone to explain events, especially if the participants may not have full knowledge of what was going on. The significant events help to put things into context and might answer a few of the puzzling questions some people might have about the project, and the good points help to identify strengths while the problematic points should lead you to discussing action items. I find this exercise is most useful for first putting context for a retrospective spanning a large time and then using other exercises to draw out further conclusions. It is a good mechanism just to get the discussions flowing within the team and allows the facilitator to try to put different perspectives on things.

The Fundamentals (Part Two)
The reason you want to reserve some space underneath the timeline is for the second part of this exercise. In this part, you split the remaining area into two sections where you get the team to fill in how they felt about each event or how they felt in general for that period. You can try to limit them by getting them to put three dots per significant period (week/month) or perhaps one per event posted, with the idea that you want to get a general feeling for the overall morale of the team. You should end up with a scattergram that looks like the following:

Team morale along a timeline

Once the team has finished plotting all their points, you can then try to draw a trend through them that helps to establish a real idea of how the project went such as below:

Trends during the timeline

Trawling The Timeline
The visual nature of the timeline allows you to easily draw out a number of trends from the project. Large concentrations of a particular colour may attract your attention to a certain period and it would be worthwhile trying to pinpoint its underlying cause so you can attempt to replicate (or avoid) the same circumstances in the future. The general trend at the bottom may or may not coincide with the events above the line so there might be another discussion point for explaining why morale might be low even though there might be lots of green or why it is high even though there were problematic events (maybe it was a good team building experience or people were growing and learning).

Agile Mythbusting

Yesterday I ran a session for another group at my current client introducing them to agile. The first part of this session helped me get a better understanding of what they thought of, or had heard about, or applied about agile and during this I noticed a few comments they touched on (and I hear numerous times from other people) that I thought might be worth sharing. I have found that when people observe and even when people practice some of the agile practices, it can be easy for them to incorrectly draw the wrong conclusions. Here’s a few of them and my thoughts on each:

Being agile means we don’t have to write documentation
I have never heard any agile coach nor practitioner ever say this, nor encourage this form of thinking. The agile manifesto states a value is “Working Software over Comprehensive Documentation”, with the thinking that people would rather some delivered instead of being given a document telling them what they could have had instead. You will find people trying to avoid writing comments in code because most of the stuff people write is redundant (it tells someone what the code does, when they can read the code right there and then – if it can’t be read, then maybe you have a bigger problem at hand). There are situations where comments are invaluable (libraries APIs given to external parties, or even commenting why something may not be obvious to a reader because of some bug/library/performance reason). I have found that sometimes having general diagrams with some descriptive phrases and a brief narrative is much more useful than any 300 page document might give. Consider that an hour spent in a conversation about what someone wants can be more productive than an hour spent writing and then another hour spent reading a document hastily put together.

Being agile means we don’t do design
Avoiding Big Design Up Front (BDUF) is a popular term but so easily abused. Not practicing BDUF is not about not doing *any* design and is even worse for a justification of a *poor* design and is a very big judgement thing. We have found that some good discussion about an approach helps (whiteboarding might be involved) can be useful, but in reality the implementation will be greatly different from the original design. It is sometimes better to just do things, and refactor to patterns or a better design (otherwise referred to emergent design) because you cannot anticipate everything. UML and class diagrams may help for *communicating* ideas, but not a great idea for trying to generate the code from it as the code tends to move faster than what the diagrams can keep up with.

Agile doesn’t work with old projects
There is no reason why inheriting someone else’s code automatically implies you cannot apply agile principles. You might find that some of the practices might be more difficult to implement such as talking to the people that originally wrote the code, or find the system difficult to test, but it shouldn’t stop you from trying. It does not mean that when you get new requirements, you cannot involve the customer more, it does not mean you cannot write your tests first and it certainly does not restrict you to release changes early and get more feedback. If you find there are problems, the old project is unlikely the cause and is more likely other processes such as the release procedures or the way your operations team works. Blaming agile or the project is not the answer.

Agile is no different from other processes, we do testing in RUP (etc)
I’ve never heard any agile practitioner say that testing is not executed in other processes. Testing in agile is different because there are different levels of testing and there is an expectation for the testing to start as early as possible. By focusing on testable, releasable and value-added units, more things can be achieved by the team such as getting better feedback, and getting more value earlier rather than in one big bang at the end (that may or may not happen).

A Canyon Breakfast

What a great day it was yesterday to go down to Richmond and have breakfast at Canyon. Canyon is a restaurant that He Who Knows suggested, and even though technically not part of the Challenge, thought I would check it out. With bright sun and blue skies heralding in a great London Sunday, Richmond by the river is a great place to go out and have breakfast.

You can find Canyon by the riverside at Richmond and is a very popular place with the locals. It appears to be quite kid friendly from the number of little bodies that were seated yesterday. I suggest going fairly early unless you have a booking as most of the good tables go quite quickly and the staff are likely to turn you away. The restaurant itself does not have a great vantage point like a number of the other places have of the river, but its clean cut white tablecloths and modern décor put on a very calming atmosphere to dine in.

Vegetarian Breakfast at CanyonThe service was quite good and I never found it in your face like many other places are. It seems that the staff monitored the tables quite well from afar and prompted at the right points during the meal to ask if we wanted another coffee, without interrupting the flow of conversation. They serve a delicious soft sweet bread with butter when you sit down, but this place comes highly recommended for its eggs Benedict, which Ben said “were the best ones he’s ever had.” I was left quite full from the vegetarian breakfast that I found nice and not greasy in the slightest. The hash brown (it’s thought of differently here in the UK) was flavourful and filling, the mushrooms well cooked, the eggs were nice and creamy and there was not an excess of beans overflowing the entire plate.

Canyon has a lot going for it, with lots of style and a great location. I can understand why some people consider it overly pricey, and I found the staff who served us were friendly and polite unlike the pretentious mob I had been warned about after reading a number of reviews (but we could have been lucky). It is a bit of a classier dining place than a number of the outdoor cafes, but what it does, it does well.

Details: Canyon
Found On: The Towpath, Riverside, Richmond, TW10 6UJ
Contactable On: 020 8948 2944
Highlights: Excellent quality food, great service, nice location
Room for improvement: Not the best value for money
The Kua Rating: 7.5 out of 10

Lunch @ Mohsen

MohsenFoodSmallPersian cuisine is easy to find here in London with lots of restaurants serving it all over town. I’ve been to quite a few now but I read that Mohsen at Earl’s Court was quite a good so that’s where I went for lunch yesterday. I find Persian cuisine difficult to describe as they serve quite a number of different things such as shish-kebab style meats, lots of dips and bread, salads with lentils, and various stew type dishes, and its definitely too cliché to deem it middle-eastern.

Having been to several restaurants specialising in Persian cuisine, I can at least confidently say that there are some consistencies between them. One guarantee is that I always tend to leave feeling extremely stuffed (especially if I have rice because the serves can be massive). If the restaurant serves rice you they will always offer butter (intended for melting into the rice), and there is usually some paprika floating around in addition to the normal salt and pepper. If you order bread (Taftoon), the restaurant will generally cook it freshly in a stone oven called a Tanoor, which usually sits next to the entrance. Though very close to the same process of making Naan bread, the Taftoon is slightly different in texture being a little bit thinner and probably more intended for scooping up dips and assorted items than absorbing curry sauce.

MohsenMohsen is located up Warwick Road away with the closest tube station being Earl’s Court. It is exactly opposite the Homebase store that can be quite odd if you get the window seats, and the restaurant is quite big all round with outdoor tables out the back that would be ideal in warmer weather. The restaurant has nice tables and intricately decorated plates all surrounded several paintings and numerous articles from various magazines and newspapers surrounding it. The food on offer is quite standard affair, and though not necessarily as cheap as several others, the quality of the food was quite good. I went for a chicken and lamb kebab that comes served with rice with both being deliciously moist and with that char-grilled flavour that comes only with real care. The lamb was probably one of the better ones I have had, and was juicy definitely from the meat and not the fat that several other restaurants I’ve been to seem to serve. The saffron rice was nice and fluffy and there was enough to finish the meat off easily. The orange juice they serve, though slightly expensive at £3, seemed like they had actually squeezed it themselves fresh and was both tasty and had just the right amount of pulp. I literally had to roll myself out of that place after eating there but was pleased that I had been to. Overall it’s good quality and although for value for food, I would still prefer Madhi, is nice if you’re in the area.

Details: Mohsen
Found On: 152 Warwick Road, W14 8PT
Contactable On: 020 7602 9888
Highlights: Good quality food and nice decor
Room for improvement: Slightly strange location
The Kua Rating: 7 out of 10

The Natural History Museum

Yesterday I finally managed to get entry into the Natural History Museum, located closest to the South Kensington tube. Last time, the massive crowds lining up thwarted my attempt, but thankfully yesterday most of the people were already inside. The museum is impressive from both its size and shape having been built in the mid to late 1800s. Inside it keeps a collection of breathtaking displays with the current exhibits including impressive replicas of animals such a blue whale, elephant and hippopotamus, a large display of dinosaur skeletons and other prehistoric animals and an earth sciences wing containing all different aspects that make up our planet.

NaturalHistoryMuseum.jpg

The dinosaur exhibition is definitely worth seeing because seeing skeletons is so different from reading stories or books or watching movies such as Jurassic Park. There are a lot of them, but the museum does an excellent job of putting stories together for each animal.

The other wing worth looking at is the one containing the mammals display which contain life-sized replicas of animals as you don’t realise just how big some of them can be. The blue whale is most impressive, but any the detail that has been put into many of these animals make it almost creepy about how life like some of them can be. One of the other highlights that I’m keen to check out is the Giant Squid that is on display as part of the Darwin exhibition but is so popular that it tickets go very quickly