As Frappe completes 15 years, I find myself in a very peculiar position. All these years, my job had been very clear to me, but now it is not. For the first 10 years, it was writing code. Every day came with a list of things to be fixed or a list of features to be built. The team was also very small, so there wasn’t any “managing” to be done. Things flowed naturally. Customers raised tickets and we fixed them. They requested features and we built them. We looked at our own code and kept re-writing it so it was more robust and scalable. We kept redesigning screens so that they looked nicer. “Grunt” work became an opportunity to automate.
Over the years, our revenue kept growing and we kept adding new members. Some of the profiles were simple - engineering, customer support, sales etc. In engineering, we have always worked with fresh graduates (or non graduates). Since I was working closely with engineering, most of the “architecting” and designing went through me. Slowly the quality of talent in engineering went up and then my skills as a self-taught engineer became obsolete and often regressive. In 2020, I started to stop active code contribution. My colleague Nabin continued to do engineering management, but since the team was already very “self-driven”, there wasn’t much to do and things went on auto-pilot. We also split the code base into smaller pieces so we could have clear code owners. The engineering team continued to have good “taste” for both quality and productivity and each member inspired and drove every other member. We were lucky to work with great designers as well.
On the business side, we continued to struggle as customer orientation did not come naturally to me. Umair used to manage support and Prakash used to manage all the accounting and admin. As we grew, we hired experienced professionals for services and sales. Since we were open source, booking service revenue was a good way to grow the business. But services came at its own complexity and costs. In 2022, we decided to focus on the product and end the services part. Customers still needed services, but we started building a partner ecosystem for services. If partners were implementing and customising, then it made sense they did the pre-sales as well. So our core sales processes also moved to partners. This ensured that our “business” became simplified to partner development, training, support and success. During this time, we also moved from a user-based to a “cloud based” model, where we dramatically reduced our revenue and engagement with customers.
This streamlining came at the cost of revenue, growth and team size. We exchanged simplicity for lower growth and created more opportunities for the ecosystem. Along with this, our team went from a peak of nearly 100 to less than 60. On the engineering side though, we kept on adding more fire power. As ERPNext started becoming more mature, we started building new products, with one engineer building each product. While all of this meant a lower level of activity, our revenue growth still continued at a healthy 40% a year, while our revenue per employee grew even faster. We also were able to pay top market salary to our team.
With implementation of quality and security management systems (ISO 9001, 27001), our business process became mature and outcome driven. We started actively tracking customer feedback and ratings. Even though we are not at the level at which we would like, especially on the revenue side, we can clearly see the path to high quality customer engagement.
The other big job of mine as a CEO is motivating the team. Over the last few years, we have been practising a radical democratic style of management, where every member of the team has equal rights which include the right to choose their own work and pay. Apart from this, Frappe is also a social business, where we contribute all of our code back to the community as Free and Open Source Software. All of this has ensured that everyone in Frappe is mission oriented and extremely driven because they feel they have the agency to control their careers.
All this means that as CEO, I don’t have much left to do. We simplified our work, implemented radical working practices, and have a great culture that is focussed on quality and excellence. Yes, we are not growing as fast as we like, but that depends on so many other things. Frappe’s growth, if it comes, is going to be a delayed impact because most of our users don’t pay us anything.
This brings me to my dilemma, I have nothing much to do. I used to be a direct contributor by writing code, but now I feel incompetent and out of touch. Yes, I do interact with customers but that is once in a while, but I am neither an ERP implementation expert, nor a great sales person. I still get involved in brainstorming with the team, when they need me. I love talking with people but only to a certain extent. If I spend too much time with people then I feel very exhausted and disoriented. Now all that is left for me is to write blogs and wait for things to happen. We could do a lot better in many things, but I don’t want to push things beyond a limit (and I don’t specially know how to increase velocity beyond what we are currently working at).
Have you ever been in a position where you have nothing to do? Any ideas?