How Unibuddy uses Engineering Values to Scale our Team

Developing a common understanding of engineering standards and culture

Kimeshan Naidoo
Unibuddy Technology Blog
6 min readSep 16, 2019

--

A few months ago, three Unibuddy tech team members sat down with me and brought up a few emerging concerns. They noticed some engineers obsessed with velocity and neglected defects while others focussed on perfecting and over-engineered things. After some debate, we determined that the root cause was not having clear alignment across our tech team of what our engineering culture and standards were. Engineers who have been with us for over a year had developed this understanding organically while those who had just joined had no clue what these invisible understandings were!

We were not aligned on important questions like:

  • Did we value getting out a feature quickly or preferred spending more time to decrease the technical debt produced?
  • What are our standards for approving code that is reviewed?
  • Are we process or results driven?
  • What level of responsibility do we expect from team members across the board?
  • What qualities do we think deserve to be deal breakers when interviewing engineering and data science candidates?
Photo by Austin Distel on Unsplash

We recently closed our $5 million Series A funding round at Unibuddy and we are starting to expand our team rapidly, we knew it was very important to find this common alignment across our team and have a strategy to align newly on-boarded team members in the future.

It was clear that we needed values. While we do have company values, these were not specific enough to address the tough questions our engineering team was tackling. Thus we also needed team specific engineering values. This would act as a framework which may be clearly understood across our Engineering offices over two different continents.

The core of an awesome, united team is a small set of shared understandings. This doesn’t mean a team powered by groupthink. What you want is a motley crew with a small set of common beliefs, which everyone is proud to hold — and perhaps stick onto their laptops. — Joel Hynoski, Head Of Engineering, Canva

How to Set Engineering Values

No other department at Unibuddy had set team specific values before so we knew this could also create a path for the rest to follow which would help all our departments scale! We knew that in order to achieve maximum alignment, these values would need to be set with equal contributions by every single team member.

So we started with a blank canvas. To promote equal participation, we conducted our entire value setting session over a team video call on our weekly Remote Wednesday. When everyone is remote, participation is more equal — otherwise co-located people will dominate the conversation in most cases. We started by having our tech team (10 members) break out into groups of 3–4 team members. The reason for breaking out? To further avoid biases or unequal participation — often a crowd can be influenced by a single (often loud!) individual. In this way, groups would have to independently come up with values without influence from other groups.

After starting the breakout session, groups brainstormed answers to the below questions. These questions were the result of thinking about open ended questions that could extract what was most important to each individual on the team.

  • What makes you enjoy being an engineer?
  • Where should we focus our feedback to each other on how to improve?
  • What is important to us as an engineering team? (think technically, and non-technically)
  • What do you value personally about your career in engineering?
  • How do we excel as engineers?

At the end of the breakout sessions (30 minutes per group), each group presented their results and the top five values that they identified.

Identifying Common Beliefs

One might assume each group would produce completely different results- but we were pleasantly surprised!

Not only did all our groups have very similar values, there were a lot of overlap where groups had some values which were the same but had slightly different wording!

We proceeded to discuss each set of values, debated each one, combined some, eliminated some and finally identified which values had the most overlap until we had a set of five values that we felt encapsulated what our engineering culture was all about!

In hindsight, we shouldn’t have been surprised by our closely aligned common beliefs on how we wanted to work together. The thing about culture is that it’s not a set of artificial buzzwords that is dreamt up from the top and inculcated into employees. Culture is how you work together as a team. It’s how you interact with each other. As a close knit team we already had been working together really well, so when it came to thinking about our values; it was more a case of formalising how we were working and expanding on them with specifics so that each current and future team member could quickly align with them.

Unibuddy’s Engineering Values

Drum roll please!

These are the five values that we believe are the most important to us which we will use as a compass to guide how we work together, how we hire, make decisions and deliver feedback.

  1. Quality at a Sustainable Pace
  • We consistently produce a high quality of work. High quality refers to a) Code with minimal or no defects (bugs) and; b) Code that is performant, maintainable, scalable and follows our agreed upon best practices. It also refers to technical work and design that is well thought out, has gone through multiple iterations and is well communicated to the team.
  • We recognise when we need to slow down if a problem needs more time to be spent on it. Estimates are not deadlines and high quality work that takes a bit longer always trumps code that’s written hastily and is error prone.
  • We recognise when we need a break and take the required time off. Sustainable pace means being able to have consistently productive and solid weeks — month after month and year after year. Unsustainable pace generally results in a few great months and then burnout or poor productivity.

2. Investing in Constant Learning

  • We are hungry to learn new things and constantly take initiative to find better ways to solve existing problems.
  • We take our Personal Development Plan (PDP) seriously and achieve all or most of it every quarter.
  • We share knowledge openly and enthusiastically. We host or actively participate in knowledge sharing sessions
  • We openly ask for help, and encourage our coworkers to teach us things

3. Collaborating in a Safe Space

  • We listen to understand instead of listening to respond.
  • We treat each team member regardless of position with an equal amount of respect and empathy.
  • We communicate in a way that is approachable and makes the collaboration space feel safe.
  • We encourage team members (especially juniors) to challenge our assumptions or perspective, and we aim for common alignment.

4. Value the Destination, Enjoy the journey

  • We focus on achieving results and objectives (“destination”) while enjoying the autonomy of determining how to get there (“journey”)
  • We judge our success by the evidence of achieving impactful objectives and not by when, where or how many hours we worked.

5. Ownership and Initiative

  • We are ambitious and self-driven, always looking for opportunities to challenge prevailing assumptions and suggest better approaches.
  • We don’t wait to be told what to do — we take initiative and action, we mobilise your colleagues to solve big problems.
  • We spot problems or opportunities and take ownership of them without being told to do so.
  • We are always looking for smarter ways to do things and optimise processes.
Unibuddy Technology Values — Graphic by Neeraj Suthar

Values are Dynamic 🌊

As new team members join our ‘tribe’ and sees how we work together, they will read our values and understand why we work together in this manner. We hope it will help to quickly connect the dots and reach a common understanding. This re-enforces our culture and our values.

Our values are a dynamic entity. It will evolve and improve over time as new team members potentially bring fresh ideas of how we can work together in even better ways. Culture, like code, is never perfect. It can be continuously improved and should evolve over time.

If you’re an engineer or data scientist, what values do you hold dear?

--

--