Extreme Programming at Macquarie

Learn how a number of product teams within Macquarie are practicing Extreme Programming leading to remarkable outcomes for both our customers and our culture.

By Matt Rowles, Software Engineer at Macquarie Group.

XP (Extreme Programming) is an agile product development framework which is underpinned by a set of engineering practices. These practices are performed in a highly disciplined manner — all day, every day.

Although engineering practices may form the foundations, the philosophy behind XP is about empowering everyone within a highly autonomous digital product team to deliver value to our customers quickly and confidently, especially as their needs evolve.

Development

Pair-programming

Engineers complete user stories, chores and bugs as a pair. They each have their own monitor, keyboard and mouse, otherwise it is the same machine and task at hand that they are working on together.

Generally, two minds will approach and complete a task at hand with better outcomes, through diversity of experience and a well thought out approach. In addition to this, the immersive environment cultivates superior learning and knowledge sharing through conversation and osmosis.

Full-stack product engineering

Through daily rotations, people skill up much quicker on business and product knowledge and also across the entire tech stack — which includes, but not limited to, web, API’s, mobile, infrastructure, compliance or security.

Engineers will be able to support the product at all layers and resolve bugs much more quickly.

Production, quicker

Until a new feature is in front of a customer, it has no value. XP, through Continuous Delivery practices, allows teams to get new features in front of customers as quickly as they are developed, in order to start analysing, learning and evolving.

Testing

Behaviour-driven development

Before a line implementation code is written, engineers will write various tests that coincide with user story expectations. This fosters acute understanding of the task at hand and the value to the customer, meaning a better, quicker and confident implementation.

High test coverage

High test coverage in all areas increases confidence such that teams can deliver new features to customers more quickly with higher confidence. Test coverage can include unit tests for business logic, end-to-end tests for user paths through the product and integration tests for third-party services.

Flat Structure

Leadership

Everyone on the team is responsible for the success of the product, no matter the role or level of experience. Everyone on the team has a hands on role and rather than assigning a leader, we disperse and rotate leadership responsibilities in order to skill up everyone quickly.

Outcomes

Customer Satisfaction

Increased customer satisfaction has been observed through relentless attention to detail in all aspects of our products’ evolution. We start with the customer in everything we do, through things like empathy interviews and observing analytics so by the time we are implementing anything new, we are pretty confident it will land well.

Experiments

By moving quickly with confidence, we are able establish and test hypotheses and build products much more efficiently, essentially evolving our products in parallel with our customers ever developing needs and desires.

Responsible, Intelligent & Passionate Culture

The immersiveness of XP creates a culture where everyone is constantly learning and growing through osmosis. It is extremely collaborative by default and fosters a very intelligent, practical, engaging and fun way to build digital products. Engineers become extremely capable and grow in seniority far quicker.

We’ve seen many fantastic outcomes from practicing XP in a highly disciplined manner, these are just some of them.

Macquarie Engineering Blog

Sharing insights, innovative ideas and ways of working from Macquarie’s technology team.

Macquarie Engineering Blog

Written by

Sharing insights, innovative ideas and ways of working from Macquarie’s technology team.

Macquarie Engineering Blog

Sharing insights, innovative ideas and ways of working from Macquarie’s technology team.