Building (Accounting) Software the Right Way
Building accounting software is what we do here at Easy Business App — and we've learned a thing or two about it in the last seven years.
We're often asked "how are you guys really any different from Xero or MYOB?" and one of our key differentiators is in our approach to designing and building software (the other massive one is our focus on customer support).
I thought I'd share some learnings from the last few years to explain how (and why) we do what we do.
Is this "the right way" to build software? Well, I'm pretty confident it's not the wrong way, but there's always room for improvement.
Here are the top 7 things we've learned so far from building Easy Business App:
1. Listen actively to your users
You need to listen very, very carefully to your users and give them easy channels to connect with you. Everyone at Easy Business App spends time doing customer support, including our CEO. It keeps us super close to our users. Even a short live chat conversation or a phone call can be an absolute gold mine of information.
We have a feature request board which we discuss in every product meeting and we (almost always) build the things that get the most votes. We've completed about 25% of all the feature requests made so far, with another 5% currently in progress. For comparison, for Xero that figure is more like 12% (you can see it here).
Our Customer Support reps gets to vote on our roadmap priority. And their vote carries exactly the same weight as the CEO's.
We run Customer Satisfaction (CSAT) and Net Promoter Score (NPS) surveys and we ask for feedback from all our users (not just the happy ones).
We proactively ask all our users (not just the happy ones) to review us on third-party sites like TrustPilot.
All of these things give us a wealth of information about our current users and their pain points.
2. Listen actively to people who are not your users
Everyone involved in product design (including the CEO, again) spends time hanging out in groups for small business owners, bookkeepers (like this one) and accountants (like this one). Each of those groups has about 8,000 members. We watch. We learn. We ask questions. We answer questions. We follow the discussions about common pain points and gaps in our competitor's software. We hear about the non-software pain points. All of this helps us broaden our domain knowledge, so we can build software that addresses these pain points — not the pain points we imagine in our head.
Focus groups are a common way of doing this, but we rely less on these than just keeping ourselves as close to the coal face as we can manage, day-in, day-out.
3. Release features frequently and get real-world feedback
Easy Cashflow launched (in April this year) without some core functionality. We knew it, our users knew it, everyone knew it.
But by releasing early, this allowed us to get both active feedback and usage analytics from hundreds of real-world users.
There were gaps in our initial release that we were absolutely convinced would have to be closed as quickly as possibly, but six months later they're still there. Why? Because they weren't as important as we thought they were.
Our users (and potential users) told us other things were much more important, so we built those instead. Turns out bulk editing is more important than bank rules (we were going to build them the other way around) and searching transactions across multiple bank accounts at once is extremely useful — it took Xero nine years to do that one (source) and us about 6 weeks, because every person we talked to about it said it was absolutely essential.
4. Hire world-class engineers and give them autonomy
We have a very small engineering team at Easy Business App. And it took us years to build that team.
I've worked on tech teams in the past with 10x that number who deliver at half the speed we do. The Mythical Man-Month is a book that is fifty years old next year and it's as true today as it ever was — throwing bodies at software development often makes things worse, not better. As the famous quote from that book goes, "nine women can't make a baby in one month".
If you hire brilliant software engineers, give them autonomy, provide easily accessible domain knowledge and try not to micro-manage too much, they'll build reliable, maintainable, easy-to-use, high-quality software.
5. Meet your users where they are
We have a mobile-first design philosophy at Easy Business App, because more than 70% of our users create invoices on their phones and more than half process payroll on-the-go, too — and those percentages steadily increase year-on-year.
This means we design every feature so that it will work on the smallest screen (a phone) before scaling up for larger screens. It's difficult to do and takes a lot of time, but it ensures our app works flawlessly on any device with any screen size. It's also why our app is available on the iOS App Store, Google Play store, as a web app and as a mobile web app. So, whether our users are on a phone, tablet, or desktop, they can use 100% of the functionality on any device.
No "companion apps" with limited features here; they're so frustrating for users!
6. Don't try to be all things to all people
We make software for micro and small businesses and their bookkeepers and accountants. That's it. Could you use Easy Business App to manage a complex business with 100 employees. Well, you probably could, but it wouldn't be a good fit, because we didn't build it with those users and use cases in mind.
Xero makes an interesting case study here. They spend millions of dollars on their "Beautiful Business" campaign, aimed squarely at micro and small business. But they're also increasingly trying to compete in the enterprise market to ensure they don't lose medium-to-large sized customers to ERP competitors like Microsoft Dynamics, Oracle NetSuite or SAP.
This gives them a bit of an issue. The needs of a small business with a few employees are completely different to the needs of a larger enterprise with potentially hundreds.
Micro and small businesses need simplicity, affordability, mobility, flexibility, simple "one-at-a-time" operations and limited integrations.
Large businesses require complexity, desktop power-user features, multi-user workflows, rigorous month-end processes, bulk automations and custom integrations with potentially thousands of other tools. And they can afford to pay a lot for it.
Going full Lord of the Rings with "One Platform to Rule Them All" is a good sell to shareholders ("Look how big the market is! It's basically everybody!") but is nearly impossible to actually achieve. This is why you have so many apps on your phone: because they're each good at doing one or two things very well.
7. Don't fix what ain't broken
When we started back in 2017, we were "Easy Payslip", with just one feature: payroll (and rapidly after that, Single Touch Payroll). But we always had the vision to be a full accounting app. While we were in the planning stages to add new modules and become Easy Business App we surveyed all our existing users to see what they thought about this idea.
We got a tonne of useful feedback, but perhaps the most surprising things was this: there was a free text comments box at the end of the survey where we asked "Is there anything else you'd like to add?" and the most frequent comment by an absolute mile was "Please don't change Easy Payslip! It works just fine as it is!"
One of the most frustrating things about software is when the developer changes it and it doesn't work like it used to. Maybe a feature is removed. Maybe the user experience changes so what used to take one click now takes 5. Maybe it doesn't work on your tablet so well any more. Xero are going through this at the moment with their "new invoicing" debacle causing uproar on their forums and tanking their Trustpilot rating to a rather shocking 3.6 out of 5.
There's an adage in software development that people forget far too often, neatly summed up by Joel Spolsky: "why fix what ain't broken?"
As part of a full system re-architecting in preparation for turning Easy Payslip into Easy Business App we changed every single line of code and element of infrastructure in our app and re-built it from the ground up. It took the best part of a year. And when we launched it, none of our users noticed.
I think this remains the proudest moment of my career, because we worked so, so hard behind the scenes so that we wouldn't disrupt our users. And we didn't. But we'd laid down a platform that enabled us to grow into other areas without alienating the people who'd got us there in the first place — our customers. In short, we didn't break it, because it didn't need changing.
Where we need to get better
We've definitely learned a lot as we've grown, but there's still so much we need to get better at, such as:
Integrations. Being a close ecosystem is not good for anybody (including us). We can't build everything, so supporting integrations to others is smart. Xero have been pioneering at this and their Xero Marketplace has some genuinely sensational partner products that allow you to extend Xero to work for each unique business. While we have no intention of trying to copy that, allowing users to migrate into (and away from!) Easy Business App is a bit of a no-brainer, as well as having some key integrations to cover any functionality gaps in Easy Business App, plus allowing things like BAS submissions directly to the ATO. This will be a big focus for us in 2025.
Making our product roadmap clearer. While our feature request board is regularly updated to reflect what we're working on, we're not great at communicating our longer-term plans to our users. Expect more focus on this in terms of a product newsletter and more engagement with both small businesses and advisors next year.
Unifying our User Experience across modules. Reports are a great example of this. We currently have two reporting engines in-app, one for payroll reports (you can download them as PDFs, but not drill-down or download them to a spreadsheet) and one for our core accounting reports (you can't yet download them as PDFs, but you can drill-down and get them into a spreadsheet). This is obviously confusing (and annoying!) for our users. Having one, unified reporting engine so that all reports look and behave in the same way (and can be saved to any format the user wants) would go a long way to improving usability.
TL;DR
I feel like any long article should have a "too long; didn't read" summary. So here it is:
It's hard to build great software, but by actively listening to your users (and future users), hiring well and keeping a laser focus on your niche, you can have delighted customers, happy staff and a fantastic product.
The end. Phew!
Thoughts on this article? Connect with me and jump on the LinkedIn discussion and share!
Images by @nikaniki / Canva