Download - Otimizando o time to market - do zero a produção em poucas iterações

Transcript
Page 1: Otimizando o time to market - do zero a produção em poucas iterações

do zero a produção em poucas iterações

otimizando otime to market

Page 2: Otimizando o time to market - do zero a produção em poucas iterações

chico [email protected]

http://www.caelum.com.brhttp://www.casadocodigo.com.br

Page 3: Otimizando o time to market - do zero a produção em poucas iterações

guilhermesilveira

[email protected]

http://www.caelum.com.brhttp://www.caelum.com.br/online

Page 4: Otimizando o time to market - do zero a produção em poucas iterações

PARTE 1: Contexto

Page 5: Otimizando o time to market - do zero a produção em poucas iterações

projeto existente:guj.com.br

Page 6: Otimizando o time to market - do zero a produção em poucas iterações

9 anos de códigofs

Page 7: Otimizando o time to market - do zero a produção em poucas iterações

158 mil usuários1.5 milhões de mensagens

fs

Page 8: Otimizando o time to market - do zero a produção em poucas iterações

problema: fórum

fs

assusta novos usuários

século 20

vantagem: favorece discussões

desvantagem: dificulta QA

Page 9: Otimizando o time to market - do zero a produção em poucas iterações

evolução de código pouco a pouco é possível?

9 anos

PQ É DIFICIL EVOLUIR?

Page 10: Otimizando o time to market - do zero a produção em poucas iterações

pq é difícil evoluir?

1. funcionalidade distante do foco

2. falta de testes

3. ausência dos criadores

4. mudanças chateiam usuários

5. pq as decisões foram tomadas?

6. gap de anos desde a última feature nova

fs/gs

Page 11: Otimizando o time to market - do zero a produção em poucas iterações

versão nova do ZERO

9 anos => não dava mais para evoluir aos poucos

fs

Page 12: Otimizando o time to market - do zero a produção em poucas iterações

Decisão:Não vale a pena evoluir o código atual

fs

Page 13: Otimizando o time to market - do zero a produção em poucas iterações

PARTE 2:COMO FAZER?

Page 14: Otimizando o time to market - do zero a produção em poucas iterações

Como fazer?

• Compra?

• Adapta um open source que já existe?

• Cria o código do zero?

• Mistura tudo isso?

Page 15: Otimizando o time to market - do zero a produção em poucas iterações

diminuir o time to market(e o custo de entrada)

fs

Page 16: Otimizando o time to market - do zero a produção em poucas iterações

1. buy it “off the shelf”mythical man month

Page 17: Otimizando o time to market - do zero a produção em poucas iterações

procuramosum software pago

MUITO CARO!

Page 18: Otimizando o time to market - do zero a produção em poucas iterações

proposta deinternacionalização

MUITO CARO!

Page 19: Otimizando o time to market - do zero a produção em poucas iterações

2. diversos + adaptaropen source

fs

Page 20: Otimizando o time to market - do zero a produção em poucas iterações

encontramosdiversos problemas

3 pessoas + novase 1 mais experiente

Tentamos3 meses

Encontramosdiversos problemas

fs

Page 21: Otimizando o time to market - do zero a produção em poucas iterações

fs

internacionalização

espalhado

por

todo

canto

espalhado

por

todocanto

espalhado

por

todocanto

espalhado

por

todocanto

espalhado

por

todocanto

Page 22: Otimizando o time to market - do zero a produção em poucas iterações

Linguagem (python)

o problema não éaprender a linguagem

o problema éaprender as boas práticas

fs

Page 23: Otimizando o time to market - do zero a produção em poucas iterações

contratar o criador?

Linguagem (python)

curto prazo oklongo prazo ok

fs

Page 24: Otimizando o time to market - do zero a produção em poucas iterações

um único autor, russo:

Page 25: Otimizando o time to market - do zero a produção em poucas iterações

um único autor

1) cowboy (“macho” alpha)

2) forever alone

Page 26: Otimizando o time to market - do zero a produção em poucas iterações

Problemas de um único autor

suporte e documentaçãoinexistente

contactamosnão fechou a conta

Page 27: Otimizando o time to market - do zero a produção em poucas iterações

espaguetifs

códigoespagueti!=

Page 28: Otimizando o time to market - do zero a produção em poucas iterações

problemas

• i18n espalhada

• linguagem desconhecida para a equipe

• código espagueti

• desenvolvido por um único autor

• problemas clássicos de engenharia que não foram cuidados antes

fs

Page 29: Otimizando o time to market - do zero a produção em poucas iterações

entregou para users alphamas ficou a dúvida

continua a abordagem?

fs

Page 30: Otimizando o time to market - do zero a produção em poucas iterações
Page 31: Otimizando o time to market - do zero a produção em poucas iterações

falhar em 3 mesesnão é falhar rápido

Page 32: Otimizando o time to market - do zero a produção em poucas iterações

faltou: a retrospectiva

Page 33: Otimizando o time to market - do zero a produção em poucas iterações

500 anos sem retrospectiva

Page 34: Otimizando o time to market - do zero a produção em poucas iterações

a retrospectiva com olhar do produto no lado técnico

Page 35: Otimizando o time to market - do zero a produção em poucas iterações

Retrospectiva adicionando uma chancepara mudar o caminho.

Page 36: Otimizando o time to market - do zero a produção em poucas iterações

$3. escreve uma

versão nova do ZERO

$

$

$

$

$$$

$

$

$$

$ $

Page 37: Otimizando o time to market - do zero a produção em poucas iterações

pergunta:- substitui de uma vez

- em paralelo

fs

Page 38: Otimizando o time to market - do zero a produção em poucas iterações

Feedback zero

infinitasreclamações

Time to market ruim

Bugsfs

Page 39: Otimizando o time to market - do zero a produção em poucas iterações

Feedbackcedo

Time tomarket#win

Bugs

Reclamações

Page 40: Otimizando o time to market - do zero a produção em poucas iterações
Page 41: Otimizando o time to market - do zero a produção em poucas iterações

lembrando que já passaram 3 meses!

fs

Page 42: Otimizando o time to market - do zero a produção em poucas iterações

fixamosprazo e escopo

o que acontece nesse caso?

vamos tentarsubstituir em paralelo

Page 43: Otimizando o time to market - do zero a produção em poucas iterações

nossa dúvida é qual das duas variáveis vai estourar,

e pra qual lado

Page 44: Otimizando o time to market - do zero a produção em poucas iterações

data+escopo => ~objetivo

Page 45: Otimizando o time to market - do zero a produção em poucas iterações

pronto!podemos começar

Page 46: Otimizando o time to market - do zero a produção em poucas iterações

FASE 1

Page 47: Otimizando o time to market - do zero a produção em poucas iterações

- escrever do zero- implementar o *mínimo

viável*

Page 48: Otimizando o time to market - do zero a produção em poucas iterações

- escrever do zero- implementar o *mínimo viável* do minimo viavel

Page 49: Otimizando o time to market - do zero a produção em poucas iterações

- escrever do zero- implementar o *mínimo

viável* do minimo viavel do minimo viavel

Page 50: Otimizando o time to market - do zero a produção em poucas iterações

além do release planning,iterações menores

fs

Page 51: Otimizando o time to market - do zero a produção em poucas iterações

reunião++

Text

discussões a serem feitas:

- linguagem- framework

- design e usabilidade- funcionalidades

minimas

fs

Page 52: Otimizando o time to market - do zero a produção em poucas iterações

discutimos:- funcionalidades minimas

fs

Page 53: Otimizando o time to market - do zero a produção em poucas iterações

goela abaixo:- linguagem escolhida- framework escolhido

Page 54: Otimizando o time to market - do zero a produção em poucas iterações

ditador benevolente

discussões são aceitáveis

ele tem a palavra final

escolhido um caminho, todos o seguem

Page 55: Otimizando o time to market - do zero a produção em poucas iterações

design: depois

cores

imagens

responsivo

fs

Page 56: Otimizando o time to market - do zero a produção em poucas iterações

usabilidade: ok

validações

ajax x não ajax

maneira de interagir

ao clicar, aparece algo

fs

Page 57: Otimizando o time to market - do zero a produção em poucas iterações

decidido: tempo máximo (1 mês)

funcionalidades mínimas

Page 58: Otimizando o time to market - do zero a produção em poucas iterações

if pronto => continuaríamos

fs

Page 59: Otimizando o time to market - do zero a produção em poucas iterações

se não ficasse pronto, voltariamos pro plano

anterior

Gostei do projeto!

Page 60: Otimizando o time to market - do zero a produção em poucas iterações

desafio

tempo esperado desafiador

tecnologias que dominamos

somos capazes?

fs

Page 61: Otimizando o time to market - do zero a produção em poucas iterações

ações

muita gente pareando muito tempo

nível de experiência diferente (troca de experiências)

+ da metade tinha - de 1 ano de experiência

fs

bastante revisão de código

Page 62: Otimizando o time to market - do zero a produção em poucas iterações

produtividade++pq?

linguagem e tecnologia que a equipe domina

não só a equipe, mas toda a empresa

green field

desafio topado pela equipe

Page 63: Otimizando o time to market - do zero a produção em poucas iterações

equipe x ferramentas

a equipe original tinha uma pessoa com mais experiência

o problema não estava na equipe

problemas mostrados até agora

Page 64: Otimizando o time to market - do zero a produção em poucas iterações

resultados dafase 1

iterações acabaram mais cedo

2 semanas, tudo ok

sem design

usabilidade implementada

fs

Page 65: Otimizando o time to market - do zero a produção em poucas iterações

FASE 2

fs

Page 66: Otimizando o time to market - do zero a produção em poucas iterações

- continuar- implementar outras features

fs

Page 67: Otimizando o time to market - do zero a produção em poucas iterações

lançamento fechado

usuários convidados

encontra mais bugs

design pronto (vários devs envolvidos)

fs

Page 68: Otimizando o time to market - do zero a produção em poucas iterações

deploy contínuo

ambiente de produção

teste de end-to-end

scripts de deploy

até hoje: +1 deploy por dia, só 2 bugs graves

fs

Page 69: Otimizando o time to market - do zero a produção em poucas iterações

lançamento aberto

usuários que querem se aventurar colaboram

quem não quer se aventurar, não reclama

encontra mais bugs, fica mais estável

feedback rápido

melhora usabilidade

criar usuários fiéis

fsgs

Page 70: Otimizando o time to market - do zero a produção em poucas iterações

misc da fase 2

iterações continuaram surpreendendo

prática de deploy contínuo somente quando necessária

menos pareamento

Page 71: Otimizando o time to market - do zero a produção em poucas iterações

em beta

encontramos problema de performance

otimização de performance somente quando necessária

até esse instante sem testes ligados a performance

há monitoramento (newrelic)

fs

Page 72: Otimizando o time to market - do zero a produção em poucas iterações

próxima fase

troca

fs

Page 73: Otimizando o time to market - do zero a produção em poucas iterações

hoje

4000 pessoas

2500 perguntas

3700 respostas

participe!

www.guj.com.br/perguntas

fs

< 2 meses

Page 74: Otimizando o time to market - do zero a produção em poucas iterações

revisandofsgs

cont

inuar

o a

tual?

ada

ptar

? cr

iar d

o ze

ro?

deplo

y em

pro

duçã

o

débit

o té

cnico

muit

o alt

o

usuá

rios a

lfa

criar

do

zero

mini

mum

viab

le pr

oduc

t

imple

men

taçã

o lóg

ica

apro

vaçã

o do

cam

inho

desig

n

+pareamento

revisão de código

testes de unidade

testes end-to-end

integração contínua

-pareamento

entrega contínua

usuá

rios b

eta

todo

s os u

suár

ios

prob

lema

de p

erfo

rman

ce: o

timiza

ções

iterações curtas

ditadura benevolente

FASE 0

FASE 1

FASE 1

FASE 2

FASE 3

Page 75: Otimizando o time to market - do zero a produção em poucas iterações

Obrigado!

Page 76: Otimizando o time to market - do zero a produção em poucas iterações

[email protected]

http://www.caelum.com.brhttp://www.caelum.com.br/onlinehttp://www.casadocodigo.com.br

[email protected]