Upload
caelum
View
331
Download
2
Embed Size (px)
DESCRIPTION
agile brazil 2013, guilherme silveira e francisco sokol
Citation preview
do zero a produção em poucas iterações
otimizando otime to market
chico [email protected]
http://www.caelum.com.brhttp://www.casadocodigo.com.br
guilhermesilveira
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!
http://www.caelum.com.brhttp://www.caelum.com.br/onlinehttp://www.casadocodigo.com.br