We work a sustainable pace on client work. We also reserve at least 20 days per year of our working time for continuous improvement, which we call "investment time."
When taking time off during client work, we discuss how it will impact the schedule with other team members.
Sending off-hours communication may create an unintended sense of urgency with the recipients of the message, so we try to avoid creating that urgency when possible.
Unless actually urgent, we may ignore off-hours messages that we receive and handle them once we're back at work.
We make our money on consulting projects. Those projects start with Business Development and go through a normal flow of designing, developing, shipping, monitoring, and iterating. We want to do such a good job for our clients that they will want to poach us, and be such a great place to work that we can be confident our teammates won't leave.
Investment time comes from our value of continuous improvement. It is time for investment in ourselves, our company, and our community.
As consultants, if we were to spend all of our time working with clients we wouldn't have time for continuous improvement.
Primarily this means doing something that interests us like learning a new programming language, or reading an educational book.
The goal is to encourage individuals to improve and share their knowledge with the rest of the team.
We want everyone at thoughtbot to actively participate in the operations and improvement of the company.
This means things like contributing to the Handbook and Playbook, working on company experiments, interviewing potential new teammates, improving our internal tooling, or contributing to our DEI Council.
We benefit from both our online and offline communities. We want to give back and be an active member of the communities we belong to.
This often involves contributing to open source, organizing and attending community events, and volunteering at local charities.
Ideas for investment time
- Contribute to or maintain open source software.
- Share tips and insights with the community on social media.
- Answer questions on StackOverflow, Slack organizations, Discourse groups, community forums, etc.
- Review others' work and provide helpful feedback (e.g reviewing pull requests, blog posts, conference proposals, etc.).
- Write a blog post (for thoughtbot, your personal blog, or elsewhere).
- Host a podcast/stream or be a guest on a podcast/stream.
- Start or be involved in a book club with topics that are relevant to skill development (e.g. coding languages, design systems, consulting, DEI, etc.).
- Run interviews and support company hiring (e.g. recruitment, posting jobs through your social media, improving hiring processes, shadowing interviews if you're unfamiliar with how to run one, etc.).
- Volunteer for your community in a non-technical capacity (e.g. something through Volunteer Match or other organizations).
- Contribute to internal tools in the company.
- Take a training course to learn a new skill (e.g. another coding language, management, etc.).
- Raise concerns, discuss issues, or propose changes in our Handbook and Playbook.
- Pick from or contribute back to dotfiles.
- Organize fun group activities within your team to build and bolster bonding.
- Explore change to tools and process.
- Work on conference and meetup talks and proposals.
- Organize or attend workshops, meetups, panels, or other speaking events.
- Start or be a part of creating a DEI initiative at the company or the wider community.
- Mentor or pair with others within and outside the company.
- Volunteer as a mentor for a learning organization, especially ones that benefit communities that are marginalised or underserved by technology (e.g. Girls Who Code, Emergent Works).
We maintain a sustainable pace of productivity. When a team become tired and demoralized, they get less work done. We achieve a higher pace over the long-term by ensuring that we maintain an even productivity level over time.
Working a sustainable pace doesn't mean that you never work longer hours. Instead, a sustainable pace means that you have the energy to surge when it actually matters. In our work, there will certainly be times when it is important that we do this, and we have the energy and flexibility to rise to the challenge.
Some excellent ways to maintain a sustainable pace:
- Avoid arbitrary deadlines
- Don't let estimates become deadlines
- Embrace the natural rhythm of the week for planning purposes
- Practice continuous deployment