how to keep calm and ship it (juozas kaziukėnas)

46
HOW TO KEEP CALM AND SHIP IT

Upload: future-insights

Post on 28-Jul-2015

639 views

Category:

Software


3 download

TRANSCRIPT

HOW TO KEEP CALM AND SHIP IT

hellomy name is

@JUOKAZ

IF SOMETHING BIG HAPPENS, HOW QUICKLY CAN YOU

REACT?

MVP

WHY DOES THIS MATTER?

ANY DAY NOT IN PRODUCTION IS LOST

POTENTIAL

HOW TO GO FROM AN IDEA TO IMPLEMENTATION IN DAYS

MOVE FAST AND BREAK THINGS- Mark Zuckerberg, Facebook

REQUIREMENTS

UNCLEAR ORIGINAL SPECIFICATIONS

CYCLES OF CHANGES AND TESTING

    LACK OF UNDERSTANDING WHY KILLS PROJECTS

“YOU SHOULD ADD A BUTTON/CHECKBOX” 

IMPACT MAPPINGhttp://www.impactmapping.org/

1. why are we doing this

2. who is affected by this

3. how should the behavior change

4. what can we do as an organization

ALWAYS HAVE A PLAN

IDENTIFY WHAT YOU CANNOT BREAK

FEATURE-CREEP KILLS PROJECTS

AGILE?

IF IT'S HARD, CUT SCOPE- Wiggins' Law

PROTOTYPING

FAMILIAR TOOLSET

TOOLBOX

• Bootstrap for all frontend work

• Web framework of choice

• Database of choice

• ect.

FLASK-SKELETONhttps://github.com/juokaz/flask-skeleton

BUILD DELIVERABLE PRODUCTS

EVERY SUB-FEATURE SHOULD WORK

“WE CAN ALWAYS FIX IT LATER”

PRETTY APPS > WORKING APPS

FAKE/HACK IRRELEVANT PARTS

CONTINUOUS DELIVERY

12-FACTOR APPhttp://12factor.net/

1. Codebase - One codebase tracked in revision control

2. Dependencies - Explicitly declare and isolate dependencies

3. Config - Store config in the environment

4. Backing Services - Treat backing services as attached resources

5. Build, release, run - Strictly separate build and run stages

6. Processes - Execute the app as one or more stateless processes

7. Port binding - Export services via port binding

8. Concurrency - Scale out via the process model

9. Disposability - Maximize robustness with fast startup and graceful shutdown

10. Dev/prod parity - Keep development, staging, and production as similar as possible

11. Logs - Treat logs as event streams

12. Admin processes - Run admin/management tasks as one-off processes

12-FACTOR APP

TDD?

VERIFICATION

DOCKERhttp://docker.com/

CHECKLIST

• Push to master

• Build a Docker container containing the app

• Runs tests, code formatting checks, database migrations validation

• If all is ok, the Docker container is a stable build

• Then deploy to staging and/or production

FEEDBACK LOOP

DEVELOPERS ROLE

• Owners of a project/feature/system

• Responsible for fixing if it’s broken

• Slack operations room

METRICS

STATSD/GRAPHITEhttps://github.com/etsy/statsd

“NO ONE NOTICES A WEBSITE BROKEN FOR 2 MINUTES”

USERS

IN SHORT

• Collect requirements and make a TODO list even for small projects

• Prototype using familiar tools and frameworks

• Continuos delivery

• Feedback loop

THANKS!Juozas Kaziukėnas

@juokaz