Accounting is like code
Habits and collaboration by default
Ahem, hello? Hello? [tap,tap,tap] Is this thing on?
This is Younes from The Family.
Chasing Paper is a newsletter giving my perspectives on finance, strategy, tech & innovation - and how they interact. It’s aimed at CFOs and other people with entrepreneurial endeavors who are looking for tools and ideas to improve the handling of finances in their companies.
There are many of you who joined the community after the last issue was sent out in July 2020 (😇) so let me bid you a very warm welcome! And to the others, welcome back!
As an opener, I have to say it is very hard to get writing again after a long break: once you’ve gotten away with skipping N weeks, well, skipping N+1 is always a little easier. Which got me thinking about this great Fred Wilson/Seth Godin interpolation: “streaks require commitment at first, but then the commitment turns into a practice, and the practice into a habit”. So whatever you do, aim for streaks.
This week, I wanted to explore the similarities that exist - or that ought to exist - between accounting and code.
Rick Moranis portrays a nerdy accountant in Ghostbusters. Could he be a coder?
One of the main reasons I was silent in H2 2020 was that I had to plough through years of accounting data for several companies in our group. Not only was this data prepared by different accounting firms across different countries using different accounting principles, it was also scattered, sometimes incomplete or inconsistent year-on-year, and lacked proper supporting documentation.
As frustrating as it was, I realized that it all stemmed from the mere fact that accounting in our case had never been envisioned as a collaborative endeavor, but rather as an individual task outsourced to a bunch of providers. Therefore it was high time we implemented collaborative rules for working on the accounts.
Principles of code
There’s no need to be code-literate to understand the many similarities between accounting and code.
There are your rules (e.g double-entry accounting), your languages (e.g the specifics of an accounting standard over another), your functions (e.g the chart of accounts, the accounting decisions), etc.
The interesting difference is that in order to make collaborative work possible on code, there are things that supersede - or complement - the generally accepted coding principles (even if they aren’t as detailed as the GAAP). Those are habits that make code an asset in the business rather than a liability. And it’s funny - almost all of them can be applied to accounting as well.
Comment and structure
Software developers have made a habit of commenting on the code that they are working on. This allows peers to review it more easily, and lets anyone working on the same code in the future grasp all the decisions and details without having to rely on deduction or somebody’s memory.
Obviously, this is a constraint for the coder. So in order to keep a good level of information and enough agility, senior software developers encourage their teammates to avoid long, non-updated documentations. Instead, it is preferable to describe the expected outcome of a function with a simple sentence in the comments, if the name of the function itself isn’t explicit enough. For most cases, function and variable names are self-documenting, meaning that their names must speak for themselves.
It would be a tremendous advance if all accountants started to apply the same principles to their bookkeeping: comment with a simple line for each item that is not obvious, on top of organizing the supporting documentation to be found conveniently. This leaves less room for interpretation, therefore less room for error. And bear with me here: that’s the case already, except most accountants make the comment relevant to themselves by default instead of making it relevant to anyone by default.
Avoid clever entries that can’t be read
Code must be read easily. A function written in one line is clever indeed, but it’s impossible to understand.
Likewise, accounting entries that over-simplify complex and/or repetitive operations (e.g recording revenue from Stripe by a single weekly item instead of individual purchases) are to be avoided.
How to balance an understandable but long code, and a clever but puzzling one? This doesn’t actually happen a lot (neither in software development, nor in accounting), but the minimum is to group those entries into a specific journal and extensively comment on it so that anyone can understand it without too much trouble.
Release early, release often
Obviously for software development, rolling out new features regularly and quickly has many advantages. It allows for product optimization through user feedback.
This is also a good thing for accounting! Best case scenario, companies have monthly management accounts a few weeks after the month closes. It’s not unheard of to get those management accounts several months after a month ends. However, for companies with very high working capital requirements, 10 days can mean the life or death of the business.
And then there’s obviously the big fuss of the year’s end, reviewing and closing everything that’s happened in the previous year.
What if the accounts were in sync with the business? It’s possible to achieve many things through automation, and to at least have parts of the accounting records always keeping up with the beat of the business. That can allow management to take more control and make more astute decisions.
It would also free up time to focus on the more complex things. That’s the approach, for instance, of the French company Pennylane, which binds together the talents of software developers (to automate what can be automated) and chartered accountants (to advise and take care of more difficult tasks).
All in all, it’s a matter of cleanliness: if the small, non-significant things are dealt with on a regular basis, then it’s easier to spot and focus on the big ones when necessary.
Don’t create technical debt
A simple development principle is that maintenance time always exceeds development time. Every piece of code is modified more times than the initial entry: maintenance is the restraining factor in terms of development speed.
Not paying attention to this detail means that you can end up spending a lot of time maintaining things that are not useful or paying the consequences of a bad early decision.
And if this is true for code that can be modified or thrown away, imagine how much more important this is for accounting, which is - once filed - unalterable.
If you make a bad initial decision on how to account for X, you will probably have to commit to making that mistake again and again because you need to remain consistent. And in time (say, during an audit), this will bite back, hard.
Isn’t this a case of conflicting injunction? Keep the accounts in sync and record things as-you-go, but also, don’t make mistakes. It very much is, however, I think that striving to make accounting decisions intelligible (by commenting on them, for instance) allows you to hit the pause button when necessary. And if you still make a mistake, at least the person who has to deal with it later will know exactly what context led to that decision.
Coding is collaborative by default: all tricks that allow you to gain time in the beginning but that are not understandable to others will become a burden. Accounting should be thought of in the same way: ready to be read by someone else by default - and thus providing details. This allows less room for mistakes, imprecisions, or even fraud, which is a good thing for everyone: entrepreneurs, employees, investors ...
Software development seeks efficiency. It’s not about doing everything as fast as possible, nor is it about structuring and optimizing everything from the start. The important thing is to have a pragmatic approach that allows you to avoid mistakes and fulfills the objectives of end-users.
And software developers have the proper tools for this (gits, repos, etc.)
Accountants have yet to access tools that are collaborative by default, tools that allow this level of detail in their workflow without being too much of a burden (think the Adobe suite vs. Figma - the Arc of Collaboration as Kevin Kwok puts it).
In the meantime, I have built a daily log of operations on top of my automated finance dashboard: if I can create the habit of commenting every day on what has happened in all the group entities we have (10+ spread across multiple countries), then so can anyone at various company scales. So far, it’s taken me 10-15 minutes a day.
Remember, “streaks require commitment at first, but then the commitment turns into a practice, and the practice into a habit”. You’ve heard my plea - let’s make collaborative accounting a common habit!
Until next time,
In the papers 🗞
This section discusses finance-related readings I enjoyed recently.
Bryne Hobart’s The Diff is (righteously so) often quoted in this section. His latest piece questioning whether a volatile asset can be used a store of value (hiya Bitcoin hodlers, I didn’t see you there!) comes at a moment when we’re all wondering whether the crypto-craze of the past weeks was yet another short-lived event or the advent of the long-awaited crypto summer. Can’t wait to celebrate it in the Champtons!
Another regular of this section is Marc Rubinstein from Net Interest, whose piece on the reinvention of Goldman Sachs was the most interesting I’ve read since my colleague Nicolas Colin’s 11 Notes on Goldman Sachs. The firm has always stood out to me as a pioneer in investment banking and finance in general, and its recent moves (Stripe or Apple partnerships) prove that it still has clout and might be the forerunning banking infrastructure of the 2020s.
My dear friend and colleague Balthazar de Lavergne has finally started laying out on paper what’s inside the marvellous brain of his, and let me tell you it’s good stuff. I particularly enjoyed his ‘How to take advice’ rant, but all other articles are equally insightful. By the way, The Family’s newsletter is written by my partners (Alice, Oussama, Nicolas, Mathias & Balthazar) and goes out Mon-Fri, filled with great advice for entrepreneurs. 100% no BS guaranteed.
Payment in Kind 🎁
If you enjoyed, share this newsletter and make sure to subscribe if you haven’t👇
This section covers things I find in pop culture that somehow relate to finance. And obviously, for all the love I sent to accountants across the world in the above post, I could not resist sharing this TikTok masterpiece: