Back to resources

Company Growth: The Good, the Bad and the Ugly

Dev Processes
Team Processes

18 March, 2022

Renaldi Renaldi
Renaldi Renaldi

Director of Engineering at Boku Inc

Renaldi, Director of Engineering at Boku Inc., shares his guide for improving problem-plague processes into strategic initiatives.

The Good

The company continues to grow year over year. We continue to hire and also acquire a few other companies. Starting from just a few engineers in San Francisco, by 2020, we had diverse engineering teams working from different continents (Asia, Europe, and America).  

The Bad and Ugly

Some of the challenges that came with the growing organization were:

  • Teams sometimes made decisions that prioritized their own success over the overall success of the organization.
  • Engineers spent a lot of time discussing trade-offs during the technical discussions because there were no clear guidelines on what was important for the organization. Is it speed? Is it reliability?
  • Sometimes different teams solved the same problem differently resulting in unnecessary duplication and maintenance costs.
  • There were issues regarding cross-team collaboration and communication in general. The cultural difference and time zone difference made it even more challenging.

How to Break Down Processes Into Smaller Chunks

To begin with, we started by emphasizing the company values and how that translated into the way the Engineering teams should work together. Why? Instead of each team having their own values, we wanted everyone to follow company values, ensuring that everyone was on the same page and eliminating misunderstandings. We updated our hiring process to include questions related to our values and evaluate candidates based on those values. We updated our performance review process to make sure that the people we promote are those who exemplify our company values.

From there, we worked on our Technology Pillars and Principles. Pillars are the overarching umbrella on what we should prioritize when making technical decisions. E.g. reliability over speed, security over efficiency, etc. These pillars are not invented in a vacuum but based on the feedback from our customers and internal stakeholders. From the pillars, comes the technical principles, which express our preferences when evaluating problems or making decisions. E.g. We should prefer battle-tested technology over cutting-edge technology to reduce the unknown unknown and keep the platform reliability high. If functionality is a key business differentiator then we should prefer to build, rather than buy and/or customize.

Next are the Technology Map and Architecture Northstar. Technology Map is a collection of technology used within the company and their stages (Default Choice, Allowed, Trial, Deprecated), which is inspired by ThoughtWork’s Tech Radar. The goal is to provide visibility around what technology we currently support and should be used vs what should not be used anymore (deprecated) vs future technology we are trialing. We also write down the process for introducing and evaluating new technology that the team wants to bring in. The Architecture Northstar is a forward-looking architecture design to ensure that teams are moving in the same direction. E.g. Given the importance of security for the company, we will have security tools embedded as part of the developer life cycle so that we can find security vulnerabilities as early as possible.

We also introduced programs like recorded lunch and learn sessions. It encouraged teams from different regions to eat together in a group while simultaneously utilizing the time to complete training or other activities. We had an ongoing bi-weekly update through Slack about the work being done and delivered, updates on new technologies adopted, updates on the overall health of the platform, and other engineering updates. The goal is to keep everyone aligned in terms of where we are and where we are going.

In summary, we started from crafting the overarching direction and then broke it down into smaller, more manageable processes. We also invited the managers and the senior ICs to provide feedback and suggestions so that we can get buy-in from them.

Lessons Learned

  • We are often hesitant to introduce new processes into the organization because of the bureaucracy sentiment that comes with it. But, not having one can also create confusion, friction, and misunderstanding. Relying on word of mouth does not work as you scale and have people in different locations and time zones. Having it written down also ensures that everyone has access to the same information.
  • As you define your process and guidelines, make sure to invite the manager and the engineer to provide feedback and get buy-in. Often they can also provide you with different viewpoints or help you clarify your message.
  • Discussing values and direction can be challenging because different people have different opinions. However, if you can successfully manage it, you can create a strong alignment across your engineering teams.

Discover Plato

Scale your coaching effort for your engineering and product teams
Develop yourself to become a stronger engineering / product leader

Related stories

How to Organize, Manage, and Grow Your Team

12 July

Vineet Puranik, Senior Engineering Manager at DocuSign, discusses the impact of roadmaps, organization, and proper management for your teams to procure growth.

Managing Expectations
Vineet Puranik

Vineet Puranik

Senior Engineering Manager at DocuSign

Team Development Framework for new managers

26 June

Individual Contributors are familiar with a technical development framework that helps them with building products. Managers, especially new managers can leverage a parallel framework to help them build their teams while drawing analogies from an already familiar framework.

Building A Team
Team Processes
New Manager
Viswa Mani Kiran Peddinti

Viswa Mani Kiran Peddinti

Sr Engineering Manager at Instacart

Bootstrapping a Startup While Working Full-Time

23 June

Lucjan Suski, CEO & Co-founder of Surfer, relates how he started a company as a side project and shares his insights on bootstrapping tech startups.

Innovation / Experiment
Lucjan Suski

Lucjan Suski

Co-founder, formerly CTO and CEO at Surfer

Managing Through a Team Reorganization

15 June

Mugdha Myers, former Engineering Manager at Google, discusses the challenges of leading a team through the ambiguity and anxiety caused by a large-scale team restructuring.

Changing A Company
Changing Company
Mugdha Myers

Mugdha Myers

Engineering Manager at N/A

Promoting Interdepartmental Teamwork for More Efficient Problem-Solving

13 June

Roland Fiala, Senior Vice President of Engineering at Productsup, raises an interesting issue about autonomy in teams: does it hinder collaboration opportunities that lead to better problem-solving? He shares his system for promoting teamwork in engineering departments.

Internal Communication
Team Processes
Cross-Functional Collaboration
Roland Fiala

Roland Fiala

Senior Vice President of Engineering at Usergems