SaaS Accounting Solution Development Behind the Scenes: Interview with Billy.dk CPO
Software as a service (SaaS) applications aim at introducing more automation, transparency, and simplicity to various processes. Bringing value to numerous customers gives SaaS apps high revenue potential, making their development an attractive business idea.
Of course, it’s necessary to double-check market demand for such a solution, so you should either
- find a niche that screams for innovation and see the way of bringing that much-desired transformation
- or already have an application used for your business internally, which would be helpful for others too. Then you may consider migrating your traditional app to SaaS.
Our client Bastian Jerichov, a chief product officer (CPO) of an accounting app called Billy.dk, has shared his experience of SaaS development. Knowing that accounting is a vital, yet complex and challenging part of every business, Billy's founder saw how to change it from a stressful nightmare into a duty any person can effortlessly cope with without hiring professional bookkeepers.
Are you curious about what it took to develop one of the most popular SaaS accounting platforms in Denmark? There’s much more to it than just a brilliant idea…
A dream behind the Billy app
Billy was founded over 10 years ago by a serial Danish entrepreneur who has started more than 30 businesses. Back in the time, all the financial platforms in Denmark were built for professional bookkeepers only, so they could do the accounting. Billy's founder strongly believed that business owners could manage it by themselves just as well without hiring a bookkeeper.
He wanted to build an app that instead of using bookkeeping terms, would substitute them with the words that entrepreneurs use, e.g. expenses, invoicing, income, etc. This would move the accounting solution from the bookkeepers’ world to a world where a simple person could use it on their own.
Therefore Billy started to help what we call “Business Heroes.” That was the initial dream of Billy, which succeeded very well. Having served for many years, it quickly grew to become one of the largest accounting platforms in Denmark. Right now, it's the third largest one, being integrated with 100% banks in the country.
Target audience profile
Billy’s target audience consists of people who own and manage very small businesses. Most of our customers have annual revenue of about 100,000 Euros. Little startups and one-person companies constitute about 90% of the clients.
Our key goal is to help startup people who have small businesses and can't afford getting a bookkeeper, so they would use Billy instead.
Legacy challenges and a new product vision
After the founder exited Billy around 3 years ago, I became one of the first persons to be hired into the product team.
It was a different process for me as the product manager, because you're taking over somebody else's dream, then you're making it your own.
When we took Billy over, we had to pay attention to SaaS app development. Our mobile application was quite terrible. It was like a left hand worked by some other third-party person :-). The code was in a very bad state, so we couldn't really extend the products. That’s when we decided to partner up with Apiko. We told them to rebuild the mobile app from scratch simply because what we’ve started was never supposed to be a “left-hand” project. Instead, it has to be one of our core offerings within the product.
The product vision we had has totally changed the details of how Billy should evolve. We've noticed that our customers used the app just once or twice a quarter, four to five times per year. It was because they bulked up the work, and turned to the app just before the deadlines to submit VAT or some kind of reports.
No wonder, the customers claimed that Billy was annoying. However, multiple interviews with our audience members revealed that the true reason for dissatisfaction was doing the job late and too close to the deadlines.
Moreover, many startuppers, like carpenters, electricians, coffee shop owners, etc., hate accounting so much that it's nearly the worst thing they can think of. They will never do it on a regular basis unless we help them work on it in small steps.
So to change the situation, and get our customers to use the app on an ongoing basis, we decided to move the web platform functionality to the mobile app so that
- our clients could do their accounting on the go
- we could automate most of the work for them, and just tell them what they need to do
- we deliver a really customizable solution, so it’s not one size fits all.
We’ve spent a couple of years building the mobile app to the current state, and now it has most of the features from the web app. In the last 12 months, we have managed to increase the mobile app adoption by 70%, we’re very proud of that result.
Our next step is actually making it much more automated, allowing our users to really bring accounting on the go. We’d like our clients to just lean back and expect that everything is ok unless the app notifies them there's something that they have to do.
What are the potential challenges of SaaS development?
Before proceeding to a SaaS feature (e.g. a dashboard, an invoice flow, etc.) development, we have so-called defining sprints. That’s when we try to figure out what the best approach for making this functionality work should be. I think the core problem about SaaS solutions is to have enough time to define, because the development is extremely expensive.
It will take you a lot of time to redo the feature that you thought your customers would love. So for agile SaaS development, it’s crucial to have the right balance between defining and developing the product.
A core problem of many SaaS businesses is that they tend to focus on a roadmap. We don't have roadmaps in our business, and just thinking sometimes a little bit too structured, in a roadmap-alike way, becomes a problem for us. So in addition to agile development I would suggest defining the work in an agile manner. That's a core problem for us, and I think it’s substantial for other SaaS businesses too.
Open-source technologies vs development from scratch
We use a lot of open source as developing everything from scratch would be quite time-consuming. So whenever there are common libraries or other tools with a big community around the open-source part, we use them.
For example, there are many graphs on Billy’s dashboard. We decide how to display and build them and come up with the design, but we don't implement that. An open-source tool called Recharts does all the handling, so we can just pass some CSS magic stuff, and then it shows up in the shapes and colors that we wanted.
Billy is built with React, so we also use ant design. It’s a really awesome design system, so we are cherry picking a lot of their stuff.
These are just a couple of examples of open-source tools which save us a lot of time.
Machine learning for SaaS accounting solution
Billy uses text and image recognition to scan the checks and to make the invoices automatically. It took us around six month to build this machine learning algorithm from scratch. It's not in a perfect state yet, demonstrating 92% accuracy, meaning we get the correct data in 92% of the cases.
It's often a big problem to find the training data for machine learning algorithms, for example, the images to train them on. So, what did it take to collect the training data?
Yeah, we have around 30,000 active users on the platform. And they, of course, upload receipts all the time and also type in some information manually. So we just used our own customers’ data which, as we knew, sometimes were wrong. As there were millions of data instances, we had to clean them up, to not train the algorithm based on the wrong examples.
What was the biggest challenge of implementation of this AI module?
I think our biggest problem was that more than a lot of customers uploaded receipts that had very bad quality, or checks that didn't even look real.
Although right now our image recognition tool has very good accuracy, we would like to improve it. Being able to tell the customer when the check they upload is not legal, or when the lighting on the image is too poor, and ask them to try again can take this machine learning algorithm to the next level.
What ensures software as a service reliability?
And what, in your opinion, makes Billy a reliable application?
A lot of SaaS applications have a so-called status page, where you can find some metrics highlighting how the platform’s running. We’ve discussed what high reliability is for SaaS many times.
However, as more and more companies change their software architecture from monolithic to microservices, just as Billy has done as well, it becomes harder to define what being reliable means for them. Are they reliable if everything works fine? Do all the services have to run at the same time? Or can one service be out, and then some other things work? It’s a really good question, and every SaaS business defines what reliability means for them internally. So there may be thousands of answers.
For us, the most important thing was that the features our clients use the most have to be available all the time. Since Billy is a SaaS accounting solution, they include being able to upload a receipt, generate and send an invoice, sign a document, etc.
And if something doesn't work, we have to know it before the customer. So that’s not the client who informs us that some functionality is down. Instead we can admit that something is not working, and make sure it'll be online again in, let’s say, three minutes. So that's what we call reliability internally.
At Billy we apply synthetic testing to the things that we want to work at all times. There are many tools, e.g. sentry.io, which we use both on mobile and web apps. It sends warnings when some code is not performing as it should. So that the customers experience a fault tolerant system that we can work with and fix the bugs without the clients having to report.
Billy app development challenges
I think that the biggest challenge for me and for the team has been to find the right balance between the development of new features and old code refactoring. To be honest, when Billy was started, it was very much focused on just giving new features to the customers. And when we took it over, three years ago, we knew that the code quality was pretty poor.
We could not keep introducing new features, but needed to look back and make sure that the old code is performant, and that it will scale in the future.
SaaS development recommendations from Billy’s CPO
What would you advise people who would like to develop a SaaS app?
- Spending time on getting the right team on board is extremely important. When we started three years ago, there were literally no developers from back in the days. The last few years we've spent an immense amount of time hiring the new team. So I think that, at least from my perspective, it is crucial to bring on the right team: the right people who want to work in a collaborative environment.
- Just get out of people's way, and create teams that are autonomous. In our case, we have the teams comprising the product manager, and assign the developers. It means that the team can always take the decisions on their own. Letting people do their work is one of my most important learnings from being here, at least. If you do that, then it becomes so much easier, and people in the team succeed.
- Limiting the amount of employee churn in SaaS business is vital. We don't have any issues with people leaving us because they like working for Billy. They like how we work, and feel that they want to stay. It’s extremely important as you know how the market is right now. It's almost impossible to hire good developers, and it’s hard to find designers, etc. So keeping the ones that you have on the team is a make or break for SaaS solutions for a significant amount of time, at least until the market's changed.
We are grateful to Bastian for sharing these project development insights with our readers, and are glad to be helping him with working towards the Billy app dream :-)