Chapter 5 of 8
TEN7 is a completely distributed company; we have no central office space. Though many of us live in the Minneapolis, Minnesota area, we all work from home (or various other places).
It took some trial and error, but we have this distributed office thing down. We depend on several tools to help us communicate and be virtually present for each other. The most important rule of thumb is that it’s better to over communicate than under communicate. Post on Slack, share your status in the #attendance channel, jump on Zoom (preferably using video)—do whatever you need to in order to be virtually known.
We typically work during normal business hours: 9 a.m. to 5 p.m.-ish CST. That’s a big “ish.” We trust each other to put in a minimum of 30 hours per week, whether those hours are before the sun rises or after the kids have gone to bed. It’s not uncommon that a personal appointment runs long during the day, so you log a few evening hours. This is ok! We understand life happens. Do what you need to do, make sure you’re meeting the 30 hour minimum as a full-time employee, and keep everyone apprised of your status on Slack. Please note: We all have different billable hours expectations depending on our role; please talk with Dani if you’re unclear on your specific hours expectation.
We understand that you may want to supplement your income or work on cool projects outside of TEN7, and that’s ok. In fact, we fully support any extracurricular work you might do. The rule of thumb about side jobs is that they shouldn’t negatively affect your work at TEN7. We expect that you’ll make TEN7 your top priority.
If you decide to take on other work because you’re not 100% happy at TEN7, please talk with us about it first, and we’ll do whatever we can to help make things better for you. If it’s for any other reason, and you want to share, we’d love to hear about the neat projects you’re working on.
Slack is the tool we use daily for team and project communication. We’ve installed a ton of custom emoji packs in Slack, to keep things from getting too serious. You’ll be using the Slack status and Slack channels. Please fill out your profile and add your photo and your personal pronouns in parentheses next to your “full name” when you first log in.
Set your status on Slack using the following:
- Here (working)
- Away (lunch, out for a walk, at an appointment, etc.)
- Out (completely out of the office, PTO)
In Slack, topics are called “channels.” We have several types of channels: internal for everyone, internal for teams or topics, and channels for discussing client projects. With channels, it’s easy to scan them to see if there’s new information to pay attention to.
Here’s a cheat sheet for our most commonly used channels:
- #attendance: We use the Slack status function plus a check-in to this channel to let others know our workday presence. It’s a place to add extra detail about what you’re up to. Say hi when you start the day, note when you’re away from keyboard (AFK) for more than an hour, back at keyboard (BAK), and when you’re heading out for the day. If we don’t hear from you in Slack on any given day, we’ll assume you’re not working.
- #general: Mainly used for general company info and team reminders.
- #random: This is the distributed office water cooler; it’s used for, well, the most random things you can imagine! Check out what’s going on in #random when you’re working—there’s almost always something funny going on, and it’s a great chance to chat with and get to know other team members.
- Project channels: Project channels are used internally to discuss work on client projects. If you’re working on client projects, you’ll be invited to each project’s channel. Channel names always use the client shortcode as the name. For example, #ahs is the channel dedicated to Animal Humane Society.
- TEN7 Support channels: These are project channels that the client has access to. Names start with #support-ten7.
- Shared channels: Sometimes a client or a TEN7 partner has their own Slack account, so we’ll connect our accounts together in a shared Slack channel. You’ll know it’s a shared channel by the double-diamond shape in the channel name.
To learn more about how we use Slack, listen to our podcast episode “Blueprint Series #2: Slack.”
Zoom Video Conferencing
While we can do a lot of things over Slack, there are some things we just can’t do. We have a loose rule: if there are more than three back-and-forths on an issue in Slack, we take the conversation to a Slack Huddle or Zoom to hash it out. We encourage regular check-in meetings over Zoom as well, as it’s just nice to see the faces of your coworkers if you’re staring at a screen all day.
Another thing that Zoom conferencing is great for is screen sharing. We share screens to review documents, presentations, or code. And I’m sure some of us are still pointing at the screen with our fingers.
Being remote can be great (puppy time, yay!), but we also know it’s important to come together in person. If you live close to another TEN7 team member, we encourage you to grab a coffee or a meal together! Otherwise, we have in-person meet-ups a few times a year. Sometimes it will be a working session and other times it will be a meal, because we all understand the importance of good food (by the way, check out the #food Slack channel).
We hold weekly Friday coworking sessions over Zoom for those who want some company.
For more information on working for a distributed company, read Yonder’s post “The Anatomy of a Successful Remote Worker.”
We use JIRA for issue tracking, but we use Harvest for time tracking and — more importantly — client billing. If we make a code commit, the requirement is that there’s an issue in JIRA that maps to the corresponding Harvest project. It’s easy for us to stick to that, because if we make a code change and there isn’t a Harvest entry associated with it, we can’t bill for it. We pull your hours and explanation of work and include it in the invoice to clients. Reporting is available at the account, project, team and user levels, which makes it invaluable for managing projects and client billing.
Time entry is important. And accurate time entry is even more important. We challenge each other to enter time daily (ideally using the built-in Harvest timer) to ensure accuracy. While tracking billable hours for clients are crucial, it’s also important to accurately log time spent on internal TEN7 work, such as meetings and administrative tasks. We’re always looking for ways to become more efficient and accountable, and time tracking helps us do that.
Workweek Time Period
Use Harvest to submit your hours (including any paid time off) on a weekly basis. The Harvest workweek starts on Sunday at 12:00:00 a.m. and ends on Saturday 11:59:59 p.m. Please submit your hours by first thing Monday morning, at least before the staff meeting at 9:30 a.m. CST.
Billable Time Expectations
The workweek is split up into the following buckets:
Billable Client Hours
If your role primarily involves working on client projects, you should log around 30 billable hours per week. Sometimes, billable work on internal projects where TEN7 is the client is approved, such as development work on the ten7.com website.
The remaining hours of your day could be spent on activities such as:
- Attending internal meetings and standups
- Contributing to Open Source projects or Drupal on drupal.org
- Participating in blogging, marketing or podcasts for TEN7
- Providing estimates for new projects
- Speaking at and attending conferences and camps
We’re all adults, and we trust each other to use good judgment.
Giving Back to Open Source Projects
We hope you’ll spend 10% of your workweek giving back to the community by contributing your talents—whether design, development, content or otherwise—to open source projects.
Harvest Project for Internal Tasks
Most internal hours should be tracked to tasks under the TEN7 Company Operations project in Harvest. As always, ask if you have questions on how to do this!
We don’t believe in meetings for meetings’ sake. We’ll only hold meetings if we have a goal, if we need to meet with a client, or if it’s more efficient to hash things out in a meeting vs. doing it over Slack.
We have a weekly company meeting each Monday at 9:30 a.m. CST. Ivan will share updates, the team can connect, and anyone can bring any topic to the table. We’ll always record this meeting so you can watch it later if you’re not able to join.
You’ll also likely have a daily standup, depending on which projects you’re working on.
Wednesdays are meeting-free, focus days. We try to keep Fridays as clear as possible, too.
Payroll is processed biweekly, and your salary will be direct deposited every other Friday. When you receive your first paycheck, please verify that taxes, insurance, and 401(k), were accurately deducted.
We use Gusto to keep track of payroll - you’ll receive an invitation to setup your account for direct deposit.
We ask that you please keep all TEN7 tools and their contents separate from any personal tools you might use. Please avoid using your personal email inbox for TEN7 purposes or connecting any personal tools with those of TEN7.
We’re building things for humans, and the people who use the sites we make are all different. Some of us are visually impaired, others are hard of hearing. Every single thing we build will be experienced uniquely and we should always keep in mind that these experiences should be accessible. We strive for WCAG accessibility in everything we do. It’s not a checkbox to be completed, it’s a continual improvement of our products. And it’s not something that a developer does once and forgets about. It’s a goal that each and every one of us needs to continually champion for the user, in every line of code we write, in every design we publish, and in every minute of support we spend on behalf of our clients.