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

Post on 15-Jan-2015

328 views 2 download

description

agile brazil 2013, guilherme silveira e francisco sokol

Transcript of 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

chico sokolfrancisco.sokol@caelum.com.br

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

guilhermesilveira

guilherme.silveira@caelum.com.br

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

PARTE 1: Contexto

projeto existente:guj.com.br

9 anos de códigofs

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

fs

problema: fórum

fs

assusta novos usuários

século 20

vantagem: favorece discussões

desvantagem: dificulta QA

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

9 anos

PQ É DIFICIL EVOLUIR?

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

versão nova do ZERO

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

fs

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

fs

PARTE 2:COMO FAZER?

Como fazer?

• Compra?

• Adapta um open source que já existe?

• Cria o código do zero?

• Mistura tudo isso?

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

fs

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

procuramosum software pago

MUITO CARO!

proposta deinternacionalização

MUITO CARO!

2. diversos + adaptaropen source

fs

encontramosdiversos problemas

3 pessoas + novase 1 mais experiente

Tentamos3 meses

Encontramosdiversos problemas

fs

fs

internacionalização

espalhado

por

todo

canto

espalhado

por

todocanto

espalhado

por

todocanto

espalhado

por

todocanto

espalhado

por

todocanto

Linguagem (python)

o problema não éaprender a linguagem

o problema éaprender as boas práticas

fs

contratar o criador?

Linguagem (python)

curto prazo oklongo prazo ok

fs

um único autor, russo:

um único autor

1) cowboy (“macho” alpha)

2) forever alone

Problemas de um único autor

suporte e documentaçãoinexistente

contactamosnão fechou a conta

espaguetifs

códigoespagueti!=

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

entregou para users alphamas ficou a dúvida

continua a abordagem?

fs

falhar em 3 mesesnão é falhar rápido

faltou: a retrospectiva

500 anos sem retrospectiva

a retrospectiva com olhar do produto no lado técnico

Retrospectiva adicionando uma chancepara mudar o caminho.

$3. escreve uma

versão nova do ZERO

$

$

$

$

$$$

$

$

$$

$ $

pergunta:- substitui de uma vez

- em paralelo

fs

Feedback zero

infinitasreclamações

Time to market ruim

Bugsfs

Feedbackcedo

Time tomarket#win

Bugs

Reclamações

lembrando que já passaram 3 meses!

fs

fixamosprazo e escopo

o que acontece nesse caso?

vamos tentarsubstituir em paralelo

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

e pra qual lado

data+escopo => ~objetivo

pronto!podemos começar

FASE 1

- escrever do zero- implementar o *mínimo

viável*

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

- escrever do zero- implementar o *mínimo

viável* do minimo viavel do minimo viavel

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

fs

reunião++

Text

discussões a serem feitas:

- linguagem- framework

- design e usabilidade- funcionalidades

minimas

fs

discutimos:- funcionalidades minimas

fs

goela abaixo:- linguagem escolhida- framework escolhido

ditador benevolente

discussões são aceitáveis

ele tem a palavra final

escolhido um caminho, todos o seguem

design: depois

cores

imagens

responsivo

fs

usabilidade: ok

validações

ajax x não ajax

maneira de interagir

ao clicar, aparece algo

fs

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

funcionalidades mínimas

if pronto => continuaríamos

fs

se não ficasse pronto, voltariamos pro plano

anterior

Gostei do projeto!

desafio

tempo esperado desafiador

tecnologias que dominamos

somos capazes?

fs

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

produtividade++pq?

linguagem e tecnologia que a equipe domina

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

green field

desafio topado pela equipe

equipe x ferramentas

a equipe original tinha uma pessoa com mais experiência

o problema não estava na equipe

problemas mostrados até agora

resultados dafase 1

iterações acabaram mais cedo

2 semanas, tudo ok

sem design

usabilidade implementada

fs

FASE 2

fs

- continuar- implementar outras features

fs

lançamento fechado

usuários convidados

encontra mais bugs

design pronto (vários devs envolvidos)

fs

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

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

misc da fase 2

iterações continuaram surpreendendo

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

menos pareamento

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

próxima fase

troca

fs

hoje

4000 pessoas

2500 perguntas

3700 respostas

participe!

www.guj.com.br/perguntas

fs

< 2 meses

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

Obrigado!

guilherme.silveira@caelum.com.br

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

francisco.sokol@caelum.com.br