Conheça o Desenvolvedor Full Cycle, o programador do futuro

Conheça o Desenvolvedor Full Cycle, o programador do futuro

Tudo começou na Netflix em 2012, quando eles enfrentavam diversos problemas na implantação de novas versões do seu produto. Além da dificuldade de encontrar as origens dos problemas, as equipes ficavam "passando a batata quente" uma pra outra num processo que parecia não ter fim. Foi aí que começaram a perceber que mudanças eram necessárias.

Mas antes de falar sobre o desenvolvedor full cycle…

Para entender como a Netflix resolveu esse problema, precisamos antes entender como funciona o ciclo de desenvolvimento de software.

Como funciona o ciclo de desenvolvimento de software?

O ciclo de desenvolvimento de software é composto por 6 etapas:

1. Design (Projeto)

2. Develop (Desenvolvimento)

3. Test (Teste)

4. Deploy (Implantação)

5.Operate (Operação)

6. Support (Suporte)

No processo de desenvolvimento tradicional para cada uma dessas etapas existe um profissional especializado:

1. Design - Arquiteto de Software

2. Develop = Programador

3. Test = Engenheiro de Testes

4. Deploy = Engenheiro de Implantação

5. Operate = SysAdmin

6. Support = Analista de Suporte

A vantagem de trabalhar com especialistas em cada etapa é que você cria uma grande eficiência naquela etapa, mas para um software entregar valor para o cliente ele precisa de todo o ciclo funcionando adequadamente. Ter equipes de especialistas em cada fatia do ciclo de vida, pode criar silos que retardam o progresso de ponta-a-ponta.

Agrupar diferentes especialistas em uma equipe pode reduzir o isolamento, mas ter diferentes pessoas para cada função em um mesmo time sobrecarrega a comunicação e cria gargalos de produtividade.

Agora que você já entendeu como funciona o ciclo de desenvolvimento de software atual e os seus problemas vamos dar uma olhada no que a Netflix fez.

O surgimento do desenvolvedor full cycle

Inspirado no movimento DevOps, a Netflix começou então um processo de aprendizado e feedback e compartilhando a responsabilidade de todo o ciclo do software entre todas as equipes.

“Operate what you build” numa tradução livre seria como "Ponha pra rodar o que você criou", a mesma equipe projeta, desenvolve, testa, implanta e dá suporte.

Para garantir a qualidade em todo o processo, já que cuidando do ciclo todo estamos colocando "muita responsabilidade" em cada profissional. Foram criadas diversas ferramentas de automação pelos especialistas naquelas tarefas.

Em 2018 a Netflix tornou esse processo público, e batizou esse novo profissional de Full Cycle Developer, ou seja, o desenvolvedor full cycle.

Além da Netflix, várias grandes empresas ao redor do mundo já estão adotando essa abordagem e provavelmente esse será o programador do futuro em empresas de qualquer tamanho. Se numa empresa grande ganha-se agilidade na resolução de problemas, numa empresa pequena, ter um profissional multifuncional, reduz os custos.

Um novo profissional exige uma nova formação

Em 2020, a Digital House se reuniu com o Mercado Livre e a Globant para discutir como seria o profissional de desenvolvimento de software preparado para os desafios do mercado atual.

Precisaria ser um profissional que dominasse as últimas tecnologias e estivesse capacitado para superar os desafios em empresas inovadoras.

Qual seria a formação desse profissional começando do zero?

Depois de longa semanas de trabalho em equipe, onde os profissionais técnicos das empresas participaram diretamente da discussão, o resultado foi um currículo que apresento abaixo de forma resumida do que esperar do curso Certified Tech Developer.

Soft Skills

Desenvolvimento e postura profissional - Pensar e organizar o desenvolvimento contínuo da carreira para o mercado de trabalho.

Learning agility - Conhecer as metodologias de aprendizagem para se preparar para o mundo do aprendizado contínuo (Lifelong Learning).

Trabalho em equipe e colaboração - Conhecer metodologias e ferramentas para trabalhar em equipe, além de dinâmicas de liderança, feedback e interação social.

Gestão do Tempo - De que adianta saber fazer e não cumprir os prazos? Como organizar as tarefas? Como manter o foco?

Comunicação Efetiva - Diversas empresas cheias de talentos vivem com problemas por falta de comunicação eficiente entre os colaboradores e equipes, vamos preparar os profissionais para esses desafios.

Metodologias de trabalho

Treinar nas metodologias ágeis (como SCRUM) e plataformas de trabalho remoto.

Design Thinking

Para inovar é preciso transformar ideias em produtos ou serviços. Vamos aprender a criar em equipe aproveitando o talento de cada um.

UX

Um bom software precisa ser fácil de usar, usabilidade é uma ciência que pode ser aprendida e é fundamental para a programação.

Fundamentos

Introdução a informática - É importante ter conhecimentos gerais de tecnologia além do mundo do software.

Programação imperativa - Começando a jornada no mundo do desenvolvimento com Javascript.

Programação orientada a objetos - Aprofundando em conceitos e práticas mais avançadas de desenvolvimento de software com Java.

Front End

Como criar interfaces, desde o layout, HTML e CSS, passando por design responsivo e aprendendo os frameworks mais atuais como React.

Testes

Com as técnicas e ferramentas corretas quem criou o produto é uma das melhores pessoas para encontrar seus erros e falhas. O que é Debugging e Troubleshooting e como funcionam provas funcionais e não funcionais, além de automatização de testes.

Base de Dados

Aprender a modelar um banco de dados e como funcionam os bancos relacionais e não relacionais.

Infraestrutura

Conhecendo os ecossistemas e custos, aprendendo a configurar o ambiente de produção passando por conceitos como Docker, C2 e S3, versionamento, monitoramento, Elastic compute, CI/CD, Kubernetes e Load Balancing.

Back End

Programando a estrutura e segurança dos aplicativos com Spring, MVC, APIs, Sessões e ORM.

Product Manager

Saber como funciona todo o ciclo de vida do produto também fora da área de desenvolvimento, desde o relacionamento com o cliente e mercado até o planejamento de negócios.

Data Analytics

Aprender a organizar e tratar os dados para extrair padrões e gerar insights valiosos para o ciclo de desenvolvimento do produto.

Conheça o curso Certified Tech Developer

Depois de detalhar cada disciplina e organizar o currículo com nossa equipe de pedagogia chegamos a um modelo onde após o primeiro ano o aluno forma-se como Desenvolvedor Full Stack Junior e no segundo ano ele se especializa em Front End ou Back End, perfazendo um total de mais de 2 mil horas de aprendizado.

Nós acreditamos que um profissional completo no mercado de hoje tem de estar preparado para participar desde o projeto até o suporte. Esse é o profissional de programação que estará preparado para o futuro.

Conhecer todas as fases do ciclo de desenvolvimento de software permite antecipar problemas e encontrar soluções mais rapidamente, e a especialização em Front End e Back End permite a profundidade necessária nas tarefas onde ele vai passar a maior parte do tempo.

Um estudo da Microsoft de 2020, usando dados do LinkedIn, prevê que o Brasil precisará de 6,3 milhões de novos profissionais de desenvolvimento de software até 2025.

São esses profissionais que vamos formar com esse currículo.

Quer saber mais sobre esse programa? Visite o site Certified Tech Developer e concorra a bolsas de até 95% do valor total do curso.


Leia mais no blog DH:

+ Como treinar HTML E CSS nos estudos sobre desenvolvimento web

+ Gestor de produtos: 4 habilidades para se destacar no mercado de trabalho

+ Mulheres na tecnologia: como é atuar no mercado de TI

E aí, já segue a gente no Twitter? Vem pra rede, vamos conversar sobre habilidades digitais! ;)