Quick start
This page aims to include the essentials you'll need to get you up and running at Third Sector Design. You should read it on your first day working with us.
Our mission
Our mission is to make the world a better place by helping non profits make better use of technology.
We do this through consultancy work with our clients and by contributing to technology projects aimed at the non profit sector (like CiviCRM).
Our work
At a high level, our work can be divided into three areas:
- Client work - working with non profits helping them make better use of technology
- Impact work - working on projects that will have an impact across the non profit technology space, e.g. CiviCRM, running non profit tech events, conferences and training
- Internal work - improving how we work based on our own experiences and outside sources (e.g. project retrospectives, developing new services, monitoring the business, etc.)
As an organisation, we aim to spend 50% of our time working with clients, 25% on impact, and 25% on internal work. As individuals, we may be more focused on one or two of these specific areas.
Exact proportions will vary from month to month depending on client demand and we can scale up or down project and internal work in response. If we find we are consistently spending more than 50% of our time on client work, it is likely time to grow our team.
You can track how we are spending our time at https://dash.3sd.io.
Tools
These are the most important tools we use. Please ask your line manager to create you an account if you don't have one already.
GitLab
Find it at https://lab.3sd.io/.
This is the primary tool we use to organise, manage and track all our our work. If you haven't used GitLab before, it is a fairly stardard project management tool.
For any work we do, we create an issue in gitlab, where we describe the task, track time, collaborate with others, etc.
Issues are organised into projects. Projects are organised into groups.
See the gitlab section of the handbook for a more detailed description of how our work is structured in gitlab, and the Workflow section of the Client work chapter for the ins-and-outs of how we use gitlab as a project management tool in our client work.
Labtime
Labtime is our time tracking tool. Time tracked using Labtime is automatically recorded in GitLab. All work you do should be tracked in GitLab.
To start recording time, paste the issue link into Labtime when you start work. When you switch to another task, copy the new link into Labtime and it was start recording time against the new task. When you take a break, or at a the end of the day, stop the timer.
Dash
Dash is a dashboard for 3SD. It provides reporting that is not available in GitLab.
This is our client billing and time tracking database that is used to generate invoices for clients. This was built by us and is a tool we hope to develop and use increasingly as a workload planning tool.
Each project lead is responsible for keeping their client’s invoice contact details up to date, and for checking and generating invoices at the start of each month for work carried out in the previous month. The Finance Manager is responsible for sending, processing and chasing invoices to the client, but project leads get copied in and are responsible for answering any queries raised by the client.
Dash has the following sections:
- Admin - this contains client’s contact details for the purposes of invoicing
- Tracking - we use this to report on time tracked (by month/week, user, billable/all work). These reports feed into our pipeline meetings where we plan our work.
- Billing - invoices prior to being ‘generated’ are listed here and need to be checked through by the project lead and amended if appropriate. Invoices - once an invoice has been checked and generated by the project lead, they are listed and can be viewed in this section.
Pipeline management
Currently we manage our overall client workload through a Pipeline document, which shows by month what work we have committed to doing for clients, as well as our availability as a team. In the long term we are planning to create these reports in Dash.
The pipeline tool highlights if we are over or under subscribed for the month and is predominantly a planning tool. We meet at the end of each month (see Pipeline meeting under the ‘Meetings’ section) to discuss the upcoming month’s work commitments. At these meetings we also review the past month’s progress and compare actual vs predicted in order to help us get better at predicting our future work.
Each client has its own project worksheet which gives details of work commitments per epic (this should be filled in once proposals with epics have been agreed with the client) and the project lead is responsible for updating this.
Client overview
We have a Client Overview spreadsheet that gives a snapshot of all our clients, including information on how we work with them (on a project basis or adhoc basis, or if they are dormant), whether we have a signed off proposal with them, how the project is going and whether we should be putting together a new proposal, what they are spending with us and whether they are happy or unhappy with the service we provide them. In the long term we are hoping to have this information in Dash or CiviCRM.
Mattermost
This is the messaging communication tool we use within the team. To use the tool, download the application here https://mattermost.com/download/
Although we have regular video / in person meetings for different purposes, any chat that falls outside of those meetings tend to be conducted here (as opposed to emails or phone calls).
We use different channels, both group/public ones (such as client work, general and internal projects) and private direct messages between colleagues to help organise these chats.
Jitsi
This is our video conferencing tool that can be accessed here https://meet.jit.si/ThirdSectorDesignMeeting You don’t need to download an application to use it.
We use this for both internal and client meetings.
Meetings
Default meeting room: https://meet.jit.si/ThirdSectorDesignMeeting
Planning meeting
Weekly planning meetings are every Monday at 10am. Aim is to coordinate work for the week. See https://lab.3sd.io/internal/staff-meetings/-/wikis/Planning-meetings for the standing agenda.
Staff meetings
Staff meetings are typically focused on a particular topic with the aim is to evaluating and improving how we are working.
The Operations Manager leads the meeting through the ‘Staff meetings' board in gitlab. Staff can suggest agenda items by creating issues under the project in Gitlab and vote on the issues you would like to discuss.
Each week we review actions from last week’s task (if any), discuss the topic and think about possible topics for next week.
Pipeline meeting
Pipeline meetings take place on the last Monday of the month at 11am.
The aim of the meeting is to review the upcoming month’s client work commitments and compare this to our capacity, using the Workload Pipeline document. This allows us to be prepared for any busier months where we might need to subcontract work, do less non-client work or move deadlines for tasks, and helps us to manage our client’s expectations. It also highlights quieter months where we might want to look for more client work or focus on internal projects.
Questions to go through during the meeting:
- Review previous month - tracked time vs planned
- Look at upcoming work - are we over / under stretched in the next month (and next 3 months)?
- Is anyone going on holiday?
- Is the % of 3SD availability still realistic?
- Are there any projects that we are falling behind on / are in trouble?
- Do we have any new clients / projects that need to be added into the worksheet?
Each project lead is responsible for updating their projects worksheets in the pipeline document prior to the meeting. They are also responsible for checking time tracked (in Dash) against each epic of a project and compare this to the estimate agreed with the client. If it looks like it might go over the estimate, we need to flag this up with the client and discuss a contingency plan.
Time tracking
Work should be tracked in real time in GitLab using the Labtime app.
Tracking client work is a must as we invoice clients based on time tracked, and it also helps us manage their expectations by having a good idea of how long tasks take to complete based on previous experience.
We also track our non-client work. This helps us to become more realistic with our task estimates, as it is very common to underestimate how long tasks take to complete and the more we can see how long tasks take in real time, the better we can get at planning our work. We also do it to see if we are spending our time according to how we planned to spend our time, on a fairly high level 'organisational aims' perspective. For instance, if when we are planning the year ahead we decide we want to spend 50% of time on client work, 30% on running the business, 10% on improving our infrastructure and 10% on impact work, we can then check in, at various points in the year (monthly / quarterly etc), whether we are sticking to our plan or not. It allows us to be more strategic with our work, correct course if need be and helps us keep focused on our organisational aims.
See the Labtime section for instructions on how to use the tool. If you forget to time your work through the tool or you wish to amend any recorded time, you can manually do so by adding a comment against an issue in GitLab in the format /spend [time] e.g. /spend 1h30m or /spend -30m (if you want to subtract).