Engineering at dashdash

Building an agile organization around fully independent teams.

Nuno Veloso
Rows
4 min readFeb 4, 2019

--

It’s been about 6 months since I was invited to embrace the awesome challenge of restructuring dashdash’s engineering area. My goal was to bring agile thinking, to implement a continuous delivery process, to ramp up the team and improve the performance.

The mission of dashdash is quite ambitious: to make computation available to the 1B spreadsheet users.

On June 28, 2018 — when I joined dashdash — the engineering team was built of:

  • 2 front-end developers
  • 2 back-end developers
  • 1 product owner (who is the CEO at the same time)

We needed to work on 2 vectors: in growing the team and re-structuring.

We began by studying different approaches to organize development teams, and evaluating the pros and cons of each model.

We focused on 3 approaches:

  • Technical split: front-end teams and back-end teams.
  • Functional split: each full stack team owns their components exclusively, like a computation component, the editor component, etc.
  • Mission split: each full stack team has their own business mission.

Model 1: technical split

Advantages:

  • Clear scope of each team.
  • Each team has their own codebase.
  • Well defined ownership and responsibilities.

Disadvantages:

  • Knowledge is not shared between teams (different technical teams).
  • Risk of silos / isolation.
  • Strong interaction / communication need, namely on features where both teams have responsibility (integration wise).
  • Difficult to scale (and we want to go big!).

Model 2: functional split

Advantages:

  • Clear scope of each team.
  • Each team has their own codebase.
  • Ownership and responsibilities well defined.

Disadvantages:

  • Knowledge is not shared between teams (different components by team).
  • Risk of silos/isolation.
  • “Interesting” work is focused in only one team.
  • Strong interaction/communication need, namely on features where both teams have responsibility.
  • Difficult to scale.

Model 3: mission split

Advantages

  • Focus on a business mission.
  • Direct impact on business goals.
  • Knowledge of all areas of the platform is shared across teams.
  • More motivation on team members (not only one team keeps the “interesting” part).
  • Both team members can perform on call support.
  • Easy to scale.

Disadvantages

  • Mission needs to be carefully defined.
  • Shared codebase requires cross-team communication, reviews and synchronization.

Picking the right model for dashdash

We wanted our teams to become highly performant, multidisciplinary and business oriented, so we picked the model with the Mission split.

Because of the nature of our platform, we call our teams Cells.

Having a mission leads developers out of the “programming language” silos that sometimes are formed within the (teams) Cells. The more each team individually cares about Why they are developing some feature, the more they are committed to it. Having a mission also builds a common ubiquitous language that is shared within the team. Communication becomes easier.

In order to transform the organization, we engaged with our people, explaining them the upcoming changes. We started to apply this model with 2 multidisciplinary Cells.

The mission of each Cell was carefully defined to be self-explanatory, so that each Cell could embrace the mission with clear view and passion:

CELL A

  • Mission: Make dashdash the easiest tool to use for business people.
  • Objectives: Convert x% of accounts into engaged users, and y% into paying customers.

CELL B

  • Mission: Build computing components (functions, integrations) that business people can use to solve their challenges.
  • Objectives: Have a resilient and robust platform that holds X number of users without loose performance and reliability (SLAs).

Each Cell has 1 Product Owner, 1 Engineering Manager and 6+ engineers. The Quality Assurance Engineering and the Design functions are transversal to the teams.

At the moment we have two multidisciplinary Cells working at full steam. They follow the Scrum framework of the Agile methodology. Everyday we inch closer to the mission we are aiming for.

A 3rd Cell is coming soon! Join us. We’re hiring.

In upcoming articles, I will reflect on themes like the “role of each Cell member” and “internal dynamic of producing new ideas”.

Stay tuned!

--

--