O desenvolvimento de um produto como um software demanda amplo conhecimento por parte da equipe responsável, cada integrante tem uma função dentro da criação. Nos últimos tempos está sendo cada vez mais valorizada a figura do chamado desenvolvedor Full Cycle que nada mais é do que um profissional que conhece o processo de desenvolvimento completo, todas as suas etapas.
O termo foi criado pela Netflix e no contexto em que foi usado significa um membro da equipe que tem responsabilidade por todo o ciclo de desenvolvimento do software, esse indivíduo se preocupa com todas as etapas de criação. Além de saber o que acontece em cada etapa esse desenvolvedor precisa saber como testar a performance com assertividade em cada fase.
O desenvolvedor Full Cycle é o grande responsável por entregar um software em pleno funcionamento e bem redondinho dentro das expectativas dos usuários. Continue lendo para entender um pouco melhor do que se trata.
Desenvolvedor Full Cycle: Entendendo Desde o Começo
Como mencionamos acima o termo desenvolvedor Full Cycle (em tradução livre “desenvolvedor de todo o ciclo”) foi cunhado pela Netflix numa postagem feita no seu blog de tecnologia. Nesse post a empresa apresentava um pouco sobre a rotina de trabalho da equipe de engenharia tanto no tocante a construção como operações de serviços.
A abordagem de desenvolvimento Full Cycle tem sido bastante interessante dentro da Netflix. Os desenvolvedores têm realizado atividades ligadas aos aspectos operacionais de prestação de serviços assim como tem suporte através de treinamento e uma ampla diversidade de ferramentas de autoatendimento. Basicamente nesse sistema de trabalho as equipes centralizadas criam e são responsáveis por manter plataformas e ferramentas enquanto cada uma das equipes pode fazer ‘desvios’ se achar necessário.
De acordo com a Netflix o objetivo da adoção desse sistema é otimizar o trabalho para conseguir a entrega de melhores produtos e serviços para seus clientes. Os desenvolvedores de software precisam ter habilidades técnicas, mas acima de tudo saber como utilizá-las com maestria nos momentos certos.
Divisão de Funções no Desenvolvimento e Reagrupamento de Especialidades
O foco de ações do desenvolvedor Full Cycle está em projetar, desenvolver, realizar testes, implantar, colocar em operação e oferecer suporte. Sabe aquele famoso ‘faz-tudo’? É mais ou menos por aí, porém, é fundamental que nesse caso seja um faz-tudo bem habilitado em cada uma das tarefas.
Algo interessante de perceber é que as responsabilidades dentro da área de desenvolvimento foram sendo divididas com o passar do tempo criando subequipes dentro do time maior. A especialização de funções é responsável por criar profissionais com eficiências focadas em cada segmento, no entanto, isso acaba criando ineficiências para a realização do ciclo todo.
A figura do desenvolvedor Full Cycle é uma forma de sair desse ciclo de criação em que os desenvolvedores ficam presos a sua especialização e não conseguem trabalhar com assertividade na criação do todo. A criação dessa função permite o incentivo a um ciclo de retroalimentação e experimentação contínuo. Em linhas gerais o Full Cycle é responsável por operar aquilo que construiu, a equipe de desenvolvimento precisa ser capaz de operar e apoiar a produção.
Melhora de Feedbacks
Atribuir à equipe de desenvolvimento a responsabilidade de atenuar as dificuldades operacionais é uma forma criar melhores feedbacks. Essas equipes passam a sentir na pele o que o time operacional enfrenta e começa a considerar soluções para problemas que poderiam passar despercebidos se não houvesse essa interação.
Desafios da Abordagem Full Cycle
As grandes dificuldades que os desenvolvedores Full Cycle enfrentam são ter uma sobrecarga adicional e em muitos casos ter a necessidade de aprender novas habilidades. É fundamental que se tenha um cuidado adicional para evitar que alguns desenvolvedores fiquem muito sobrecarregados.
Contar com ferramentas que simplifiquem e automatizem requisitos operacionais e de desenvolvimento que estejam associados é fundamental para tornar esse trabalho mais factível. Basicamente a ideia é que ao atribuir mais responsabilidades para as equipes de desenvolvedores também se crie uma infraestrutura capaz de lhes dar o suporte necessário para tornar a sobrecarga mais leve.
O Que o Desenvolvedor Full Cycle Faz?
O profissional Full Cycle deve ser bem informado e capaz de atuar em todas as áreas do ciclo de vida do software que está sendo desenvolvido. Esse desenvolvedor precisa pensar e agir como um engenheiro de desenvolvimento e de teste, engenheiro de software em geral e engenheiro de confiabilidade.
É difícil encontrar um profissional com todas essas habilidades plenamente desenvolvidas então é importante que as empresas estejam dispostas a oferecer extensivos treinamentos para seus desenvolvedores. Outro ponto que deve ser compreendido pelas companhias é que nem todos os desenvolvedores vão desejar trabalhar como Full Cycle, afinal é uma grande sobrecarga de trabalho e responsabilidade.
Dificuldades das Empresas de Implantar Esse Sistema
Embora seja cada vez maior o número de empresas que está considerando adotar esse sistema de trabalho é importante mencionar que existem dificuldades para essa implementação. Em primeiro lugar é fundamental que seja feito um grande esforço para que funcione. As empresas devem evitar a todo custo a cultura de cópia de metodologias populares como o que se chama de ‘unicórnios de software’.
É necessário levar em consideração que existe uma grande diversidade de possíveis abordagens para resolver questões que surgem no tocante a desenvolvimento e operações. Empresas que desejam passar a trabalhar com a metodologia Full Cycle devem fazer uma análise relativa ao valor potencial e os custos associados para realizar essa mudança de método de atuação.
Preparação
A dica para quem deseja embarcar na aventura de atuar como desenvolvedor Full Cycle é se preparar amplamente para os desafios que o esperam. No entanto, em primeiro lugar é crucial entender exatamente o que significa seguir essa abordagem e quais serão as mudanças que deverão ser feitas para chegar a um trabalho realmente consistente.
Ser capacitado para atuar em todas as etapas do ciclo de vida de um software demanda grande dedicação para se especializar em todas as funções da etapa e também exige uma infraestrutura adequada para a resolução dos principais requisitos.
Gostou de saber mais sobre o que é e como se tonar um desenvolvedor Full Cycle?