After 11 years of being his own boss, John Cinnamond gave up his well-established freelance career to join Indigo& as its Head of Product. He is a computer programmer by day, and by night, and has helped build the platform from the first line of code up. John regularly speaks at conferences on technology and his approach to building software. John most recently spoke at tech conference dotGo on how to write better code. You can find out more about his talk here, and watch the full video (recommended!) here. John is passionate about agile development, we spoke to him about the evolution of Indigo& and building high-quality products. What made you take the role at Indigo& after more than a decade of working independently? There are several things I look for in a job – I want to work with nice people and solve real problems. And I want the freedom to get things done, but have the support of others so I can get better at doing them. I also want to make a difference. That’s why I joined Indigo&. How much has changed over the past 18 months? Eighteen months ago, we saw a disconnect between large companies and small suppliers and we knew we could help. But now, the idea of using technology to bring businesses together has evolved into a live platform that is trusted by clients and suppliers and is used to manage real projects. When we built the early versions of the platform there was an emphasis on rapid prototyping and quickly gathering feedback on our ideas. Although the product is still evolving and we have kept the fast feedback cycles, the focus has shifted more to building on the foundation we’ve established and ensuring we’re building a reliable, secure, and scalable platform. Are there core elements that are fundamental to the platform’s design? There are a few key drivers that underpin the platform. We want to make it easy for clients and suppliers to work together. We want to provide a single source of truth about projects so that everyone – be they a buyer or a supplier; a CEO or a engineer – is always looking at the same data. And we need to keep information secure and make sure our users always have total control over their data. We also understand that using the platform should be effortless for our users. We can’t make people’s lives easier if the platform is difficult to navigate so we put the user experience at the heart of everything we do. And we don’t want to build a platform that people need training to use or that gets in the way of people doing their job. We judge the user experience by how little people notice it. If you want to upload an invoice, review the bids for a project, or see at a glance what programmes are over budget, we want to make that easy and not distract you from your tasks. A well-designed user interface is central to that. How do you approach the design process? We can’t solve a problem we don’t understand, so the first step is to make sure the whole team knows what challenge we’re trying to address and why. This can be a straightforward process – as simple as having a chat about it. Or it may involve talking to multiple clients and working through different prototypes with them to find out which ones really make a difference. When we know what the problem is we can also try to work out the minimum viable solution. The word ‘viable’ is key – we don’t want to address part of the issue or create a badly thought-through product. However, we do want to get solutions into our customers hands as quickly as possible and then learn from their real-world usage how those tools can be improved. How do you balance the need to respond quickly to opportunities with the desire to build a high-quality product? Gathering and responding to feedback quickly and seizing opportunities runs deep in our approach to development. We put working code in front of Indigo& staff members as soon as possible and we get them to try it out for themselves. It’s a fast way to verify that we’re building a solution that actually works. We have radically changed direction after looking at an early, partly- implemented version and realised there’s a better way to do it. At the end of this iterative process we move to a more formal quality assurance phase. It’s not enough to have a great idea about how to move the platform forward – we also need to implement it well. All code is reviewed by another developer and the working solution is put through a rigorous quality assurance process led by my colleague, Karen Hansen who, as an ex Rolls Royce engineer, has a meticulous eye for detail.
“‘We judge the user experience by how little people notice it. If you want to upload an invoice, review the bids for a project, or see at a glance what programmes are over budget, we want to make that easy and not distract you from your tasks.’”
What is Indigo&’s approach to new features? Most of our new features are introduced following feedback from our clients or because Elspeth and Michael (our CEO and COO) have used their extensive experience as buyers and suppliers of services to spot new opportunities to make people’s lives easier. This idea of “making people’s lives easier” underpins everything we do. How important is agile development? Agility is at the core of how we operate as a business, not just the way we develop software. Part of that is being able to respond quickly to feedback but there are other ways of thinking about agile development that I think are influential too. The first is being clear about the way we approach each task. For example, to achieve some aims we can develop a solution and see how it works. For other tasks, we may need to get it absolutely right first time. We don’t have a fixed approach that says “this is the process we always follow” – instead we choose the direction that is appropriate to the situation. Secondly, we want to make our customers’ lives better so that as their requirements change we change with them. There’s no value in delivering something to an agreed specification if that specification isn’t quite right or if the circumstances around it change. A friend of mine sums up software development by describing it as ‘software written by humans for humans’. I think that if we ever lose sight of that things start to go wrong. John Cinnamond Head of Product, Indigo&