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

Quase todo desenvolvedor se pergunta como deve desenvolver suas habilidades e qual direção de crescimento escolher: vertical - ou seja, tornar-se gerente, ou horizontal - full stack. Muitos anos de trabalho em um produto, ao contrário dos mitos, tornam-se não uma limitação, mas uma oportunidade útil. Neste artigo, compartilhamos a experiência de nosso desenvolvedor backend Alexey, que dedicou 6 anos às certificações e durante esse tempo trabalhou até se tornar arquiteto.

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

Quem é arquiteto

Um arquiteto de TI (líder técnico) é um desenvolvedor de alto nível que lida com questões globais em projetos de TI. Ele mergulha nos processos de negócio do cliente e ajuda a resolver seus problemas por meio da tecnologia, além de determinar como será estruturado este ou aquele sistema de informação.

Esse profissional precisa não apenas entender as áreas individuais, mas também ver todo o processo:

  • Definindo um problema de negócios.
  • Desenvolvimento, incluindo programação, preparação, armazenamento e processamento de dados.
  • Implantação e suporte de infraestrutura.
  • Testando.
  • Implantar.
  • Serviços analíticos e operacionais.

Isso significa a capacidade de se colocar no lugar de qualquer especialista ou equipe no ciclo de vida de desenvolvimento, compreender o estado atual dos sistemas por dentro, identificar erros cometidos e formular metas. Às vezes você mesmo precisa realizar a cirurgia.

O caminho de desenvolvimento profissional do desenvolvedor ao arquiteto leva muito tempo - geralmente vários anos. Para isso, o desenvolvedor necessita tanto de habilidades práticas quanto de conhecimentos teóricos, que podem ser comprovados por certificação internacional.

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

Há vários anos, começámos a trabalhar num grande sistema de TI médico para um cliente estrangeiro. Houve alguns problemas neste projeto de grande escala:

  • acesso limitado;
  • estímulo instável;
  • sprints incrivelmente longos e aprovações demoradas.

“É hora de melhorar suas habilidades”“, - um dos principais desenvolvedores Alexey tomou esta decisão para superar as dificuldades listadas e compreender melhor o sistema.

Alexey compartilhou sua experiência, onde é melhor começar a treinar, quais certificados é importante obter, como e por que fazê-lo.

Primeiro passo: melhore seu inglês

As linguagens de programação são parte fundamental do desenvolvimento, mas as linguagens de comunicação são igualmente importantes. Especialmente nas comunicações com um cliente que fala inglês!

Da prática

Um belo dia, Alexey recebeu uma ligação de um funcionário do cliente. Naquela época, nosso desenvolvedor ainda não podia se orgulhar de ter muitos certificados - nem em tecnologia, nem em gestão, nem em comunicações. Talvez eles não fossem úteis - afinal, você pode ser um especialista competente sem regalias adicionais. Mas o problema ainda surgiu.

Devemos compreender que a linguagem falada é radicalmente diferente da linguagem escrita. Se você conhece bem as especificações do inglês, mas não pratica ouvir e falar, temos más notícias para você. Nesse caso, as conversas telefônicas com parceiros podem levar a um beco sem saída.

Alexey captou algumas palavras familiares na ligação, mas a fala de seu colega foi tão rápida e diferente da pronúncia clássica das aulas de áudio que a essência de suas perguntas foi para algum lugar além. Por educação e relutância em complicar a situação, Alexey concordou rapidamente com todas as propostas.

Preciso dizer que descobertas desagradáveis ​​foram feitas durante o trabalho? Nosso desenvolvedor se inscreveu em algo que ele teria recusado de forma absolutamente deliberada se a oferta tivesse vindo em uma linguagem compreensível.

Naquele momento ficou claro que era simplesmente necessário melhorar as habilidades de escuta e fala. A melhor forma de fazer isso foi por meio de certificações.

Certificação de Língua Inglesa

Para melhorar a comunicação no âmbito do 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 me ajudou a começar a ouvir o cliente e transmitir meus pensamentos a ele.

Vida hacking:

Evite programas básicos de inglês. A habilidade deve ser direcionada. Se você precisa de inglês para comunicação empresarial, você deve aproveitá-lo. Só não vá a extremos e faça o CAE (Certificado em Inglês Avançado). Sua peculiaridade são palavras sofisticadas, expressões específicas que quase nunca são utilizadas na comunicação internacional.

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

Etapa dois: certificação em toda a pilha de tecnologia

Inicialmente, o projeto foi baseado na tecnologia de mapeamento objeto-relacional ORM. A equipe de desenvolvimento do lado do cliente ficou orgulhosa de sua ideia, pois tudo foi feito a partir de conceitos avançados, complexos e bacanas.

No entanto, problemas na produção – em particular, um servidor SQL constantemente travado – não eram incomuns. Chegou ao ponto em que a solução típica para o problema era reiniciar o serviço. O cliente ligou para o líder da equipe e disse que era hora de reiniciar. Finalmente decidimos acabar com isso.

O cliente queria avaliar o desempenho do sistema - para isso foi necessário introduzir perfis e realizar otimizações regularmente. Naquela época, por volta de 2015, o Ants Profiler foi escolhido como ferramenta de criação de perfil, mas teve um desempenho ruim. Com poucos detalhes, era difícil obter informações sobre um bloco crítico de código. Com o máximo de detalhes, o Ants Profiler começou a alterar o código de tal forma que a funcionalidade dos sistemas estava em risco - onde o perfil era configurado, tudo simplesmente travava. Então mudamos nossa abordagem.

Começamos analisando estatísticas

Ao analisar as estatísticas de vendas, ficou claro que 95% do trabalho no servidor possui uma lógica de negócio primitiva de 4 linhas. Para eles, bastava uma consulta SQL, e não um conjunto completo de consultas geradas por um bloco lógico de negócios com um ORM.

Alexey propôs e implementou um procedimento armazenado para mover trabalho sem ORM. A ideia contrariava o paradigma habitual do projeto, o líder da equipa recebeu-a com cautela, mas o cliente aceitou tudo e solicitou a implementação. Isso não foi surpreendente, porque o novo método permitiu reduzir os atrasos no processamento e na produção de quatro horas para vários minutos - em média 98 vezes.

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

Caso dois

A equipe escreveu uma consulta para trabalhar com dados dentro do paradigma ORM, compilados de acordo com todas as regras, sem erros. Seu processamento levou de 2 a 3 minutos e esses parâmetros pareciam aceitáveis. No entanto, uma implementação alternativa usando seletores e visualizações simples forneceu resultados mais rápidos - em 2 segundos.

Tornou-se óbvio que era hora de escolher um especialista que passaria pela certificação em toda a pilha de projetos para entender todas as nuances e escolher o método ideal. Alexey assumiu esta tarefa.

Primeiros certificados

Para entender a essência, Alexey passou diversas certificações Microsoft, cobrindo toda a pilha de tecnologia do projeto:

  • TS: Desenvolvimento de aplicativos Windows com Microsoft .NET Framework 4
  • TS: Acessando dados com programação do Microsoft .NET Framework 4 em C#
  • TS: Desenvolvimento de aplicativos Microsoft .NET Framework 3.5 Windows Forms
  • PRO: Projetando e desenvolvendo aplicativos Windows usando Microsoft .NET Framework 3.5
  • PRO: Projetando e desenvolvendo aplicativos baseados em Windows usando o Microsoft .NET Framework
  • TS: Microsoft .NET Framework 2.0 - Desenvolvimento de cliente baseado em Windows

Tentando otimizar o trabalho no novo projeto, a equipe chegou às seguintes conclusões:

  • Para que os sistemas funcionem, é necessário seguir as regras de escrita de código: não recuos e comentários, mas características técnicas - número de chamadas aos bancos de dados, carga no servidor e muito mais.
  • Aplicar conceitos conflitantes pode causar problemas. O conceito de bancos de dados é a teoria dos conjuntos, enquanto ORM é um conceito de operações.
  • Idéias que perturbam a ordem normal das coisas podem encontrar resistência dentro da equipe. O desenvolvimento também envolve relacionamentos e a capacidade de defender seu ponto de vista.
  • A certificação amplia seus horizontes e permite entender o que pode e o que não pode ser usado.

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

Etapa três: aprenda mais do que código

Ao trabalhar em soluções de TI em larga escala, muitos fatores são importantes. Por exemplo, nem todo desenvolvedor presta atenção aos parâmetros da rede, mas até mesmo sua largura de banda pode afetar a solução de um problema de negócios.

Compreender isso é dado Certificação da série 98:

Eles permitem que você tenha uma visão mais ampla das coisas e saia do conceito limitado de “apenas código”. São Fundamentos, o básico, mas são importantes para entender tudo em um nível mais profundo.

As certificações da Série 98 são testes curtos - 30 perguntas por 45 minutos.

Etapa Quatro: Gerenciamento de Processos

Trabalhar com clínicas é uma tarefa mais importante do que, digamos, criar um jogo para celular. Aqui você não pode adicionar um recurso e implementá-lo para produção - é importante seguir o processo de aprovação e fazer inúmeras edições por parte do cliente, porque a saúde e a vida das pessoas estão em jogo.

O Agile típico não produziu os resultados desejados neste projeto e cada sprint durou bastante tempo. Entre as implantações demorou de 6 meses a um ano.

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

Para obter resultados mais rapidamente nessas condições, os desenvolvedores precisavam de responsabilidade pessoal e uma visão em larga escala dos processos – o que significa concentração constante e altas qualificações.

Quando um especialista está imerso no processo, ele vê claramente os resultados, as causas e as consequências, o quadro completo. Este é ao mesmo tempo um fator de motivação e consciência adicional, melhorando a capacidade de resolução de problemas e problemas.

Com uma infraestrutura que funcione bem, uma arquitetura bem construída e um código ideal, uma pessoa pode assumir muitos processos. Contudo, isto não significa que seja necessário formar soldados universais que sejam capazes de liderar sozinhos o projecto. Comunicação e trabalho em equipe são críticos.

Em equipe, cada desenvolvedor entende que seus colegas dependem de suas ações. Economizar 5 minutos durante a fase de desenvolvimento significa talvez 5 horas adicionais de teste. Para entender isso, é importante estabelecer comunicações.

Em nosso projeto, Alexey recebeu ajuda no domínio dos processos certificados do EXIN:

  • Certificado M_o_R Foundation em Gestão de Risco
  • Fundação Agile Scrum
  • Fundação de gerenciamento de serviços de TI
  • Fundação de gerenciamento de informações comerciais EXIN
  • Certificado PRINCE2 Foundation em Gerenciamento de Projetos
  • Certificado de Engenheiro de Teste
  • Fundação da Estrutura de Operações da Microsoft
  • Projetos de serviços ágeis

Foram realizados cursos sobre edX que ajudaram a olhar o sistema do ponto de vista da estatística e da programação enxuta e posteriormente impulsionados para obter certificado de arquiteto:

  • Produção Lean
  • Seis Sigma: Analisar, Melhorar, Controlar
  • Seis Sigma: Definir e Medir

De acordo com o princípio Seis Sigma, o controle estatístico garante um resultado de alta qualidade com probabilidade extremamente alta.

Aumentando seu nível, o desenvolvedor, via de regra, chega às seguintes conclusões:

  • Não trabalhe duro, mas trabalhe com eficiência.
  • Não complique a sua vida perseguindo o exterior: a tecnologia sofisticada não resolve necessariamente melhor os problemas.
  • Faça amizade com especialistas em todas as fases do ciclo e descubra seus pontos fracos. Um arquiteto deve dominar os processos: identificar um problema, definir um problema, projetar uma topologia de rede, desenvolvimento, teste, suporte, operação.
  • Verifique todos os recursos por dentro e por fora.
  • Acontece que os processos de TI não correspondem aos processos de negócio e isso deve ser resolvido.

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

Etapa cinco: entender a arquitetura pelas lentes do Big Data

Durante o projeto lidamos com bancos de dados bastante grandes. Pelo menos parecia assim até certo momento. Quando Alexey começou a estudar big data no edX, descobriu-se que 1,5 TB do projeto era um pequeno banco de dados. Escalas sérias - a partir de 10 TB, e outros métodos são necessários lá.

O próximo passo para a certificação foi um curso sobre big data. Ele ajudou a entender a organização do fluxo de dados e a acelerar as operações de produção. E preste atenção também nas pequenas ferramentas, por exemplo, comece a usar o Excel para resolver microtarefas individuais.

Certificado:
Programa Microsoft Professional: Certificado de Big Data

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

Sexto passo: do desenvolvedor ao arquiteto

Depois de receber todos os certificados listados, ainda desenvolvedor, Alexey começou a entender que as informações recebidas tinham um alto nível de abstração, e isso estava longe de ser ruim.

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

Em busca da certificação de arquiteto, Alexey veio para Arquiteto de Software Certificado - Plataforma Microsoft por Sundblad & Sundblad. Este é um programa reconhecido pela Microsoft, o seu desenvolvimento começou há 14 anos com a cooperação da sede da empresa e dos escritórios suecos. Abrange o .NET Framework, coleta de requisitos, gerenciamento de fluxo de informações e muitos outros tópicos de alto nível e é considerado um forte testemunho das habilidades de um arquiteto.

Havia cursos para estudar dentro do programa. A certificação sistematizou o conhecimento e nos permitiu entrar em uma nova etapa de desenvolvimento - de desenvolvedor a arquiteto.

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

Resumindo

Como observa Alexey, ao trabalhar com um sistema de TI de grande escala, é importante lembrar que a programação não é um entretenimento caro, mas uma ferramenta para resolver problemas de negócios. Ao se deparar com este ou aquele desafio, você definitivamente precisa anotar o valor do negócio para que o projeto não chegue a um beco sem saída.

O arquiteto tem uma visão especial da programação e de seus componentes elementares:

  • Criação e/ou manutenção de um fluxo de dados
  • Extraindo fluxo de informações do fluxo de dados
  • Extraindo fluxo de valor do fluxo de informações
  • Monetização do Fluxo de Valor

Se você olha um projeto pelos olhos de um arquiteto, é preciso começar pelo fim: formular o valor e depois ir até ele através do fluxo de dados.

O arquiteto segue as regras de desenvolvimento, tendo uma visão global do projeto. É quase impossível alcançá-lo através da prática e dos seus próprios erros – ou melhor, é possível, mas levará muito tempo. A certificação permite ampliar horizontes e olhar o contexto completo de cada questão, conhecer a experiência de milhares de profissionais e desenvolver a habilidade de resolução eficaz de problemas.

Até o momento, trabalhamos com o sistema médico descrito acima há mais de cinco anos e alcançamos melhorias significativas. Durante esse período, Alexey passou em mais de 20 exames de certificação:

  1. TS: Desenvolvimento de aplicativos Windows com Microsoft .NET Framework 4
  2. TS: Acessando dados com programação do Microsoft .NET Framework 4 em C#
  3. TS: Desenvolvimento de aplicativos Microsoft .NET Framework 3.5 Windows Forms
  4. PRO: Projetando e desenvolvendo aplicativos Windows usando Microsoft .NET Framework 3.5
  5. PRO: Projetando e desenvolvendo aplicativos baseados em Windows usando o Microsoft .NET Framework
  6. TS: Microsoft .NET Framework 2.0 - Desenvolvimento de cliente baseado em Windows
  7. 98-361: Fundamentos de 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 de gerenciamento de serviços de TI
  12. Fundação de gerenciamento de informações comerciais EXIN
  13. Certificado PRINCE2 Foundation em Gerenciamento de Projetos
  14. Certificado de Engenheiro de Teste
  15. Fundação da Estrutura de Operações da Microsoft
  16. Projetos de serviços ágeis
  17. Produção Lean
  18. Seis Sigma: Analisar, Melhorar, Controlar
  19. Seis Sigma: Definir e Medir
  20. Programa Microsoft Professional: Certificado de Big Data
  21. Arquiteto de Software Certificado - Plataforma Microsoft

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

Depois de passar em todos os exames, Alexey passou de desenvolvedor líder a arquiteto de projetos. Ao mesmo tempo, a certificação tornou-se uma ferramenta poderosa tanto para o desenvolvimento profissional como para a construção de reputação aos olhos do cliente.

O “Certification Ram” ajudou a obter acesso a processos críticos individuais que precisavam de controle e elaboração. Os clientes europeus de soluções de TI, em regra, valorizam muito os especialistas certificados e estão dispostos a dar-lhes mais liberdade de ação.

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

Fonte: habr.com

Adicionar um comentário