Unruly’s Top 5 Secrets To Agile Product Development
At Unruly, we have been applying an Agile approach to developing our products from the very beginning. Our core practices, put in place when the company was founded back in 2006, are drawn from XP (eXtreme Programming) but with a lean twist.
We’ve grown our Product Development team carefully, seeking out software developers who are not only deeply technical but also enjoy collaborating with users to figure out opportunities to enhance our products.
Essentially, we try to strip away the jargon and cryptic acronyms to basic principles that anyone can understand.
But how do we make it work? What are the processes we put in place to make sure it all runs smoothly? Well, below are five things we do to make sure we stay agile in a very competitive market.
These techniques may sound a tad radical for most organizations, but in the dynamic world of social video they put Unruly in a great position. We can leap on new ideas quickly while being confident that our current products are being constantly monitored to ensure they’re running smoothly.
Our teams share the status of latest changes at the start of each day in stand-up meetings. We use whiteboards and screens mounted across our offices to radiate current progress so everyone knows when features are ready for release. Developers also share their work with the rest of the team, making it possible for anyone to make fixes. This helps our teams maintain momentum as we’re able to carry on as usual when people are ill or on vacation.
All our production code is developed in pairs – two developers work at a single computer to write code and we usually swap partners each day. This may sound a bit close for comfort, but we’ve been doing this for nearly 8 years now. It’s a great way to share knowledge around the team, keeping code quality up as every single line is checked by two pairs of eyes.
Our developers want to spend their time solving interesting problems rather than manually checking builds and deployments. Luckily, computers are great for running repetitive tasks, so we write programs to test our products. We write all code “test-first” so code simply doesn’t get created without tests. The same goes for repetitive tasks to create builds and deployments. If a computer can do that for us then we automate it!
4. Continuous Delivery
Many organisations find putting changes live is a stressful process. Instead of batching up changes and pushing them out every few weeks or months, our developers put changes live every few hours. We’re able to switch features on and off in our live environments so we can quickly respond in the rare occasion that new changes start causing any issues.
5. Face-to-face conversation
We like to get together with our end-users and stakeholders (in person or via webcam) to discuss their needs and evaluate potential solutions together. A quick chat will help us understand the real benefits of a user’s requirements much faster than a long email chain. Our developers take turns to play the role of “Lone Ranger”, sitting with our business teams and providing a quick turnaround for any support requests.