Balkan Ruby 2024

20 years and going: making it as a consultancy

Dimiter is a development team lead at thoughtbot and the co-organizer of the Helvetic Ruby conference. He likes spending time away from the computer running and hiking.

thoughtbot gets leads thanks to its strong presence in the community: open source contributions, blog posts, podcasts, conference talks. This talk is about how they do it.

Balkan Ruby 2024

00:00:08.280 Hello, I'm Dimiter. In this talk, I'll give you my perspective on what I think consulting companies do right and what you can apply at any kind of company. The title refers specifically to where I currently work, a company that was founded more than 20 years ago. I've also worked at a different consultancy that has been around for over 15 years. Through these experiences, I've noticed some common patterns.
00:00:18.640 I will refer to thoughtbot in my examples because that's what I know best. However, I'm not here to sell you on thoughtbot; I'm here to inspire you. The title could have been 'Why Consultancies Invest Heavily in the Community and What You Can Learn from That.' I added the second part because some of you likely work in product companies rather than consultancies.
00:00:32.440 I'm going to structure the talk in two parts: first, about consulting companies with examples from thoughtbot; and then we'll switch gears to product companies, discussing which ideas transfer and what you can apply as well. First, let me define what I mean by 'making it.' How do I define success? To illustrate this, I have a story from a previous job. I attended a long-term vision meeting where we discussed the company’s goals for the next five to ten years.
00:01:10.080 The CEO of the agency expressed a desire to be the prime supplier in the country, focusing heavily on market impact. In contrast, a few of us, including myself, emphasized employee happiness as a primary value. This led to a back-and-forth discussion about our value systems. In the end, I believe there's a balance to be struck. My definition of success encompasses sustainable operations—meaning a healthy profit margin without growth at all costs—and happy, fulfilled employees.
00:01:50.000 This second part is what I'm most interested in, and the examples I provide will reflect that bias. Now, regarding consultancies, there is an implicit assumption that consultancies invest heavily in the community. This observation applies to the most successful consultancies out there.
00:02:05.280 To analyze this, it makes sense to consider two parts: the consultancy as an entity and its individual employees. What motivates each group? First, let’s talk about companies. How do you hear about consultancies? Some of you may know them from the Ruby community; some may even be represented in this room. Think about how you first learned about consultancies like Evil Martians or Test Double.
00:02:35.200 Raise your hand if you’ve heard of thoughtbot. Quite a few! I think it’s safe to say it’s probably not because your CEO plays golf with our CEO—I don't even know if Chad plays golf; I’ll have to ask him. In reality, you likely discovered thoughtbot through the resources we put out, perhaps through blog posts, podcasts, or even our various contributions to open source.
00:02:54.320 For instance, if you’re a developer, I bet you’ve used one of the 60+ gems that thoughtbot developed and continues to maintain over the years. Collectively, these gems have achieved over 1.3 billion downloads on RubyGems. For me, examples like these explain why consultancies contribute to the community. I would call it content marketing: people find our useful blog posts or insightful videos and want to work with those who made them.
00:03:16.000 However, this doesn’t mean that gems are purely marketing content. An open-source library has inherent usefulness, like FactoryBot, which is used in almost every thoughtbot project, serving as vital infrastructure. The reality is that consultants may not realize they are constantly selling themselves.
00:03:35.320 I’ve heard many developers claim, 'I’m a developer, not a salesperson.' This view of sales is rather limited; in my view, good work speaks for itself. High-quality software attracts attention, making technical quality a great starting point, while also serving as an effective sales tool. In answering why consultancies contribute to the community, I argue that content marketing is a classic answer, but I'll share a secret: building lasting knowledge is invaluable.
00:04:03.000 In a consultancy setting, clients come and go, taking their intellectual property with them. Without retaining some of that knowledge along the way, you end up with nothing. To keep what you've learned, it’s essential to extract and share knowledge through libraries, articles, and best practices. With consistent effort over time, you can build a robust knowledge base, which has many lasting benefits.
00:04:26.000 For example, developers who regularly contribute to Ruby on Rails become adept at the APIs and can suggest elegant solutions to problems encountered in projects. They also identify ways to enhance Rails, making future projects easier. Another example is thoughtbot's apprenticeship program, which lasts three months.
00:04:59.840 Apprentices, who already possess a good level of skill, have the opportunity to work on real client projects while following courses at their own pace on the online learning platform thoughtbot operates. Everyone also has access to effective practices through the Playbook, which serves as the public-facing part of our employee handbook. Additionally, technical guides encapsulate best practices that are directly implemented in generators for technologies like Ruby on Rails and React Native.
00:05:38.080 However, thoughtbot's resources are not limited to developers. There’s also a product design sprint guide available for those interested. These are all examples of why a consulting company chooses to share with the community.
00:06:14.480 So, what about the personal motivations of employees? Why do individuals choose to contribute to the community? I can only speak for myself, but I believe many share a desire to have something to showcase to the world, friends, or potential employers. Imagine the feeling of working at a company like Apple under a non-disclosure agreement, where you cannot share the cool projects you are involved in.
00:06:28.760 Getting recognition as a widely noted industry expert necessitates being helpful to the community, which can be deeply fulfilling. To summarize the incentives for companies and individual contributions to the community: these lead to an accumulation of knowledge that eases the learning process. Sharing high-quality resources with the open community builds leads, which, in turn, fosters financial stability for the consultancy.
00:06:54.960 Having a good reputation in the community also promotes better hiring practices and facilitates job mobility. Encouraging all this is critical to aligning these incentives between individuals and the organization.
00:07:34.679 Yet, even in a setting where incentives align, individuals need to prioritize this work. That requires organizational support because learning isn’t a simple process; employees need time to explore and to connect—be it running, participating in meetups, or engaging in conversations that spur creativity.
00:08:10.440 These elements contribute to deeper community engagement. The third aspect is investment time. This concept is about three things: investing in oneself—whether it’s learning a new programming language, reading a professional development book, or enrolling in a course to challenge oneself within the company, all these enrich personal and professional growth.
00:08:52.040 Second, investing time contributes to the company's improvement, through innovation in practices and internal policies, as well as enhancements to toolings, diversity, equity, and inclusion initiatives. Finally, it includes community contributions—whether it's volunteering, mentoring individuals outside the company, participating in open-source contributions, or speaking at conferences. I have personally been co-organizing the CTIC Ruby Conference for a second consecutive year and every thoughtbot employee is involved in numerous different projects.
00:09:38.760 In short, investment time is valuable for thoughtbot, and I firmly believe that investment time is key to the company’s ongoing success. Now, having shared an example of one consultancy, let’s look at which elements of this can be applicable in a product company and how they can introduce similar approaches.
00:10:18.919 My advice is split into two groups: individual contributors and leadership, as they play different roles at varying stages of implementation. This plan to drive change consists of three phases: getting started, gaining momentum, and mastering the process. The first phase begins with individual contributors, who should assess what they find fulfilling, deciding what actions to take—be it technology, improving writing, or public speaking.
00:10:55.599 There are many possible avenues, and once you've chosen your direction, I recommend starting small. For example, at the end of each day, take a moment to reflect on the wins you’ve achieved, things you've learned, projects you've completed, or problems you’ve solved. Celebrating these successes counters feelings of unproductiveness and boosts morale, ensuring project momentum remains high.
00:11:40.440 Establishing a learning culture promotes knowledge sharing, which is fundamental to many of thoughtbot's contributions—thousands of articles, videos for Upcase, and podcasts are a positive outcome of this culture. Speaking of sharing, can you clearly explain your work to someone in a different department or even someone outside your organization? If not, consider that a starting point. Being able to articulate the impact of your work is an essential skill.
00:12:23.840 Share your insights, whether through social media posts or blog articles. We all work in different corners of the community, each with our unique niches, and sharing is how we learn from one another. Once you begin generating individual ideas, start to identify common objectives among coworkers, creating groups to achieve those goals together. This group dynamic can boost motivation and teamwork.
00:13:00.960 Some additional activities include hosting watch parties: meetings during which the first part is dedicated to watching a lesson or a course, followed by discussion about the content learned or personal experiences. Lunch and learns are also effective for sharing stories from projects, problem-solving journeys, or recent projects. Sharing and practicing internally equips you with the skills to address a broader audience.
00:13:45.320 A book club can also serve as a fantastic tool for collective growth. Each week, a different member summarizes a chapter, encouraging discussion and practical exercises if it’s a technical text. Initiating hack days is another excellent method; at thoughtbot, we host a two-day hackathon near the end of the year.
00:14:24.440 In other workplaces, we conducted one-day hackathons every quarter, offering refreshing opportunities to innovate. Bringing people together for meetups provides invaluable learning experiences, whether in an office setting or through co-working spaces. While some activities may require more time and effort, it’s crucial to manage time wisely and push for participation.
00:15:24.440 Before there’s organizational support, show initiative! Start small—perhaps skip a non-essential meeting to utilize that time on something more meaningful. For larger time investments, make a business case for it, which can be dynamic based on company culture, size, and market factors.
00:16:06.639 For instance, in some countries, the costs associated with continuing education and professional development are tax-deductible for both employees and employers. Reflecting on the contrast between consultancies and product companies, at thoughtbot, investment time is non-billable. This means it becomes a significant opportunity for personal and professional growth, instead of simply billing clients.
00:17:05.160 During non-working days, product engineers can indeed contribute to ongoing sales or subscriptions, making the argument for time investments far more compelling. As you frame your case to superiors, draw a balance between the company’s value and your personal growth, ensuring alignment between individual and company goals.
00:17:55.840 I hope this has provided you with ideas on how to approach initiatives as an individual contributor. Now, let us shift focus to leadership.
00:18:05.320 The core theme I want to discuss is continuous improvement. There has been an obsession in our industry with hiring the best talent out there, yet 'the best' is often already employed. Consider how long it takes to recruit top talent and the costs involved in this process. Compare that to simply keeping current employees happy and developing their skills to become more efficient and to collaborate more effectively.
00:18:52.440 As a team lead, I advocate investing in clear communication across teams, as this facilitates knowledge sharing and allows timely feedback that propels growth, both individually and collectively. Finally, for all employees, this theme of improvement should resonate throughout the organization. After establishing a unified vision and gaining buy-in, it’s important to treat improvement initiatives like projects.
00:19:51.920 For example, if the goal is to create a high-quality blog, establish a project board to track contributions to posts, implement peer reviews, and integrate similar methodologies employed in software development.
00:20:12.440 To conclude, I want to reiterate something crucial: collaboration leads to mutual success. Thank you.
00:20:29.000 I would be remiss if I did not provide some details about the conference. The HTIC Ruby Conference is happening soon, on the 17th of May. Check out the website for tickets, and I hope to see you there! You can find me online as well. Thank you.