Copy
Illustration by Rapid value solutions
BALANCING ACT
Delivering quality products at a high cadence
By Sanchita Agarwal and Vinay Shenoy, Engineering

At Obvious engineering, we believe in delivering value to our clients at every step, as closely as possible. Over the years, after working with both greenfield and brownfield projects, we've noticed one thing in common — the need to deliver products at a high cadence.

As opposed to the common belief that delivery quality and cost are trade-offs, Martin Fowler in "Is High Quality Software Worth the Cost?" instead talks about how software quality can mean many things, but urges engineers to consider quality in terms of economics. In order to provide maximum value to clients and users, we have to consistently maintain the quality of apps and deliver features with predictable timelines.

Illustration by Henrik Kniberg for Spotify

We are a high-alignment, high-autonomy engineering team that focuses on fulfilling what we want (timely delivery) without compromising on what we would love for our users to experience (our craft). It's not to say that the journey of building software at different scale and development phase has been easy, but we have internalised certain principles that have almost become a second nature:

  • 💰Optimising for cost: The first step to achieving quality with the economics in mind is self-testing code. At the heart of our engineering is a testing culture. We choose an architecture which enables us to write production code together with tests which act as a document for feature spec. This saves precious engineering effort with a single command to test critical paths as we build for frequently changing business decisions.
     
  • 🚄Predictable timelines: Our timeline based delivery process lets us deliver features / improvements at a high frequency to end users. Our tests allow us to setup a reliable continuous integration, and along with trunk based development we make continuous production releases on demand (Continuous Delivery).
     
  • 📈Improving quality consistently: Automated tests combined with CI/CD allows us to reduce the cost of bugs and improvements as most of the issues are detected in development and not after release. Quality is driven upwards with every release as we refactor right before and after adding new features.
     
  • 🔍Production Observability: Releasing an app is not the end of the line for a feature because unless we measure the quality of our product, we cannot assure it is maintained. Code quality is measured through quality of pull-requests before the code is merged, the end product quality is measured by setting up performance dashboards. We track the app over time to take informed decisions and make proactive fixes as we go.

It is key to note here that these practices are not all-encompassing but non-negotiable. Some not-so-obvious outcomes of following these practices include being able to minimise cost on manual QA and bug fixing efforts in production, not wasting users' time on poorly crafted apps, and avoiding constant burn out due to unpredictable timelines, overwhelming hot fixing and release madness. And this is why we do what we do.

PICK OUR AUTHORS' BRAINS

Book a 1-to-1 virtual session with Sanchita Agarwal or email Vinay Shenoy, Obvious on delivering quality products at a high cadence.
 
Chat with Sanchita
 
    Chat with Vinay      
OBVIOUS CURATES
More perspectives from around us
Dealing with production code in tests

Sasikanth Miriyampalli, Obvious
You may be wondering, “why not use production code in tests?” Sometimes it might not be possible — like calling an Android framework class in unit tests — or sometimes we don’t want to. In those cases we replace the production code with alternative implementations for testing purposes and these are called ‘Test Doubles.’

READ IT HERE →

 
Rails Conf 2013 The magic tricks of testing

Sandi Metz
Finding the right testing balance isn't magic, it's a magic trick. This talk strips away the veil and offers simple, practical guidelines for choosing what to test and how to test it while explaining the secret of writing stable tests that protect your application at the lowest possible cost.

WATCH IT HERE →

 
Engineering culture at Obvious 

Obvious
Over the last ten years of writing code, we've become rather opinionated about how we work. All of our work is “country-scale”, which means it goes out to millions of people every day. Here's how we code, the Obvious way. 

READ IT HERE → 


Managing technical quality in a codebase

Lethain
Crisis of technical quality, doing the quick stuff first and improving further on the second iteration, confronting the quality problems and best engineering practices. 

READ IT HERE →

WE'RE HIRING
Join the team

OBVIOUS 
Lead Android Engineer

Lead the quality and delivery of projects, work directly with clients and uphold the Obvious engineering standards.

VIEW JOB POST →

OBVIOUS
Content Writer

Create engaging content across assets and properties, and help shape the Obvious brand story.

VIEW JOB POST

OBVIOUS X
Senior Product Designer 

Make sense of complex systems, thrive on ambiguity and convert ideas into tangible prototypes.

VIEW JOB POST

IN OTHER NEWS
Updates from us 

What makes remote design work?

Remote design and user research — tweaks and overhaul to our processes, methods to improve collaboration and visibility.

READ MORE HERE →

Thoughts and Answers from Obvious Open Townhall

Answers to questions posed at our first-ever Open Townhall — about history, funding, careers, culture, documentation, and craft.

READ MORE HERE →

Website
Twitter
LinkedIn
Instagram
Facebook
 
Read our previous newsletters: Overheard at Obvious archives

Want to change how you receive these emails?
You can update your preferences for how you receive these mails 
or unsubscribe from this list.

Copyright © 2020 Obvious Ventures Private Limited, All rights reserved.

You are receiving this email because you connected with us through our website, or came to one of our events.

Our mailing address is:
Obvious Ventures Private Limited
Level 2, K-Raheja Paramount
138, Residency Road
Bangalore 560025
India

Add us to your address book