Last week our whole team took a full day away from our ongoing work to dig in to some digital spring cleaning, followed at the end of the day by a group show-and-tell over company-sponsored dinner. Our spring cleaning day activities were focused on a range of quality of life improvements and cleanup tasks, encompassing projects like technical debt reduction, project management, document organization, and project documentation.
The idea for a spring cleaning day arose from a conversation between our CEO, Yair Flicker, and our Director of Development Operations, Dan Ivovich; the two were brainstorming ways to bring the team together while we’re all working fully remote, and also thinking about ways to lower the team’s stress level and increase their quality of work life.
The rules of spring cleaning day were simple — each team member proposed a list of project ideas for the day, with a description of what the project would entail (the “What”) along with the rationale for the undertaking (the “Why”). Dan encouraged us to choose discrete projects that would make our lives easier, even if we weren’t able to finish them; he strongly discouraged projects that could sprawl or end up creating additional technical debt.
Yair and Dan both shared examples of the projects they were going to take on, along with a list of suggested project types and a few things they were hoping to avoid. Suggested projects were primarily split into development and project management tasks. Dev project suggestions included dealing with flaky tests, updating READMEs, updating scripts or system dependency instructions to make project setup easier, improving language version managers. Suggested project management tasks included cleaning up backlogs, cleaning up shared folders, and creating running agendas for long running projects. Dan explicitly steered the team away from projects like installing a new library into an application, which could just turn into more technical debt, and updating dependencies on a production system, which we normally do throughout the course of our client engagements.
Yair and Dan shared the plan for spring cleaning with the whole team at company lunch the week prior; a couple of our newer team members weren’t sure what projects to take on but the team quickly shared a number of possible options, making sure that everyone on the team had a meaningful project to contribute to.
Everyone cleared their calendars, communicated with clients to let them know we’d be busy with a team project on the appointed day, and proposed their project ideas, and we were off to the races.
Projects the team tackled on spring cleaning day primarily fell into categories of technical housekeeping, documentation, and project management. Here’s a brief sampling of projects our team members got up to:
- PJ initially proposed a broad survey on README guidelines, but on advice from Yair, worked tactically on improving a specific project README, which gets us both an improved model for a README as well as a deliverable we can immediately use, in the form of a more useable README for that project.
- Justus and Donald paired on building out automation to improve dev environment setup for one of our ongoing projects; they created shell scripts to initialize and streamline the process. This was also a great opportunity for professional development and internal knowledge sharing; Donald has a very strong background in DevOps and automation, which is an area that Justus previously had very little experience in.
- Chris worked on some internal file reorganization that was needed on one of our projects, adjusting directory structures as needed to support future growth based on technical decisions. He also worked on some router configurations and explored pattern matching in Elixir for user role management. He also shared a neat search pattern he learned about in VS Code; you can persist a regex capture group when performing a search and replace in VS Code, which made some of the restructuring and namespace changes he was making much easier to implement.
- Melvin worked on researching meetings best practices internally and with a client who we’d like to improve our meeting structure with. He gathered a variety of answers to a set of questions, and came out of the day with a set of recommendations, along with buy-in from the client to try some adjustments in order to share more effective meetings.
- Dan worked on several projects. He created an update to our developer job posting, and added clarifying language around our current hiring status, specifying that we’re gathering resumes for later, and that we’re hiring remotely. Dan also migrated one of our older projects to a newer CI service, Drone, and set up some automation for pushing passed builds to Docker for deployment.
- Yair took the day to document our sales processes. He gathered links to important docs, and wrote out both descriptions of our sales processes and specific examples of how they worked in recent sales cycles. He’s hoping to bring on staff to contribute to our sales process soon, and the documentation he put together should be helpful for onboarding them when the time comes.
Overall, we got a nice mix of professional learning, tidying, project management, and implementation of technical quality-of-life improvements.
Remote Dinner with Show and Tell
At the end of the day, the team gathered remotely in their homes over company-sponsored dinner for a check-in; each team member got two minutes to share what they had worked on during the day. Some folks screen shared and showed off the work they did; others just gave a verbal run-down of project management or other organizational tasks they’d tackled.
The social component of the day was a successful targeted approach to bringing everyone together in a time when it’s not feasible to get us all together in person. We normally go on a company-sponsored outing about once a month, but given the current pandemic, none of us are gathering in-person anytime soon.
Over the years we’ve tried out lots of formats for team-building days and exercises, from all-hands trips to targeted brainstorms. Overall, everyone on the team expressed positive sentiments around our spring cleaning day and so we deem it a success; the team enjoyed spending time working on cleanup tasks that they hadn’t previously been able to prioritize and appreciated the dinner-sponsored social time. Whether or not we run a spring cleaning day again, we will definitely continue to experiment and iterate on these kinds of team building and growth activities.