Deprecated: __autoload() is deprecated, use spl_autoload_register() instead in /nfs/c11/h04/mnt/199195/domains/stage.wayswework.io/html/_app/vendor/PHPMailer/PHPMailerAutoload.php on line 45

Warning: session_cache_limiter(): Cannot change cache limiter when headers already sent in /nfs/c11/h04/mnt/199195/domains/stage.wayswework.io/html/_app/start.php on line 109

Warning: session_start(): Cannot start session when headers already sent in /nfs/c11/h04/mnt/199195/domains/stage.wayswework.io/html/_app/start.php on line 110
Ways We Work

Get a new interview delivered to your inbox every week!

thoughtbot

On building client projects and investing in internal growth.

Chances are, you’ve probably heard about thoughtbot. With four podcasts, five of their own products, a dozen books and a 22-page Github repo of open source projects, they know how to share what they do with the world. thoughtbot has ten offices spread across the US, the UK and Sweden. Each office is made up of varying combinations of developers and designers working with clients to design, develop and grow their products. This past December we visited thoughtbot’s office in downtown San Francisco and met up with Lydia Damon, the Design Director of the San Francisco office. We wanted to learn more about how designers and developers work in tandem at thoughtbot, what a typical project looks like and in addition, how the team is able to find time to produce their own projects and products.

When we arrived at the office everyone was just finishing up lunch, which gave us a chance to wander around and explore the space. Upon entering the office we were greeted by a sign displaying an upcoming Taco Tuesday event, a weekly meetup where they invite people in the industry to come speak and hang out. There were no shortage of thoughtbot's robot stickers, figurines, posters and pillows. As we moved through the entrance and into the main space, it opened up into pods of desks where people were starting to head back to work from lunch. There were three main sections to the office, the lounge near the entrance with a couple of meeting rooms off to the right side, the main area where the team worked and then the kitchen and lunch area. Every space had an open concept feel but the way they were divided up gave each area a purpose and its own atmosphere.

After lunch Lydia introduced us to Gabe Berke-Williams, a developer on the team and Steven Harley another designer in the San Francisco office. I started out by asking Lydia about her role and the general makeup of the team. She had recently taken on the role of Design Director and explained that for the most part the team stays pretty flat in terms of their roles and hierarchy. Recently, they began implementing director roles for design and development just to help keep more organization with all the recent growth of the team. She explained that herself and Steven were the only designers in the San Francisco office at the moment and so her role was still very much as an active designer.

The role of designer, Lydia explained, is a little bit different at thoughtbot than other agencies or startups. A designer is involved in everything from UX, to visual design and strategy, to front-end implementation, so they look for designers who can meet developers a little bit further on the technical side than usual. This is largely due to the fact that each project starts with design, and designers play a big role in helping define what the project is, often prototyping solutions before they’re fully built out. This process means the team is less interested in just being handed a product to build and instead aims to become an extension of the client’s team, helping them figure out what to build, and continuing to test assumptions throughout the building process.

“The most common team is one designer, and two developers. Sometimes it goes bigger, sometimes it goes much bigger. Sometimes it’s just a designer or sometimes just a developer. But that's probably the classic team.” —Gabe

Each project at thoughtbot starts with a product design sprint, a process and methodology they’ve borrowed from Google Ventures. Gabe described the product design sprint as a week long process where they narrow down what exactly it is they’re going to build. On the rare occasion they’ll come out of that discovering that the client doesn’t need them, or the product doesn’t match the market at all. He explained that in it’s own way the team considers this outcome very much a success, it prevents a client from spending thousands of dollars on something they don’t need and helps the team mitigate riskier projects.

A product design sprint at thoughtbot happens over the course of 5 days and in that time they try to involve as many stakeholders as possible: product managers, developers, and the CEO whenever possible. The main goal being to get everyone in the same room talking about challenges, solutions and ideas. Lydia told us about one they had just started and described the first day as being all about discovery and a lot of listening. The team will sit with members of the client team and just listen to them describe their challenges and ideas, really getting to know their domain and what their problems are.

The second day is where everyone involved starts to diverge and explore all the potential possibilities. Everyone is sketching and contributing ideas at this stage--not just designers. On the third day, the group converges and together they determine the solution and path that’s most worth digging into. The last two days are about prototyping and getting something simple that they can actually test with real users. The final day of the sprint is where they focus on getting something in front of users, Lydia explained that this is something they keep as part of their process throughout the project, trying not to let too much time pass without showing it to people and having them actually use it. She mentioned that frequent user-testing can often be a challenge and doesn’t always work perfectly, but the team aims to have real data to go off of as soon and as often as possible.

“There are companies out there that will basically just build out your app for you. That's not us. We want to be part of your team, figuring it out with you and deciding what to build.” —Lydia

After the design sprint the goal is that the team has a solid understanding of what the product is and what the most important goals are. Gabe and Lydia both expressed this as one of the most difficult stages of a project and the importance of refining down what parts they truly need to tackle first. It’s about determining what needs to get done in order for the project to move forward and get momentum. This is often where a designer on the project will get started building HTML mockups and framing up the product for the developers to build out.

With an approximate 20/80 ratio of designers to developers I asked how they managed allocating designers to projects, and if they ever had to work on multiple projects at once. Lydia explained that they stay dedicated to one project at a time, because one of their main promises to clients is that they’ll have their full attention during the project. Gabe added that often thoughtbot developers will work with a client’s internal design team or a project will get to a stage where only developers are needed so it’s about allocating designers and developers where they’re most needed and will contribute the most value. They've even gone so far as to help clients hire their first developer or designer, so that when their time with thoughtbot is finished they have a strong foundation to keep growing upon.

“There’s a mentorship aspect sometimes, when you're a developer or a designer on a project, if you're working with their team. It’s hard to hire a designer or a developer, so they want to use us to teach their team our practices.” —Lydia

We became increasingly interested in how, amongst all their client projects that thoughtbot was able to produce their own products, multiple open source projects, podcasts and find the time to publish books. Gabe explained that they’re able to do this because of something they refer to as an “investment day”. Every Friday the team works on their own projects, meaning they’re only doing client work 4 out of 5 days in the week. Gabe elaborated on the types of things they can work on during these days as “anything that will make us better designers or developers or improve the company.” This could include learning a new language that might get them new types of work, or working on one of the team’s open source projects, or writing a reflective blog post on their process and recent discoveries. He mentioned it can also be a day to dedicate to sales work and bringing on new clients. Lydia added that everyone at thoughtbot for the most part, has a background in design or development, and in addition to having a dedicated sales director, everyone plays a part in bringing on new projects and client management. Often this way of doing things can help when allocating different team members to projects because the team can be a bit more collaborative in who is allocated to what. A lot of times if someone is really excited about a project and wants to work on it they can, and similarly if they don’t feel they’re right for a project, that can be open for discussion. It means they can find who will be the best fit for a project, rather than just assigning people and having it be a surprise what project they might end up on.

“It’s an investment. We're investing in the future of the company. We're taking time now to try to get more work in the future or do work faster in the future.” —Steven

We dug a bit deeper into how they’re able to make a day like this exist every single week, with client deadlines and all the other work they need to do. Gabe explained that part of it means they don’t take on as many clients as they probably could. Steven continued that it’s really seen as an investment day. The return may be more long-term but it means that team members are happier, more engaged and they’re able to invest time in sharing their knowledge and products with the community, which naturally turns into reaching more potential clients in the long run. Gabe talked about their open source libraries as an example, something they don’t make any direct revenue from but have become successful sources of referrals through the people who use them. Gabe also runs the thoughtbot blog and mentioned how many posts they’re able to write on Friday’s, another great source of referrals for the team. Many of the tools they contribute to the open source community are libraries or frameworks they’ve developed while working on client projects, such as their tools Neat, Bourbon, Bitter and Refills (there’s a clear theme to the naming process). Steven gave the example of their tool Neat, “we're starting projects every few months, so why write the same code more than once? We pulled that out into a library and I use it on all my projects now.”

With 10 offices across four different countries, we asked how thoughtbot decides to open a new office and how they decide where to go next. Steven's short answer was that “people decided to move there.” Lydia also gave the example of how their Denver office was opened when their CEO Chad met Desi McAdam, and had her start that office as the development director. She also talked about how they moved into Sweden, "Thank god, one of thoughtbot's original employees Mike Burns moved to Stockholm, because I think it’s really cool to have that office. It opened up the whole of Europe to us. Now we're in London.” She added that having offices in so many diverse places has influenced their culture in unexpected ways as well, like the work/life balance that is so important in Stockholm and surrounding countries. Gabe added that the New York office was opened because of a desire to move into that market specifically, but for the most part it’s spurred by a member of a team wanting to move somewhere and find work.

The team at thoughtbot has so much of their process nailed down that they created the thoughtbot Playbook for new hires, which in open source fashion is also available for anyone to download and read. It’s often something they share with clients to give them a bit of insight into their overall process before working together as well. Gabe mentioned that despite thoughtbot being well known for their methods and process, it can still be difficult to get new clients on board with things like design sprints and regular user-testing. We talked about the tools the team is using and the ongoing challenge of keeping up with what’s being used in the industry. thoughtbot’s stack started out primarily Ruby on Rails, and has expanded to include iOS and Android development. But, the team is always learning new languages and trying to keep on top of what’s current and relevant to the types of projects they’re taking on, which is where their investment days really become a benefit.

The main challenge however, as with many teams, is hiring and finding the right types of people who will fit with the way thoughtbot does things. Steven explained that it’s important for someone to be a great developer or designer, but they also need to be someone who can interface with clients, be easy to talk to and can articulate ideas and present them clearly. Gabe added that ideally they grow the team with the goal being that anyone could lead a project. He explained, “You can’t be someone who doesn't want to talk to people and just sort of sit there in the backroom and do your own thing. You need to be able to talk at retros and do that kind of thing.” Lydia explained how it can be hard to find this idea of “unicorn” designers who enjoy coding or at least, some form of front-end development, it’s a sweet spot and extremely difficult to find people who are enough of a generalist in terms of their interests, but experienced skills wise.

Gabe went on to talk about how they often look for this great mix of everything in clients and projects as well, “We also want unicorn projects, where there’s awesome design to be done and freedom to be had. Then with the development, the same thing. We want to be able to work on those projects all the time. We want those projects so we can hire cool people and it’s hard to get all those things. It’s hard to get all those things all the time.” We ended on the ongoing challenge of maintaining their identity as a team as they spread across time zones, take on bigger clients and continue to grow at a faster pace.

“We have documentation on everything. There are steps to do all these things, but for new clients or new hires, it’s a case by case basis. I think it’s the same way we build our frameworks, where they're opinionated but flexible. We have an opinion on how we should onboard people, but it really depends on their skill level or where their comfort zones are and we try to cater to that.” —Gabe

It was great to gain more insight into how the team at thoughtbot has established themselves as thought-leaders and the way they’ve incorporated an open-source and collaborative mindset into every aspect of the company. As they continue to grow it'll be interesting to follow along as they continue to scale their process and the team. Thanks to Lydia and the San Francisco thoughtbot team for having us!