How We Evolved From Pen and Paper to Easy Online Timesheets Software and 7 Figures Revenue
Those working on a project basis know that a certain project is expected to take a certain amount of time, and that amount of time will eventually determine how much the client will be asked to pay. And all these hours certainly need to be recorded.
In this article, I would like to tell you about different ways of time reporting our team has tried when working with our customers. What are the pros & cons of each approach? What has always been missing for us? How much time we’ve spent on reporting when using a certain tracking tool? How have we eventually come up with Everhour that has solved all our problems?
When you work alone, it all goes easy. You just choose a tool or a system you prefer and start using it. When we’re talking about a team, there are more things to consider:
- All team members should actually like the tool; - Reports should be made quickly and simply enough; - They need to look very professional, detailed, and clear;
It’d be great if the tool is good not only for business but for personal needs as well. Without handy tools and proper automatization, we’d have no time, energy, or creativity for important tasks after filling in the timesheets.
But at the same time, we can’t do without reports. Detailed and clear, they are essential for our customers to see the progress made.
I’d personally like reporting to take less than an hour per week. Previously, I’ve spent up to 3-4 hrs on it!
The routine includes writing cover letters, preparing reports on the time spent, time allocation per milestone, time distribution by team members, listing tasks, doing analysis of the time spent vs. the initial assessment, and, of course, sharing next week’s plans, not to mention invoices.
Our team has already tried a variety of options. I will talk about some of them in detail.
Every report requires a cover letter anyway but writing about what tasks have been finished and by whom is quite boring. Plus, this kind of information is difficult to perceive (a lot of paragraphs with bad formatting), as a result nobody simply reads it, and data could not be analyzed in the long run. Therefore it is difficult to conduct effective retrospective meetings.
Maybe email reporting works for micro-projects or those on a fixed budget. But not for us.
Excel sucks. Saving, attaching, downloading, and opening files locally sounds like a stone age thing. That’s why we only use Google Drive if we need table organization. Share your document with the necessary people and keep on discussing it right within it.
Here’s an example of how we used to do reporting earlier: a plain file with multiple tabs. 1 tab = 1 week. At the end of the day, each team member added his info to the document.
- Somebody usually forgets to fill in the doc at the end of the day
- Data is not entirely accurate as it’s taken from memory
- It’s hard to analyze assessments vs. time actually spent
- You either use plain task numbers (we use GitHub issues) or have to manually insert the titles
- Different people tend to report in a different way, so in the end, the file is difficult to read, and you have to format it before sending it to the client
- Issue numbers alone & time give little info on what the team has been doing
- Last but not least, many developers are not happy with this approach (it is too old-school)
In addition, these timesheets must be created every week with dates updated manually.
Moreover, when working at the final stage, we usually face a lot of small tasks and it is very hard to keep all of them in mind and remember how much time has been spent on every one of them.
As I’ve mentioned, we use GitHub to manage all our project tasks. Since we do not like to manually match time, issue numbers & titles we’ve decided to write a simple web app syncing with GitHub (called GitBoard). Sorry, but it’s not publicly available 🙁
We’ve implemented the idea of providing team members with well-structured reports based on theirs so that they only need to input their time spent.
Of course, it hasn’t been the only challenge we have been trying to meet with this application.
The app has spared us the trouble of remembering what tasks we’ve been working on. Plus, it has further promoted managing tasks in GitHub. This way it is easier to do pull requests and code reviews.
However, time data hasn’t again been accurate enough. Furthermore, while working on a project, there are many other activities except coding. Plus, you can work in a local branch and not have a commit. This approach does not work for such project roles as a QA specialist or a PM.
And of course, you can hardly call such reports detailed: only tasks and time.
Advanced Google Spreadsheets
We have always aimed at creating very detailed reports. We believe that a report should quickly give a complete picture of the whole project.
Users begin every iteration with an estimate done as a separate spreadsheet. Only after this do we move necessary tasks into GitHub and jump into development.
We’ve been thinking about combining spent time with iteration estimates and then making analyses. What is a correlation between the time we initially planned and spent hours? How much time has each task taken separately? What are the most time-consuming tasks?
Below is a screenshot of such a report.
You can see the “Hours Report” tab. It represents a long weekly based time report.
It is followed by estimates for a specific iteration (“v.3.0”, “v.3.1” , etc.). Each of them consists of an initial assessment + elapsed time substituted by formulas. In the middle of every iteration as well as after it, we arrange a retrospective team meeting for discussing results and problems.
In addition to the “Hours Report”, we have filled in other two time columns. The first one (“Spent Daily“) is used for reporting time spent on an issue on a specific day. Numbers in the second one (“Worked Hrs”) are calculated automatically and show the amount of time we’ve spent in total (including all previous weeks). Indeed, we can work on a specific task for multiple weeks in a row or return to it on demand.
At the end of each week, we used to prepare a report with each team member’s hours individually as well as time distribution by versions since the team can work on several versions at the same time.
This way of reporting seems quite good. Many things have been automatized. But it has still been not enough and we haven’t been fully satisfied.
- Too much copy-pasting instead of analyzing
- Formulas need to be stretched
- Errors possibility
- Little flexibility & analytics
- “Hours Report” tab quickly growing up to 2000 lines and slowing down the process
Finally – Everhour
We’ve quickly realized what kind of information is important to collect and report to the client and how to make the whole process simple for both information input and output.
As a project manager, I take the following steps with Everhour:
- open the “Organization Report by Member”
- choose a date range (in my case it’s Last Week)
- select projects & members in the filters panel
- click “Export”
Thus I generate a detailed report by a member and send it to Google Drive.
- After that, I’m preparing “By Issue” report and export it to Google Drive the same way
- Then I merge these 2 reports into a single document (it takes 2 clicks)
All of this takes me less than 5 mins.
The final report looks like this:
- “Roadmap” (added manually) is a list of all currently opened tasks in the iteration. I copy this list from another application – “GitBoard” and leave inline comments on existing problems or just status updates in case we are waiting for the client’s feedback or have faced problems and downgraded tasks in priority.
Another 5-10 minutes
- “Weekly plan” (added manually) is our next week’s plan describing who will be doing what and when. Thus a client will be informed when something is executed and can potentially request a change in priorities or prepare something on their side.
Another 5-10 minutes
Below is a screenshot of what a project roadmap looks like in GitBoard. It’s much easier to view issues this way than within a GitHub list. We can group issues by “Milestone” or “Team Member“.
Such a report is highly valuable and informative as it gives a customer a clear picture of the completed work, current issues we’re working on as well as our plans for the upcoming week. And the best part is this report takes just about 20 minutes of my time. Feel free to tell us what reporting solutions you prefer (and make sure to check the best timesheets apps out there to see what suits you more).