Skip to content

Time tracking

The general information on time registration is described here. This page specifically describes the how to track time.

Clockify

To make time tracking as light as possible, we register everything through the Clockify app. There are web, mobile and desktop apps.

You can try out what works best for you.

Configuration

Clockify works best when you set the follow preferences:

  • Date format to DD-MM-YYYY or your personal preference.
  • Time format to 24-hour

What hours to book

Generally, when you’re not working, you don’t book any hours. So, the lunch break or walking the dog 🐶 is not included as working hours. So you don’t enter those in clockify.

If you worked on one topic all day, you can just book 8 hours of work on a project and fill in a short description (preferably with a link to an issue) through the Clockify time tracker.

If you work on several topics during the day, it makes sense to use the time tracker as “stopwatch” allowing you to start/stop time tracking at the start and end of the activity. You fill in what you did per activity and assign different projects where needed to each activity.

Projects

For several reasons described later, it’s important to pick the right project to attach your booked time to. You can see the full list of projects here.

For new clients and projects, you can obviously create a new project.

Project Structure

There’s a convention around project names.

Project names start with Appsemble |, ITSLanguage |,or d-centralize | to indicate what company to book the hours under. Within the Appsemble | your have the “catch all” project simply called Appsemble, but try not to use such generic “projects”. A bit more specific is Appsemble | Core development if you’re working on just that. If you’re working for a client, use Appsemble | Eindhoven. If you’re working on a specific app for client, use: Appsemble | Eindhoven | Team Barometer.

There’s a special case for interns, please split the hours you work on a project as described above, but use the d-centralize | Internship project for mandatory school work. This allows us to see the real amount of time that went in a project excluding the internship related work.

Next to the regular projects to book your hours on, there are special projects:

  • Leave | Official holidays (non-working days): book 8 hours when a day is listed as Public/National holiday and paid day off (see Holidays). If it’s not a paid day off, the general guideline applies: you’re not working, so no need to book hours.
  • Leave | Personal holiday (personal holiday hours): when you don’t feel like working for (part of) the day. More on how this works at Statutory leave.
  • Leave | Sick: book the hours to this “project” when you’re unfit to work.
  • Leave | Maternity leave: when you’re on maternity leave.

Labels

In addition to a project and a description, it might be important to add labels as well. This is only needed when you’re working on a client project so we know what percentage of your time to bill the client for. In the following example, we’ll be working on client project Appsemble | Restaurants Management.

taskcost beareruse these labels
If app X suffer from something buggy in Appsemble, now or in the near future100% appsemble.CB_APPSEMBLE
If it’s feature where app X is the first user but it’s clear other apps in the future benefit too.Split between appsemble and clientCB_SPLIT
Clearly a feature for app X without any other app using it soon in sight.100% clientCB_CLIENT

Using these labels we can fairly bill clients. Especially with Appsemble, we’re working on core features the first time a clients needs them. It’s not always fair to bill them for it fully. It’s important to use these specific labels so our billing scripts recognise them.

When billing clients, a script verifies if an issue is mentioned in the form of <project>#<issue number>. When the reference is written like support#123, the script will rewrite it to https://gitlab.com/appsemble/support/-/issues/123. Similar to appsemble#123, the script will rewrite it to https://gitlab.com/appsemble/appsemble/-/issues/123.

You can also link a MR using appsemble!123.

If you can, prefer linking an issue over a MR.