Process at Expected Behavior

Expected Behavior
Expected Behavior Blog
4 min readMay 15, 2020

By Alex Overbeck

Like many in our industry, I am the type of person who chooses to hop from job to job in search of new experiences. Throughout the journey, I’ve learned that many teams inevitably are tasked with solving similar problems, but the thing that has always been interesting to me is the differences in process each team uses to solve them.

I’ve been at Expected Behavior for some time now, and one of the things they seem to do really well is diligently following a well-defined number of processes. And in the midst of a pandemic, our shared understanding of those processes seem to be what keeps things going without a hitch.

Proposals

Expected Behavior’s process loosely follows Basecamp’s project management process, but it differs in that we make most decisions together and support greater implementation autonomy. When we run out of high-impact work to complete, we set aside a proposal period that usually lasts around a week. Proposal Periods are where we stop regular work and focus on the proposal process.

Each project starts with a proposal. Proposals describe a problem, a strategy for solving the problem, and a time estimate. As we are a small team, everyone has a chance to draft a proposal for some measurement of work in which they see value. Proposals include a problem statement and details on the benefits of solving said problem. This part of the process gives us the ability to prioritize our work and insight into what portion we are each interested in tackling.

It’s not just about what the best ideas are, but about the ideas that keep us the most excited.

After we have plenty of proposals (3–4 months worth), they are prioritized and slotted into our existing schedule. Once that and any other existing work is finished, we split up into teams of two to four and get to work on our newly-proposed projects.

Project Initiation

While proposals cover a lot of ground, they are more focused on strategy and less on implementation. Within our teams, we are encouraged to make a lot of tactical decisions for a project. This helps us stay focused and avoid situations where there might be “too many cooks.” We might reach out for further clarification if any concerns come up, but largely, our individual teams tackle all aspects of making a project come together.

To kick things off, we take the proposal and translate it into to-do lists. All the implementation details and features we are aware of are listed alongside any questions we might have to help further define the project’s parameters. Coming up with this list of specifications takes work. If there are gaps or disagreements in understanding, we document those, as well. This allows us to quickly start a larger conversation and get feedback from the rest of the team. While this list continues to evolve throughout the life of the project, we always have a source of truth for a project’s progress.

Test-Driven

Red, Green, Refactor is what we are always taught in code school. We start by writing a whole bunch of tests. In a recent project, we tried to translate our understanding of each feature into skipped tests before actually writing the details of the test. This gave us a chance to start breaking down each feature into smaller chunks and, at the very least, it got our TODO list into the codebase.

When a team starts working on a TODO, the relevant tests will be filled out first. By this point, with all the discussion and documentation, getting the tests to pass is as easy as can be. We know our work is done when all the red tests turn green.

Teamwork

Each team works together as much as possible. This usually means setting aside all or part of our day for pair programming. This not only forces us to make decisions together, but also facilitates information sharing. As we converse or have questions, we try to make sure to document everything in basecamp. Projects could take a while, and we inevitably forget things that we talk about or question. This helps not only us remember things, but gives other teams insight into how we are progressing.

As we have all learned recently, circumstances can change fast. One day we could be working in our office, face-to-face with our teammates; the next, we might not be able to leave our homes for months on-end. Our process helps us maintain a sense of normalcy no matter what life throws at us.

--

--

Expected Behavior
Expected Behavior Blog

Official account for Expected Behavior. You can tweet us at @EB.