Distributed Agile – Extreme Communication

In my first post on distributed agile I described how our teams are structured.  That’s a foundation piece, but a more interesting aspect of our distributed agile model is how we communicate.

Communication is at the heart of a healthy IT delivery team.  And at REA we believe in the value of face-to-face communication, so much so it’s enshrined in our operating principles.  But isn’t that the very thing that becomes difficult with distributed teams?

Well, If you’ve worked in traditional distributed teams you may have seen the signs of a break down in communication – long overnight emails, long lists of issues and actions, frustration, missed goals, misaligned expectations, poor quality, the occasional stilted video conference call for project updates or to fight fires, etc.

So at REA we practice extreme communication.  In this post I’ll describe some of our practices, but it’s important to understand that good communication is based on strong relationships and trust, and achieving that in a distributed team is difficult, I’ll describe how we do that in another post.

Continue reading

Feeling Validated – A different way to validate your input

TL;DR

The following post is a Scala example of validating input into your software.  We use Scala, but you can do this in many other languages like Ruby, JavaScript and even Java!  After trying a more traditional approach we then use a type called Validation to encode our business rules.  It’s a different way of thinking.  It uses the Scalaz library.

Continue reading

The abject failure of weak typing

More discussion on Hacker News, and the Clojure, Haskell, Rust and Programming subs on Reddit.

Over the last few years of maintaining code old and new at REA, it has become abundantly clear that the neglect and misuse of type-systems has had a sharply negative impact on our codebases. Here we address the concrete causes and consequences, and propose concrete and achievable solutions.

Types at REA

REA’s codebases vary between statically typed languages such as Java and Scala on one hand, and “dynamic” languages such as Ruby, Javascript, and Perl on the other. I’ll mostly leave the dynamic ones alone — while the same arguments obviously apply, they are what they are. However, if we are paying for the conceptual overhead of a static type system, we need to be sure we are using it effectively; otherwise we are simply writing the same old Ruby play-dough but with long build-times and cumbersome syntax. Used properly, the tradeoff of static types is overwhelmingly beneficial. Continue reading

Protecting your AWS keys with Credulous

Every week, AWS credentials leak into the wild and are used to mine bitcoins or worse.

In April 2014, DrawQuest closed down after a security breach in which their Amazon Web Services credentials were used to create hundreds of EC2 instances, probably for mining bitcoins. DrawQuest decided they could no longer trust that their core data wasn’t compromised, and closed their doors.

Wouldn’t it be great if there was a tool that could help prevent this sort of thing happening? Well, now there is — enter Credulous.

Continue reading

Distributed Agile

Our IT teams have been working in a distributed agile way for about 3 years now, we’re really pleased with the results.  Distributed working is a challenge, so I’d like share what’s worked for us, I’m confident these can be repeated in many other organisations.

Here’s the basic set up:

Distributed Agile Part I Map

We have 2 delivery centres.  Centre #1 is at our headquarters in Melbourne.  That’s our largest centre with many cross functional teams, each team here including IT delivery, IT operations, product managers, sales and other business folk.  Centre #2 is in China, it is owned and operated by our partner ThoughtWorks, with a focus on software delivery but increasingly other functions too.

Continue reading

Interview: James Nathan, Co-Founder of Food Orbit

We admire passion and purpose at REA Group, which inspired us to recently sponsor a prize recognising those very two qualities at Tech23 – an event that lets budding technologists pitch their ideas to investors and bring them to life.

We chose Food Orbit as our winner; an innovative online marketplace community that connects and empowers trade between chefs, local farmers and restaurateurs.

tech23cheque

Tomas Varsavsky, Head of Technology – Media & Developer at REA Group, awards James at Tech 23, 2013

We loved the community centric idea and were thrilled to present founders James Nathan and Melissa Foster with their prize, which included having James come and spend some time with our inventors and makers at REA – soaking up our culture, ways and means of working. We knew we’d learn a lot hanging out with James too!

James joined us for our 15th Hack Day and Hackers Market. In between pitching ideas, swapping insights and tacos, we had a chat about what he does, why and how he does it, and what he and his team have learned.

Continue reading