Morale, cadence, processes, habits and best practices, removing spanners from the works.

Reference for concrete examples and anecdotes: https://news.ycombinator.com/item?id=31710673

In the beginning of 2019, I pushed for remote work at the company for several reasons:

- Commute was killing the team. Four hours daily and uncertainty about transportation for some.

- Dogfooding the product: many on the team came to the office to train machine learning models. I had proposed to build an internal machine learning platform, which became our product. We needed to test it.

- Increase the pool: good people elsewhere who could not relocate.

- Murphy's law: at one point or another, we'd have to work remotely, so we had better learn the lessons and learn how to do it before we were forced to do so.

We started experimenting with one day remotely, noticing what breaks, fixing it, iterating. Different days of the week. Then several days at a time. Then a week at a time. Always talking about what went wrong, what got in the way, and fixing it.

I pulled the plug on office work around 5 March 2020 and asked the team to work exclusively remotely. After a couple of weeks, I told the team we're in for at least 18 months of madness. Some didn't renew their lease and moved to their hometown.

Simple things we had improved had a huge impact and allowed us not to miss a beat: reducing information asymmetry, discuss priorities and the rationale behind decisions so that people could derive and make intermediate decisions when there are gaps (everyone knows where we're going and why, and they know what to do when it's explicit and can guess what to do when it's not specified given the fact they know what we're optimizing for as a team), improving our writing even if it doesn't show in this reply, reducing the variance in issue quality by adding issue templates so everyone could write useful issues, first for bugs, then for improvements/features, then for incidents. Making sure we had a clear agenda for meetings in the form of a collaborative document that everyone could write to asynchronously. It contained the topics they considered most pressing/blocking/requiring a decision. We went through them systematically but we'd also take a bit of time to chat about other ideas.

What required a particular attention was morale. Knowing how people were holding up, what they were up to, letting them blow some steam off, having a semblant of normality during that time of lockdowns and curfews. I had created a Jitsi channel named "Balcony", a reference to our office balcony where we used to chat and let our imagination free, just so we could say "I'm on the balcony".

To recap. Keeping morale: helping each other, sometimes just chatting helps people. Guardrails to keep us aligned and on the road even in the event we didn't talk: defined priorities and the rationale behind the decisions, little templates, tiny improvements in writing, application monitoring, better incident management, whatever reduced toil. Better meetings: systematically recording our meetings for later reference, removing noise, etc. For our consulting: refining our workflow, from qualifying clients to deciding not to proceed with projects to how we actually executed projects. Finally, keeping a cadence and keeping on the move.

We also generated more revenue during that period than the company did cumulatively since creation, with the fewest people it ever had and the fewest people ever to do "consulting client work".