From Zero to Prod

How we deliver value

MASMOVIL TECHNOLOGY

Icons made by Eucalyp from www.flaticon.com is licensed by CC 3.0 BY

ENVIRONMENTS

GIT

AGILE

Developer point of view

ENVIRONMENTS

PRO

STA

DEV

CAN

master
DEV integration

3º parties unstable

x.y.z-rc.w

ENV stable

QA validation

3º parties unstable

x.y.z

x.y.z-sta.w

Weird internal prod

No used mostly

Today

FEAT

feat/* hotfix/*

Code Review Validation

Points to "any" environment

PRO

STA

DEV

master

Stable environment

3º parties DEV|mocks

x.y.z-rc.w

Internal Prod

QA certification

x.y.z

Tomorrow

v1

v1

v2

canary

Feature Branches

feature branch

  • feature/*
  • hotfix/*

Short live environment

Code Review validation

Acceptance criteria validation

Critical E2E (optional)

Lives inside DEV Environment

GIT WORKFLOW

feat/branch-2

x.y.z-rc.1

x.y.z

master

feat/branch-1

hotfix/branch-1

release/1.y.z

PULL REQUEST!!!

x.y.z-rc.2

squash+merge

Every commit at master could become a release!

TRUNK-BASED WORKFLOW

MASTER HISTORY READABLE

PULL REQUEST OVERVIEW

what

how can I test it?

user history

definition of production ready ( DoPR)

automated checks

commit format

branch format

AGILE WORKFLOW

TODO

DOING

CR

BV

DEPLOY

IT'S JUST A SCHEMA!

QA

QA

E2E

QA Hooks

  • Backlog definition
    • User histories
    • Taks/subtasks
    • Bugs
    • Technical debt
    • Spikes
  • Value oriented
  • Priorized backlog

TODO

Backlog

  • PO knows what the value should be, and when to do it          (how important it is, priorized)
  • UI/UX must define how it looks like, behave and it's user impact
  • AX analizes the impact in terms of user experience
  • SEO must be aware of any new content that has to be ranked
  • QA must define acceptance criteria and test plans
  • devTeam must help PO to refine tasks in actionable tasks

TODO

Involved People

Backlog refinement

During the current sprint

Backlog feedback

TODO

Grooming

Sprint start

Grooming

Sprint end

Find the way that best suits you!

What the new value does?

Why we need this?

 

Acceptance criteria

 

Needed resources to get it done

  • Endpoints
  • Designs
  • AX
  • Acceptance criteria

 

Divide and conquer

  • Split bigger tasks in smaller ones

TODO

Definition of Ready (DoR)

TODO

S

M

L

XL

XS

2

3

5

8

1

Estimate

TODO

S

M

L

XL

XS

2

3

5

8

1

Instant: commit, push & ship it!

Estimate

TODO

S

M

L

XL

XS

2

3

5

8

1

Instant but requires workflow validation (PR, test, validation, release, deploy, ...)

Estimate

TODO

S

M

L

XL

XS

2

3

5

8

1

Can be done in one sprint

Estimate

TODO

S

M

L

XL

XS

2

3

5

8

1

Estimated by effort not time!

Estimate

Discussion > Estimation

  • Daily
    • Did
    • Doing
    • Blocker
  • It's not a report
  • Daily questions:
    • Sprint goal?
    • Risks?
  • Consider WIP limit

DOING

Dailies

  • Well documented PR's
  • Why
    • Ownership
    • Consistency
    • Legibility
    • Error fixing
    • Misspels
    • Team agreements compliant
    • Share
    • Learn

CODE REVIEW

Pull Requests

  • Code review as soon as possible
  • Focus on what they solves and it's code not author
  • Test it locally
  • Ask, not asume
  • Face to face > online communication
  • Concise comments, friendly, actionable
  • Be respectful
  • Are abstractions useful?
  • Follow community standards and team agreements?
  • Has any todo's
  • Has any breaking change?
  • Developed tests covers acceptance criteria?
  • Decline but explain why

CODE REVIEW

How to Review

DEFINITION OF PRODUCTION READY

  • Well documented PR
  • Not WIP
  • All automated checks green
  • Has peer approvals
  • Validated by QA
  • Validated by PO

CODE REVIEW

Definition of Production Ready (DoR)

  • QA+PO validates acceptance criteria in feature branches
  • QA+PO will make a full regresion in STA environment
  • DevTeam should add some critical regression test launched at every commit

VALIDATIONS

Dedicated squad that continuously test all our products

Runs the E2E on any product

Triggered every staging deployment

QA HOOKS

Avoid Friday deploys!

Definition of Done (DoD)

Value-oriented teams

Review only DoD tasks

DEPLOY

TODO

DOING

CR

BV

DEPLOY

QA

QA

E2E

QA Hooks

DoR

DoD

DoPR

https://es.atlassian.com/git/tutorials/comparing-workflows

https://es.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow

https://medium.com/palantir/code-review-best-practices-19e02780015f

https://nvie.com/posts/a-successful-git-branching-model/

https://medium.com/@patrickporto/4-branching-workflows-for-git-30d0aaee7bf

https://www.endoflineblog.com/gitflow-considered-harmful

https://www.nomachetejuggling.com/2017/04/09/a-different-branching-strategy/

https://hackernoon.com/gitflow-is-a-poor-branching-model-hack-d46567a156e7

https://hackernoon.com/still-using-gitflow-what-about-a-simpler-alternative-74aa9a46b9a3

https://www.toptal.com/software/trunk-based-development-git-flow

https://guides.github.com/introduction/flow/

https://blogs.technet.microsoft.com/devops/2016/06/21/a-git-workflow-for-continuous-delivery/

https://docs.gitlab.com/ee/workflow/gitlab_flow.html

https://about.gitlab.com/2014/09/29/gitlab-flow/

https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow

https://trunkbaseddevelopment.com/

References

From Zero to Prod

How we deliver value

MASMOVIL TECHNOLOGY

Q&A

@anthanh | #frontend-general | #tech-chat

Thanks!