How to use solutions-focused scaling for Agile Retrospectives

Most Agile retrospectives are about how the team is feeling e.g. happy, sad, confused etc. We then try and understand the cause of the problem so that we can fix it, in the same way that we try to debug an issue with a software program. This approach makes sense when dealing with complicated problems, such as software, which have direct cause effect relationships. However, when working with team dynamics, people interactions and feelings, we are working with, and within, a complex system that doesn’t have a direct cause and effect relationships.

Trying to understand the root cause of something in a complex system can take a lot of time, and isn’t necessarily helpful in finding the desired solution. In complex systems, there is no direct relationship between a problem and the desired solution – this is one of the things that defines a complex system

Solutions-focused approaches to change[1] have shown that a more direct approach for complex systems is to investigate for clues of where evidence of the solution you want is happening already and do more of it. In addition you can also identify small actions to take, like mini-experiments, to see if these actions nudge the complex system in the direction of the desired solution.
Continue reading

Minimising build time with recursive containers

One of the things you lose when you start using docker is the caching systems implemented in our package managers.

Take the following Dockerfile for example:

FROM image_with_bundler
ADD Gemfile /project/Gemfile
ADD Gemfile.lock /project/Gemfile
RUN cd /project && bundle install
ADD . /project
RUN some_command_using_those_gems

This is great in that we don’t have to wait for our bundle if we haven’t changed the gemfile. But if we change just one dependency we have to wait for the whole bundle install.

This gets annoying after a while.

Continue reading

Graduates and Pairing

In March 2014, I was lucky enough to join REA Group’s first group of IT Graduates. The four of us have spent the past year rotating around the business, working with a variety of different teams. We have worked on front-end development, ops and everything in between.

This year the graduate programme has expanded to nine graduates!

Casey Leask put me onto the article “Pairing with Junior Developers” by Sarah Mei. I would highly recommend that anyone who has not experienced pairing with a graduate, and those who have, read it.

The main points of the article are:
  • Don’t type
  • Let them make mistakes
  • Take breaks
  • Be prepared to say “I don’t know”
  • Find what they can teach you

I thought I would add some of my own thoughts from my experience so far at REA.

Continue reading

How and Why We Run the REA Graduate Programme

O(n) Week Day 1, 2015 – Somewhere in the Yarra Valley, Victoria: A group of fresh young faces gather in small groups around a house-cum-conference-centre nestled amongst the trees. A communal dinner has been shared and there are beers and soft drinks in-hand: some play pool, some cluster around a newly learnt eurogame, some just chat. Our 2015 graduates are starting to relax and unwind at the end of their first day of (O)n Week.

Continue reading

Why team managed infrastructure makes sense

Over the past 12 months REA Group has been moving towards a structure where individual teams will manage their own infrastructure.


Start ups (or companies that behave like one) should already have devops culture. At REA Group we’re trying to bring a startup feel to individual teams, so engineers at the team level can decide on what new technology they want to try out, test and learn ahead of the rest of the organisation, and ensure the company stays adaptable and ahead of the curve.

Continue reading

bash-my-aws: CloudFormation for Infrastructure Jockeys

dead air (noun): a period of silence especially during a radio broadcast

bash-my-aws (foss): set of bash functions that reduce dead air when managing Amazon AWS resources with CloudFormation.

DJs avoid dead air like the plague. We should too.

At the command line, dead air is the time between intention and outcome. It’s the time spent constructing commands and waiting for them to execute. It makes demonstrations tedious. It’s unacceptable for oft performed tasks.

Having the right tools for the job and knowing them well makes interactive use a breeze. bash-my-aws provides simple, powerful tools for managing Amazon AWS resources with CloudFormation.

Continue reading