No ano de 2012 a Netflix enfrentou problemas para disponibilizar novas releases do seu software. A empresa tinha uma enorme dificuldade em saber a origem dos bugs, as equipes ficavam jogando o problema de um lado para outro em um processo que parecia não ter fim.
Se olharmos o ciclo de desenvolvimento de forma genérica, podemos separá-lo em 6 etapas:
1. Designer projeto (Responsabilidade do Arquiteto)
2. Desenvolvimento (Responsabilidade dos Programadores)
3. Testes (Responsabilidade do Engenheiros de Teste)
4. Implantação (Responsabilidade do Engenheiros de Implantação)
5. Operação (Responsabilidade do Sysadmin)
6. Suporte (Responsabilidade do Analista de Suporte)
As principais dores da Netflix foram falta de contexto, interrupções prolongadas e feedbacks pobres. Os desenvolvedores não sabiam como o software rodava em produção, da mesma forma que a equipe de implantação não tinha conhecimento no desenvolvimento das aplicações. Isso gerava constantemente problemas de comunicação e feedbacks errados dentro do ciclo de desenvolvimento.
Inspirado no movimento DevOps, a Netflix iniciou um processo de aprendizado e feedback, compartilhando a responsabilidade de todo o ciclo do software entre as equipes. “Operate what you build" ("Ponha para rodar o que você criou") é o método onde uma única equipe é responsável por todas as etapas do ciclo de desenvolvimento. A equipe projeta, desenvolve, testa, implanta e dá suporte.
Foram criadas diversas ferramentas de automação por pessoas especialistas naquela função, garantindo a qualidade do produto.
A metodologia tornou-se pública em 2018, dando origem ao programador Full Cycle. Essa forma de desenvolver trouxe resultados importantes para a Netflix e já foi adotada por diversas empresas ao redor do mundo.
Em 2019 a empresa tinha solucionado seus principais desafios e alcançou 150 milhões de usuários em mais de 190 países, tudo isso com apenas 80 desenvolvedores trabalhando em aproximadamente 50 aplicações diferentes.
O desenvolvedor full Cycle continua sendo especialista. Ele pode ser Back end, Front end e Devops. Mas precisa ter uma visão geral de todo ciclo.
Comentários