Caminho do Arquiteto: Certificação e Imersão no Produto

Quase todos os desenvolvedores se perguntam como devem desenvolver suas habilidades e qual direção de crescimento escolher: vertical — ou seja, tornar-se gestor, ou horizontal — full stack. Trabalhar por muitos anos em um único produto, ao contrário do que se pensa, não é uma limitação, mas sim uma oportunidade valiosa. Neste artigo, compartilhamos a experiência de nosso desenvolvedor back-end, Alexey, que dedicou 6 anos a certificações e, durante esse tempo, alcançou o nível de arquiteto.

Caminho do Arquiteto: Certificação e Imersão no Produto

Quem é o arquiteto

O arquiteto em TI (tech lead) é um desenvolvedor de alto nível que se ocupa de questões globais em projetos de TI. Ele se aprofunda nos processos de negócios do cliente e ajuda a resolver suas tarefas por meio de tecnologias, além de definir como será estruturado determinado sistema de informação.

Esse profissional não apenas precisa entender áreas específicas, mas também visualizar todo o processo:

  • Definição de tarefas de negócios.
  • Desenvolvimento, incluindo programação, preparação, armazenamento e processamento de dados.
  • Implantação e suporte da infraestrutura.
  • Testes.
  • Implantação.
  • Análise e manutenção operacional.

Isso significa a capacidade de se colocar no lugar de qualquer especialista ou equipe durante o ciclo de vida do desenvolvimento, entender internamente o estado atual dos sistemas, identificar erros cometidos e formular objetivos. Às vezes, é necessário realizar intervenções operacionais de forma direta.

O caminho de desenvolvimento profissional de um desenvolvedor até arquiteto leva um tempo considerável — geralmente, vários anos. Para isso, o desenvolvedor precisa de habilidades práticas, bem como de conhecimento teórico, o qual pode ser comprovado por certificações internacionais.

Mais de 5 anos em um mesmo projeto — rotina ou oportunidade de crescimento?

Há alguns anos, começamos a trabalhar em um grande sistema de TI na área da saúde para um cliente estrangeiro. Neste projeto de grande escala, haviam alguns problemas:

  • acessos limitados;
  • produções instáveis;
  • sprints incrivelmente longos e longas aprovações.

“É hora de aprimorar as habilidades”, — essa foi a decisão que um dos principais desenvolvedores, Alexey, tomou para superar as dificuldades mencionadas e compreender melhor o sistema.

Alexey compartilhou sua experiência sobre como começar a aprender, quais certificados são importantes, como e por que fazer isso.

Passo um: melhore seu inglês

Linguagens de programação são uma parte fundamental do desenvolvimento, mas as línguas de comunicação são igualmente importantes. Especialmente nas comunicações com clientes de língua inglesa!

Da prática

Certa vez, Alexey recebeu uma ligação de uma funcionária do lado do cliente. Naquela época, nosso desenvolvedor ainda não podia se gabar de uma pilha de certificados — nem em tecnologias, nem em gestão, nem em comunicação. Talvez eles não fossem úteis — afinal, é possível ser um profissional competente sem distinções adicionais. Mas o problema realmente surgiu.

É preciso entender que a língua falada é radicalmente diferente da escrita. Se você entende perfeitamente as especificações em inglês, mas não pratica listening e speaking, temos más notícias para você. Nesse caso, as negociações por telefone com parceiros podem levar a um impasse.

Alexey, durante a chamada, captou algumas palavras conhecidas, mas a fala do colega era tão rápida e diferente da pronúncia clássica dos áudios que a essência de suas perguntas passou despercebida. Por cortesia e por não querer complicar a situação, Alexey rapidamente concordou com todas as propostas.

Nem é preciso dizer que durante o trabalho foram feitas descobertas desagradáveis? Nosso desenvolvedor aceitou algo que, se a proposta tivesse sido feita em uma língua compreensível, ele definitivamente teria recusado.

Naquele momento, tornou-se claro que era essencial aprimorar as habilidades de escuta e fala. A melhor forma de fazer isso era através de certificações.

Certificação em inglês

Para melhorar a comunicação em nosso projeto médico, Alexey estudou em vários programas ao mesmo tempo. Como resultado, ele passou na certificação FCE — First Certificate in English. Isso o ajudou a começar a compreender o cliente e a transmitir suas ideias.

Dica:

Evite programas de aprendizado de inglês básico. A habilidade deve ser direcionada. Se o inglês é necessário para comunicação de negócios, este é o que você deve aprender. Mas não deve ir ao extremo e fazer o CAE (Certificate in Advanced English). Sua característica é o uso de palavras sofisticadas e expressões específicas que raramente são usadas na comunicação internacional.

Caminho do Arquiteto: Certificação e Imersão no Produto

Passo dois: certificação em toda a pilha tecnológica

Inicialmente, a base do projeto era a tecnologia de mapeamento objeto-relacional ORM. A equipe de desenvolvedores do cliente orgulhava-se de sua obra, pois tudo foi feito com a aplicação de conceitos avançados, de forma complexa e impressionante.

No entanto, problemas em produção — especialmente a constante instabilidade do servidor SQL — não eram incomuns. Chegava ao ponto em que a solução típica para o problema era reiniciar o serviço. O cliente ligava para o líder da equipe e informava que era hora de reiniciar. Finalmente decidimos acabar com isso.

O cliente desejou trabalhar na performance do sistema — para isso, era necessário implementar a profilagem e realizar otimizações regulares. Como ferramenta de perfilagem na época — por volta de 2015 — escolhemos o Ants Profiler, mas este se mostrou fraco. Com baixa detalhamento, era difícil obter informações sobre um bloco crítico de código. Em máxima detalhamento, o Ants Profiler começava a alterar o código de tal maneira que a funcionalidade dos sistemas ficava em risco — onde a profilagem estava configurada, tudo simplesmente falhava. Portanto, mudamos nosso approach.

Começamos com a análise de estatísticas

Ao analisar as estatísticas de produção, ficou claro que 95% das operações no servidor tinham lógica de negócios primitiva em 4 linhas. Para elas, apenas uma consulta SQL era suficiente, e não um conjunto completo de consultas gerado pelo bloco de lógica de negócios com ORM.

Alexey propôs e implementou um procedimento armazenado para mover operações sem ORM. A ideia contrariava a paradigma habitual do projeto, e o líder da equipe a recepcionou com cautela, mas o cliente aceitou tudo e solicitou a implementação. Isso não foi surpreendente, pois o novo método permitia reduzir o tempo de processamento em produção de quatro horas para apenas alguns minutos — em média, 98 vezes.

Ainda assim, tínhamos dúvidas: era esta a decisão correta ou uma questão de preferências pessoais? A fé no todo-poderoso C# e ORM foi abalada por um acaso que mostrou a força das soluções simples.

Caso dois

A equipe escreveu uma consulta para trabalhar com dados dentro da paradigma ORM, formulada de acordo com todas as regras, sem erros. Sua execução levava de 2 a 3 minutos, e esses parâmetros pareciam aceitáveis. No entanto, uma implementação alternativa utilizando seleções simples e views forneceu um resultado mais rápido — em 2 segundos.

Ficou evidente que era hora de escolher um especialista que passasse pela certificação de toda a pilha do projeto, para entender todos os detalhes e escolher o método ideal. Essa tarefa foi atribuída a Alexey.

As primeiras certificações

Para compreender a essência, Alexey passou por várias certificações Microsoft, abrangendo toda a pilha tecnológica do projeto:

  • TS: Desenvolvimento de Aplicações Windows com Microsoft .NET Framework 4
  • TS: Acesso a Dados com Microsoft .NET Framework 4 Programação em C#
  • TS: Desenvolvimento de Aplicações Windows Forms com Microsoft .NET Framework 3.5
  • PRO: Projetando e Desenvolvendo Aplicações Windows utilizando Microsoft .NET Framework 3.5
  • PRO: Projetando e Desenvolvendo Aplicações Baseadas em Windows usando o Microsoft .NET Framework
  • TS: Microsoft .NET Framework 2.0 — Desenvolvimento de Clientes Baseados em Windows

Buscando otimizar o trabalho em um novo projeto, a equipe chegou às seguintes conclusões:

  • Para o funcionamento dos sistemas, é essencial seguir as regras de escrita de código: não apenas recuos e comentários, mas especificações técnicas — número de acessos aos bancos, carga no servidor e muito mais.
  • A aplicação de conceitos contraditórios pode levar a problemas. O conceito de banco de dados é a teoria dos conjuntos, enquanto ORM é um conceito de operações.
  • Ideias que quebram a ordem estabelecida podem encontrar resistência na equipe. O desenvolvimento também é sobre relacionamentos e a habilidade de argumentar seu ponto de vista.
  • A certificação amplia a visão e permite entender o que pode ser utilizado e o que pode ser dispensado.

Caminho do Arquiteto: Certificação e Imersão no Produto

Passo três: estude não apenas o código

Ao trabalhar em grandes soluções de TI, vários fatores são importantes. Por exemplo, nem todo desenvolvedor presta atenção nos parâmetros de rede — mas até mesmo a largura de banda pode impactar a resolução de um problema de negócios.

Isso é fornecido por certificações da série 98:

Elas permitem uma visão mais ampla das coisas e saírem da concepção limitada de 'apenas código'. São os fundamentos, essenciais para entender tudo em um nível mais profundo.

As certificações da série 98 consistem em pequenos testes — 30 perguntas em 45 minutos.

Passo quatro: gestão de processos

Trabalhar com clínicas é uma tarefa mais responsável do que, por exemplo, criar um jogo para celular. Não se pode apenas adicionar um recurso e lançá-lo — é importante seguir o processo de aprovação e fazer diversas alterações solicitadas pelo cliente, pois está em jogo a saúde e as vidas das pessoas.

O Agile típico não trouxe os resultados desejados neste projeto, e cada sprint durou bastante tempo. Entre os deployments passaram de 6 meses a um ano.

Além disso, tecnicamente era impossível trazer os processos das dez clínicas atendidas a um denominador comum.

Para, nessas condições, obter resultados mais rapidamente, os desenvolvedores precisavam de responsabilidade pessoal e uma visão ampla dos processos — o que significa concentração constante e alta qualificação.

Quando um especialista está imerso no processo, ele vê claramente os resultados, causas e consequências, e a imagem total. Isso é ao mesmo tempo um fator adicional de motivação e conscientização, melhorando a capacidade de resolver tarefas e problemas.

Com uma infraestrutura bem ajustada, arquitetura bem construída e código otimizado, uma pessoa pode assumir muitos processos. No entanto, isso não significa que devemos formar soldados universais que podem liderar um projeto sozinhos. A comunicação e o trabalho em equipe são críticos.

Na equipe, cada desenvolvedor entende que os colegas dependem de suas ações. Economizar 5 minutos na fase de desenvolvimento pode resultar em 5 horas adicionais de testes. Para compreender isso, é importante estabelecer uma boa comunicação.

Em nosso projeto, Alexey contou com o apoio da certificação da EXIN:

  • Certificado M_o_R Foundation em Gestão de Risco
  • Fundação Agile Scrum
  • Fundação em Gestão de Serviços de TI
  • Fundação em Gestão da Informação Empresarial da EXIN
  • Certificado PRINCE2 Foundation em Gestão de Projetos
  • Certificado de Engenheiro de Testes
  • Fundação do Microsoft Operations Framework
  • Projetos de Serviço Ágil

Na edX, foram feitos cursos que ajudaram a olhar para o sistema sob a perspectiva de estatísticas e programação enxuta e que posteriormente motivaram a obter o certificado de arquiteto:

  • Produção Enxuta
  • Six Sigma: Analisar, Melhorar, Controlar
  • Six Sigma: Definir e Medir

Segundo o princípio 'Seis Sigmas', o controle estatístico garante um resultado de qualidade com uma probabilidade extremamente alta.

Ao elevar seu nível, o desenvolvedor, geralmente, chega às seguintes conclusões:

  • Trabalhe não muito, mas de forma eficaz.
  • Não complique a vida em busca do externo: tecnologias sofisticadas não resolvem necessariamente os problemas melhor.
  • Colabore com especialistas em todas as fases do ciclo e identifique suas dores. O arquiteto deve dominar os processos: identificação de problemas, definição de tarefas, projeto de topologias de rede, desenvolvimento, teste, suporte e operação.
  • Verifique cada recurso do início ao fim.
  • Às vezes, os processos de TI não correspondem aos processos de negócios, e é preciso lutar contra isso.

Caminho do Arquiteto: Certificação e Imersão no Produto

Passo cinco: entender a arquitetura através da lente de Big Data.

No projeto, lidamos com bancos de dados bastante grandes. Pelo menos, assim parecia até certo ponto. Quando Alexey começou a estudar Big Data no edX, descobriu que 1,5 Tb no projeto é um pequeno banco de dados. Escalas sérias começam a partir de 10 Tb, e métodos diferentes são necessários.

O próximo passo rumo à certificação foi o curso sobre Big Data. Ele ajudou a entender a organização do fluxo de dados e acelerar operações em produção. Além disso, chamou a atenção para pequenas ferramentas, como começar a usar o Excel para resolver microtarefas específicas.

Certificado:
Microsoft Professional Program: Certificado em Big Data

Caminho do Arquiteto: Certificação e Imersão no Produto

Passo seis: de desenvolvedor a arquiteto.

Após obter todas as certificações mencionadas, ainda como desenvolvedor, Alexey começou a perceber que as informações adquiridas têm um alto nível de abstração, o que não é algo ruim.

Uma visão abrangente dos processos leva ao nível de arquiteto, um dos níveis mais altos de certificação.

Na busca pela certificação de arquiteto, Alexey entrou em contato com Certified Software Architect — Microsoft Platform da Sundblad & Sundblad. Este é um programa reconhecido pela Microsoft, cuja elaboração começou há 14 anos em colaboração entre a sede e o escritório na Suécia. Ele abrange .NET Framework, coleta de requisitos, gestão do fluxo de informações e muitas outras questões em um alto nível, sendo considerado uma validação sólida das habilidades de um arquiteto.

Dentro do programa, houve cursos para estudo. A certificação sistematizou o conhecimento e permitiu um novo salto no desenvolvimento — de desenvolvedor a arquiteto.

Caminho do Arquiteto: Certificação e Imersão no Produto

Em resumo

Como Alexey observa, ao trabalhar com um sistema de TI em larga escala, é importante lembrar que a programação não é um entretenimento caro, mas uma ferramenta para resolver desafios de negócios. Ao enfrentar um desafio, é imprescindível definir o valor de negócio, para que o projeto não se perca.

O arquiteto tem uma visão única sobre programação e seus elementos básicos:

  • Criação e/ou manutenção de fluxo de dados
  • Extração de fluxo de informações com base no fluxo de dados
  • Extração de fluxo de valor com base no fluxo de informações
  • Monetização do fluxo de valor

Ao olhar para um projeto pelos olhos de um arquiteto, é preciso começar pelo fim: formular o valor e, em seguida, chegar até ele através do fluxo de dados.

O arquiteto segue as regras de desenvolvimento, tendo uma visão global do projeto. Chegar a isso por meio da prática e dos próprios erros é praticamente impossível — ou melhor, é, mas muito demorado. A certificação permite expandir a visão e entender o contexto completo de cada questão, familiarizando-se com a experiência de milhares de profissionais e desenvolvendo a habilidade de resolver problemas de forma eficaz.

Hoje, trabalhamos com o sistema médico descrito acima há mais de cinco anos e alcançamos melhorias significativas. Durante esse tempo, Alexey realizou mais de 20 exames de certificação:

  1. TS: Desenvolvimento de Aplicações Windows com Microsoft .NET Framework 4
  2. TS: Acesso a Dados com Microsoft .NET Framework 4 Programação em C#
  3. TS: Desenvolvimento de Aplicações Windows Forms com Microsoft .NET Framework 3.5
  4. PRO: Projetando e Desenvolvendo Aplicações Windows utilizando Microsoft .NET Framework 3.5
  5. PRO: Projetando e Desenvolvendo Aplicações Baseadas em Windows usando o Microsoft .NET Framework
  6. TS: Microsoft .NET Framework 2.0 — Desenvolvimento de Clientes Baseados em Windows
  7. 98-361: Fundamentos do Desenvolvimento de Software
  8. 98-364: Fundamentos de Banco de Dados
  9. Certificado M_o_R Foundation em Gestão de Risco
  10. Fundação Agile Scrum
  11. Fundação em Gestão de Serviços de TI
  12. Fundação em Gestão da Informação Empresarial da EXIN
  13. Certificado PRINCE2 Foundation em Gestão de Projetos
  14. Certificado de Engenheiro de Testes
  15. Fundação do Microsoft Operations Framework
  16. Projetos de Serviço Ágil
  17. Produção Enxuta
  18. Six Sigma: Analisar, Melhorar, Controlar
  19. Six Sigma: Definir e Medir
  20. Microsoft Professional Program: Certificado em Big Data
  21. Certified Software Architect — Microsoft Platform

Caminho do Arquiteto: Certificação e Imersão no Produto

Após passar em todos os exames, Alexey elevou-se de desenvolvedor sênior a arquiteto de projeto. Ao mesmo tempo, a certificação se tornou uma poderosa ferramenta tanto para o desenvolvimento profissional quanto para a construção de reputação aos olhos do cliente.

O “impacto da certificação” ajudou a obter acesso a processos críticos específicos que precisavam de controle e desenvolvimento. Clientes europeus de soluções de TI, em geral, valorizam muito os profissionais certificados e estão dispostos a oferecer mais liberdade de ação a eles.

Obrigado pela atenção! Esperamos que o artigo tenha sido útil para você.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster