New Site

I’ve decided that it’s high time I moved my work related posts to a new site. I think my current site catered to two main audiences, and it’s probably time to properly tailor the content for both circles. If you’re interested in my life, then keep on reading this site, otherwise please update your feeds to point to the new site and the new feed.

Periodic Table of Visualisation Methods

Before I lose the link, I stumbled across this page describing different techniques of visualisation. It’s useful for learning, thinking and analysis not to mention a great place to draw on in communicating ideas to other people. I like the hover over examples as well.

Check it out here.

Embracing Change

Wu WeiI had my room packed up, my bills redirected, my flight booked, had someone almost moving into my flat and was already trying to get through the round of (short term) farewells, but contrary to my recent post, it looks like I’m staying in London for a bit longer. Earlier today I got the ominous phone call telling me that my current opportunity to be a trainer in India will not be available as planned for the start of next year.

To say I’m disappointed is quite understated but at least I will no longer be as anxious as I have been this last week building up to Christmas and I know an opportunity will open up sometime in the future. Better yet I’m glad that it’s been easy enough to cancel the cancellation request on my ISP (they rock!) and I still get to go on my skiing trip already booked and paid for next year. I apologise to all the people who I sincerely told that I was leaving London, and I thank all of you who contacted me to wish me the best.

The picture above are the characters for the Toaist principle, Wu-Wei, and I find relevant in dealing with the recent news

How Tidy Is Your House?

Messy DeskI really enjoyed the entry that Rachel wrote giving “Refactoring” a normal name that ordinary people could understand. I like her synonymous term, “Tidying Up”, because it’s a great metaphor for understanding how important it is to any project in the long term.

There are obvious immediate side effects to tidying anything up. Things are easier to find, easier to move about and much easier to change. People who inherit or work in this “tidied up space” can do everything at amazing speeds. It also means that things can get messy quick. Fast forward three weeks and with all the changes, suddenly the “tided up space” no longer looks very tidy. Clutter begins to build up in piles, you see people duplicating effort, and then you need to start moving things around to even begin finding anything important. The clutter is slowing you down.

Tidy DeskIt’s important to keep on top of “tidying up” because it maintains your ability to stay fast. It also means that people coming along after you can work almost as fast as you (it still takes them time to adjust to finding where things are and where they should go). More importantly, those people following you need to understand how important it is to keep “tidying up”.

Thanks to lildude for the ‘Messy Desk’ picture and chaosbit for the ‘Tidy Desk’ one (both from flickr).

Moving Out and Moving On!

The biggest news I have this week is that I’m going to be living in India for about 6 months starting from January. I’ll be taking on a new role with other instructors running training and induction classes for people that join Thoughtworks. I’m really looking forward to the experience and I have a lot of support from my work colleagues and sponsor. I hope the people I will be working with will be able to capitalise on all my experiences I’ve had working on the many projects I’ve been on, and I think I will be able to refine a lot of the techniques and approaches I use when coaching teams and pair programming with people. I will also get a huge kick of working with people that are genuinely interested in learning and sharing and like most projects I’ve been on they’ll no doubt be plenty of fun along the way.

It’s a big change for me once again after moving to the UK, but I do plan on returning to the UK after six months and going through the paces again to find another place to live in London. It’s an exciting time and though there’s plenty of stuff to fit into the week before Christmas, it’s going to be completely worth it.

Trust, Honesty and Sometimes Saying No

I find that the people that set themselves up for trouble are the people that want to please everyone. I want to please everyone, but I’m also realistic in that I want to tell people the real picture and not some fictional world where nothing goes wrong. Some people like to paint this idealistic world - those people are also living in a dream world. In the real world people make mistakes, things aren’t perfect and you can’t promise everything will be fine. The only thing you can do is be honest, learn from your mistakes quickly and try to stop it from happening again.

I prefer being honest and telling people exactly what is going on, instead of pretending everything is going fine, because at some point things won’t and by telling people things will go smoothly you’ve effectively lied to people. I personally want to do right by the customer/client, and sometimes that means saying that it’s going to take some time to develop/test/deploy something. It means sticking by your guns, and being completely honest that things do take time in proper software development.

I really like this approach and I find it effective. Customers are glad to hear both good news and bad news from me, because they know that I have nothing to hide. They know that they will always be able to help make decisions and do right by the team.

Development Myths

Myth: I write code that’s always bug free.
Fact: I can write code that looks bug free by bringing the testing and QA cycle as close as possible.

Devolving to Waterfall (Part 1)

Context: A multi-part entry about how fast, responsive teams devolve into slower teams as a result of what seems like reasonable and completely rational decisions. I hope to understand when the turning points are and think about what other options existed, so I can either prevent them or turn them around in the teams and organisations I work with. I’m keen for some feedback so please email me (emailpat@[thisdomain]) or leave me a comment!

Imagine that one day, a business had a fantastic new idea to do something revolutionary. They manage to get a team of people together, develop some software for it and get it deployed. It’s a huge success, and the customers and business are happy. They work hard to get features out as soon they are ready (developed, tested and passing Quality Assurance) so that customers can use it as soon as possible. Daily deployments into production are the norm.

Things get bigger over time and the team starts to grow larger. The team can no longer keep up with the pace of requests and deploy the software as well, so they hire a “Release Engineer” who can deploy it instead. The team is ecstatic as they can focus on producing workable software, but then a manager turns around to see the Release Engineer sitting around. He says, ‘Hey, there’s someone who’s doesn’t appear to be working full time. Let’s get him involved on another project.’ To maintain order, the Release Engineer is only available to the team one day a week to do anything. Any new features that the team develops now take a week to appear instead of when the features are ready.

Lesson: Over-optimising locally affects your ability to respond quickly and effectively by adding waiting time to the cycle time.

Solution: Understand the system as a whole and don’t over-optimise. Generate solutions that might have been more effective (i.e. The Release Engineer works half a day on each project and can shift days about when needed).

Notes: I see this all the time at client projects when teams are split into their “functional” areas and need to juggle simultaneous projects about. Context switching constantly over email, IM, telephone and a person sitting there waiting for something to be done prevents them actually getting any work done.

Next Page »