Code Poets’ main passion is… writing code. Obviously. We do our best to structure our work so that programming is always the #1 priority. But once you start coding as a part of a bigger organization, there are other tasks and responsibilities that come into play.
One of them is time reporting — a very important aspect of collaborating with clients. Most software houses look at it as the necessary evil, and, to be honest, so did we. But after many wasted hours and loads of frustration we’ve finally made the leap and created our own time reporting software. Guess what? We’ve never looked back.
What’s the matter with time reporting?
No matter how much or how little involvement in the software creation process is wanted or necessary, the client needs to know about the time it takes us to do what we do. Time reporting allows the customer to prepare his budget, make plans and predictions and execute new business ideas.
Most software houses use one of two collaboration models:
- Project based (fixed fee) — the client knows the price upfront. It covers an agreed scope of work, usually a project or a specific feature to add.
- Time and material — the client knows the price of a standard labour rate per hour. The final price depends on how much time is spent on the project.
Both models are useful (and have been used by us) in different situations. A fixed fee works great if the project is short and relatively uncomplicated, eg. creating an MVP. Time and material is the model of choice for more layered and time-consuming projects, especially when pivots are expected on the way.
Here at Code Poets, we mostly rely on the second model. Of course, a fixed fee works great at the initial stage of some projects, but after a while (and once the collaboration is well-established) we switch to time and material — it simply makes way more sense for both parties. Our industry is characterized by rapid innovation so it’s great when the client has the possibility to change his requirements as often as needed.
And that’s where time reporting software comes in wearing a shining armor, allowing the customer to see exactly how the project grows.
Why we decided to build our own time reporting software
As a software house with a 7 year-long experience, we went through quite a lot of time reporting tools. None of them satisfied our needs fully; they were either too basic or too complex (and I wasn’t confident about investing the whole team’s time only to learn that an essential feature is lacking). Ultimately, we ended up using the old and trusted Google Sheets, as they offered the best customization possibilities, but it still wasn’t enough.
First of all, this way of time reporting wasn’t humanproof. Each of our developers would copy the draft and enter the formula manually every month. As long as there were only a handful of us, that was fine, but as the Poets grew in numbers, I grew in worry: we don’t like introducing unnecessary opportunities for errors.
Then there was the issue of time. When creating a report for a specific project or customer we had to combine all the spreadsheets from different developers into one — again, manually. We’ve always made sure to format it in a professional way so that the client would have an easy time navigating it, but if a programmer worked on more than one project at a time, that meant agonizing over splitting his sheet. All of these tasks translated into wasted hours that could have been spent on working for the client, developing the business side, or even some (dare I say) well-deserved time-off for me (who usually ended up doing all this work). :)
This is when we started thinking about creating our own time reporting tool — after all, we are a software development company and we clearly needed some software developed. As luck would have it, we had a few programmers on the bench waiting for a new project, who were eager to get involved.
And that’s how Sheetstorm was born.
We found out what it’s like to be a Code Poet’s client
Spoiler alert: it’s pretty good. :)
All jokes aside, building Sheetstorm — our time reporting software — has been a great lesson not only in working on a new product from scratch, but also in being a customer. Basically, it gave us a chance to become our own clients… and what a valuable lesson that was. We got a chance to learn in practice everything we already knew — in theory. Turns out, there’s a huge difference.
The first lesson was about communication: both us and the clients are experts at what we do and tend to forget that the other party doesn’t need to have specific knowledge of our field. That’s why it’s important to communicate using the customer’s language, translating everything we do into what actually interests them. So, instead of describing the exact technicalities of a new feature, we should focus on the end result and the benefits for the client (unless they’re tech-freaks, in which case — let’s geek out for hours!).
On the other hand, it is easy to assume that when you hire a software house, all you need to do is pay and the product will materialize itself. Unfortunately, we can’t read minds (yet) and we need quite a lot of information to make sure that we’re working towards our customer’s final goal. That’s why it’s so important to ensure smooth communication between the Project Owner and the team. Ultimately, the software is just a means to an end — it’s supposed to bring actual business value.
And since the topic of money came up, we got the confirmation of something we already knew: how important it is for the client to know where exactly his dollars are going. This time I (the CEO) was the one paying for the programmers work hours and thanks to time reporting I felt confident the money was well spent.
And that brings us back to… Sheetstorm.
Living with our custom time reporting software
Sheetstorm is customized down to its name, which came from our developers as well. It stems from a joke considered an inside one here at Code Poets, although I’m pretty sure other software houses might laugh at it just like we do. This is a (somewhat) professional article, so I won’t go into the details, but in case you want to know Sheetstorm’s origins, feel free to hit me up... Although you probably already get the picture (sorry).
As for the technicalities, the app is written in Python and Django, which we specialize in. They are useful for building web-based solutions and relatively quick to write in, so they fit our needs perfectly. The final scope of the whole project wasn’t specified from the get-go, which is why at first we went for the MVP (Minimum Viable Project) approach and focused on simply creating something that works at first. Then came the time for detailed work: fixing bugs, improving the user experience, adding new features.
A little peek inside Sheetstorm.
So, about life with our own time reporting tool:
For me, the greatest improvement must be the time saved. No more digging in Google Sheets, trying to make things look professional, when they clearly aren’t. I performed some rough calculations and found out that Sheetstorm saves me 80% of the time I used to dedicate to time reporting every month. It also means that we are able to issue invoices earlier than previously, which obviously translates into better financial stability.
Then there are our stress levels: ever since we got rid of the human aspect, we finish our working days in peace, being sure that all the numbers are correct. We also save some brain power thanks to reminders poking us if we’re not regular with time reporting. That means no more making sheet up: when you sit down to the tool eg. daily, you’re automatically very accurate.
Our clients surely appreciate the additional information fields we’ve implemented in the tool. Since our developers no longer have to enter everything manually (all they need to do is to click on the appropriate option from the list) they have some time and energy left for going into more detail about their tasks. This has directly improved the communication flow with our customers and made them more involved in the whole process of software development.
Obviously, there are areas that still need to be worked on. One of them is the aforementioned UI, which we didn’t focus on as much as needed. Now is the time to make up for it and while we’re at it, we’ll surely also add a few new features — perhaps having less to do with time reporting and more with our habits and/or culture. The first idea that pops into mind is a cool welcome window with an inside meme — wouldn’t that put a smile on your face at the end of your workday? :)
Final thoughts on Sheetstorm
Are we happy with the decision to build an internal time reporting tool? The answer is a big. fat. YES! We’ve managed to fix everything that irritated us in the whole process and definitely met our goals. But the biggest ROI was the new perspective we’ve gained on being a client — that has definitely had a huge impact on how we run our software house today.
As for Sheetstorm’s future, nothing is decided yet. Perhaps we’ll turn it into a SaaS product and have a peek into that world… I’m sure there are even more revelations to be had there!
In the meantime, if you’d like to know more about the tool or about the people who use it you can schedule a call with the CEO (yours truly) or inquire about your idea. Let’s chat!