Shapes of Development

Gleb Bahmutov

Scott Sauyet

  * https://twitter.com/scott_sauyet
  * https://github.com/crosseye
  * http://scott.sauyet.com/

Michael Hurley

  * https://twitter.com/buzzdecafe
  * https://github.com/buzzdecafe
  * http://buzzdecafe.github.io/

a closed plane curve every point of which is equidistant from a fixed point within the curve

?

Effective communication matters

Simplicity matters

Waterfall

Agile spiral

Agile spiral

Testing Pyramid

unit

integration

E2E

Testing Trapezoid

unit

static types

integration

E2E

crash reporting

Acquisition Funnel

Acquisition Funnel

T-shape

If you know Node

  • Databases
  • Front end
  • Styles
  • User experience
  • Performance
  • Security

Learning fast

Approximate:

value doubles every 72 / rate (%)

At 5% per month, value doubles after 20 months

14

At 10% per month, value doubles after 10 months

7

Box

45ef0b
v1.0.2
foo

Artifact

code

Box

45ef0b
v1.0.2
foo

Build

code

Box

45ef0b
v1.0.2
8711fe
v1.1.0
foo
foo

Build

code

Box

45ef0b
v1.0.2
8711fe
v1.1.0
6001cd
v0.1.0
23ee22
v0.2.0
foo
foo
bar
bar

Build

code

Box size

45ef0b
v1.0.2
foo

Build

user / repo
devDependencies
tests
test data
{
  "files": []
}

code

Box

45ef0b
v1.0.2
foo

Build

Use

npm publish
npm i foo

NPM registry

code

Box

45ef0b
v1.0.2
foo

Build

Use

docker build
docker push
docker run

Docker hub

code

Deploying Box

45ef0b
v1.0.2
foo

deploy

45ef0b

#dev

deploy

45ef0b

#stage

deploy

45ef0b

#prod

🙏

code

Immutable Box

45ef0b
v1.0.2
foo

deploy

45ef0b

#dev

#prod

test

code

Other shapes

Stack (networking)

Transform (algorithms)

Unidirectional (data flow)

🤓

💻

Shapes of Development