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.
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.
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.
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.
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.
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.
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.