Being non-billable
How do software houses make money?
If we split all of the software companies in the world, then we could use two groups: products and services. As technology became a business, just as the DevOps Culture explains, there are more models of IT companies, but let’s flatten it for now.
In the case of software houses, customers come to us and ask to develop a specific project to be later run in the production environment. By doing so, we provide software development services.
I use the word development to mean developing something. Not just coding but also designing, testing, and analyzing.
Time & Materials
When providing the services, we use Time&Materials agreement in most cases (at least in 2020). Customers pay us for every hour we spend working on the project and for materials used within’ that cooperation. By materials, we usually mean business trips, accommodation, fuel, licenses, etc.
It is backed up by time-tracking systems such as Toggl, Avaza, Harvest, or Jira. A project manager verifies every minute the software developer fills in the time tracking system, and then the invoice is issued.
The goal of developers
The following scenario creates a specific mindset in software developers and splits them into two groups - people who work on billable projects and those who do not. Comparing that to the fact that most of the projects are being delivered, we might think that we all want to become cogs in the machine to produce the working solution. In most cases, we want to get to the office (or a desk 2 meters from our bed), start the computer, do a daily, deliver Jira tickets, and leave the office.
The ability to work on a billable project provides a psychologically safe environment and stable work conditions.
In Poland, some say that our parents 30 years ago wanted to feel safe at work, so they spent 20-40 years in the same job. Now, we change jobs every 1-5 years. However, we can do that because this way, we get the same psychological comfort that our parents were getting back then. We changed the job because it was easy. And then, we start pushing Jira tickets again and again.
The goal of software developers is - psychological safety. It is also a foundation for building high-performing teams. However, it is dedicated to high performance and for every human who wants to live a good life.
Being billable makes you a better human
By splitting everyone within the software house into two groups, we are guilty of creating that invisible line between them. The ones who achieved the “goal” feel better than the ones who did not.
Some people call the second group non-billables, internals, internal project members, etc. In some cases, especially in COVID-19 times, some of these people may feel stressed due to potential layoffs.
Power of engineers
In my previous article, Your seniority is a lie; I mentioned the following quote:
You only get about half their value if you’re just using your engineers to code.
– Marty Cagan
The biggest tech companies in the world are being driven by continuous innovation. And as usual, most of the potentially innovative projects fail, just like most startups fail. Working in such internal initiatives is like running a startup but in safe psychological conditions.
When developers work on a project to deliver a specific set of features, we are like machines. We often care about something other than raising the value, testing faster, or being more innovative. We deliver the next tasks. How could that change if we start thinking about solving the problems - just like we like to speak about us: problem solvers - instead of rising velocity? It is tough in software houses/service companies, where we are expected to deliver feature by feature to satisfy our clients.
We might raise the assembly line’s speed to produce more goods in the manufacturing industry. At some point, the quality will go down. Some bottlenecks will arise. Some areas in the factory will be more productive than others. At some point, we will start applying Toyota principles. Use Kanban and cycle times for assembly lines synchronization. And so on. If something crashes, we will use Andon, Jidoka, Poka-yoke practices, which stop the production line when a big problem occurs. Then, take a deep breath, fix the root cause and improve our productivity and quality in the long term.
In software development, scrum masters are supposed to be our out-of-the-battle observers who can raise an Andon-style alert and let the whole team know what is happening.
When to take a breath in a software house?
Non-billability as a rocket fuel for creativity
The moment for innovation in software houses is - being non-billable. This moment is the best opportunity for creating new solutions within the company, leading to the higher goods of all employees. Create a new product or tool, try a new language, do some proof of concept and share it with the others. Do not be afraid to throw your work into the trash and discover more. Just learn to verify your ideas and then iterate quickly.
Once you get one of the ideas right, your colleagues might spot it and help grow it into a multi-million-dollar business.
It is how one of the products of my current employer was born. I was not involved in its creation, but my colleague Filip and my boss Piotr were. Hats off, guys. It was all started by two non-billable people in the software house. Now, it is a 56 people big team.
Consider thinking about your non-billability as an opportunity, not a penalty.
Just want to warn you that this process is way more challenging than just being billable.
Resources
[4] Andon, Wikipedia