Introduction

Adjective

hackable ‎(comparative more hackable, superlative most hackable)

(computing) That can be hacked or broken into; insecure, vulnerable. That lends itself to hacking (technical tinkering and modification); moddable. ‎(comparative, superlative

In Practice

Developing is easy

Fast build

Good, fast tests

Clean code

Easy running + debugging

One-click rollbacks

Broken HEAD (tip-of-tree)

Slow presubmit (i.e. checks running before submit)

Builds take hours

Incremental build/link > 30s

Flakytests

Can’t attach debugger

Logs full of uninteresting information

The Three Pillars of Hackability

Pillar 1: Code Health

“I found Rome a city of bricks, and left it a city of marble.”

-- Augustus

Tests

Figure 1: the Testing Pyramid.

Readable Code and Code Review

Presubmit Testing and Lint

$ git cl upload Error: the media/audio directory requires formatting. Please run git cl format media/audio.

Single Branch And Reducing Risk

Loose Coupling and Testability

Aggressively Reduce Technical Debt