METODOLOGIA

Você aprende porque você entende

Você entende porque faz sentido

Prefácio
Por que aprender mais rápido e de forma mais eficiente do que está acostumado?
A estratégia adotada no Cloud Native .NET é fruto de mais de 21 anos de experiência, auxiliando desenvolvedores desde os primeiros meses de trabalho.
Talvez você tenha visto depoimentos de 2005, relatando como ajudei outros desenvolvedores desde 2002. Se viu, entenderá que isso não é mera autopromoção, mas sim a realidade.
A metodologia que você encontra em todo conteúdo, em todo post, em todo vídeo e principalmente do lado de dentro é pautada na ideia de que:
Se fizer sentido, você vai entender,
se você entender, o conhecimento fará parte de você.
Só é possível alcançar a clareza com teoria e prática.

A metodologia se baseiem:
Entender a teoria para obter clareza,
praticar para aprender a fazer,
com a intenção de aumentar a clareza,
até que faça sentido lógico,
para que faça parte de você.
Dessa forma que matamos fantasmas,
eliminamos percepções erradas,
e produzimos intimidade com o assunto.
A metodologia nasceu da prática e se amparou em estudos para entender seu sucesso.
Foi desenhada para otimizar a aprendizagem e garantir a compreensão completa dos conceitos e práticas envolvidas em cada tecnologia, pattern, framework, estratégia e tática.
Ela se baseia em uma série de princípios fundamentais, detalhados a seguir:

Foco no raciocínio lógico

Ao enfatizar a importância de entender os fundamentos por trás de cada tecnologia e conceito, em vez de simplesmente memorizar comandos e truques. Buscamos que o aluno/mentorado assimile os conhecimentos de forma mais profunda e duradoura. O aluno/mentorado é incentivado a analisar criticamente os problemas e soluções arquiteturais, usando o pensamento lógico para tomar decisões mais assertivas. Essa abordagem permite eliminam dias, semanas, ou até meses de pura incompreensão e confusão que geram frustração e na maior parte dos casos desistência.

Conexão entre teoria e prática

Ao abranger todas as etapas do desenvolvimento de software, desde o entendimento e análise até o projeto, desenvolvimento, implantação e manutenção, garanto que você esteja atento e mais bem preparado para tomar ou simplesmente executar. Ao buscar conectar a teoria à prática, garantimos que você possa aplicar os conhecimentos adquiridos em situações reais. Isso ajuda a solidificar o aprendizado e a desenvolver habilidades práticas que serão úteis em sua carreira.

Colaboração e compartilhamento de experiências:

Promovendo um ambiente colaborativo em que os participantes são incentivados a compartilhar suas experiências e conhecimentos. Isso ajuda a criar uma rede de apoio e promove o aprendizado conjunto, enriquecendo a experiência de todos os envolvidos.

Compromisso com a excelência

A metodologia é fundamentada na busca pela excelência em todos os aspectos do desenvolvimento de software. Isso inclui a seleção cuidadosa de conteúdos, a aplicação de técnicas e práticas comprovadas e o compromisso em fornecer aos participantes as ferramentas e recursos necessários para alcançar seus objetivos profissionais.

Validação offline e online

Isso é possível pela adoção da mesma metodologia que utilizei no dia-a-dia em times em que tive de ajudar a entender, analisar, projetar, desenvolver, implantar e manter. Não apenas como arquiteto, mas também ajudando a diminuir a curva de aprendizado e facilitando a adoção e aceitação de novas abordagens e tecnologias em times e projetos.

Evitando paralisia

Ao aprender uma tecnologia ou um pattern, usando simplesmente a memória, lacunas de conhecimento em geral assuntos pequenos, que muitas vezes são sanados com explicações curtas, mas que eliminam dias, semanas, ou até meses de incompreensão, confusão e frustração.

Tornando a jornada prazerosa

Ao priorizar o fluxo botton-up (de baixo para cima), onde criamos bases sólidas para a compreensão plena antes de avançar para conceitos mais complexos. Ao escolher cuidadosamente a seqüência, cuidamos para que cada assunto seja ou contenha uma, ou mais premissas para o entendimento do próximo assunto. Dessa forma reforçamos o entendimento do assunto anterior e facilitamos a compreensão do próximo. Isso facilita a compreensão e a aplicação prática dos conceitos aprendidos, além de aumentar a confiança dos participantes em suas habilidades.
Ao percorrer esse cronograma buscando abrangência e profundidade, simultaneamente, sem travas, a jornada se torna fluida, e até divertida. Sem a pressão de uma prova, um prazo, você tem tempo de curtir o aprendizado, de descobrir, de ficar surpreso, de se sentir motivado ao entender o que parecia complexo demais, ou abstrato demais.

Essa é a receita

É dessa forma que conseguimos multiplicar seu tempo. A metodologia visa oferecer um aprendizado completo, eficiente e prazeroso. Ela se baseia em princípios sólidos e comprovados, garantindo que os desenvolvedores .NET, líderes técnicos e arquitetos estejam bem preparados para enfrentar os desafios do mundo da tecnologia e se destacar no mercado.

O método socrático busca afastar a opinião para alcançar o conhecimento.

Quando conseguimos despir um assunto técnico da opinião, ou mesmo mostrar diversos contrapontos, mostrando defensores e detratores, lado-a-lado, sem tomar partido, conseguimos entender pontos de vista antagônicos, interesses, objetivos.
Desprovidos da paixão por uma tecnologia ou solução, conseguimos olhar com frieza, buscando os fundamentos, encontramos vieses que nos deixam pistas sobre à verdade.

Ferramentas

As ferramentas dão suporte à metodologia criando um framework de tomada de decisão que ajuda dar clareza na hora de desenhar estratégias em cenários simples e complexos.

E. A. P. D. I. M.

A metodologia proposta para aprendizado de arquitetura de soluções e arquitetura de software pode ser chamada de "EAPDIM" (Entender, Analisar, Projetar, Desenvolver, Implantar e Manter). Essas etapas descrevem o ciclo de vida de um projeto de software e formam as capacidades que um aluno adquire ao concluir o curso.

Entender

Capacidade de compreender os requisitos do sistema, a estrutura organizacional e os objetivos de negócio. Conseguir compreender soluções projetadas por outros, desenhos arquiteturais, entender para que serve cada elemento, entender o propósito de cada decisão. Isso envolve a comunicação eficaz com os stakeholders, a identificação de necessidades e a tradução dessas necessidades em requisitos técnicos.

Analisar

Produzir senso crítico e conseguir formar um juízo de valor sobre cada elemento de um desenho arquitetural. Capacidade de avaliar os requisitos e os componentes existentes do sistema, identificar os principais problemas e oportunidades de melhoria. Isso inclui a realização de análises de viabilidade, a identificação de riscos e a proposição de soluções alternativas.

Projetar

Capacidade de criar uma arquitetura de solução ou software que atenda aos requisitos e objetivos do negócio. Isso envolve a definição da estrutura do sistema, a seleção de tecnologias e padrões, e a elaboração de modelos e diagramas que descrevam a arquitetura proposta.

Desenvolver

Não adianta nada, entender, analisar, e projetar sem saber tornar aquilo real. Portanto, aprendemos a colocar a mão na massa e vamos codificar aquilo que aprendemos. Capacidade de implementar a arquitetura projetada por meio da codificação, integração e teste dos componentes do sistema. Isso inclui a escrita de código eficiente e escalável, a criação de APIs e interfaces, e a realização de testes unitários, de integração e de sistema para garantir a qualidade do software.

Implantar

Hora de nos preocuparmos com o ciclo de vida de implantação e posteriormente manutenção, fechando assim o ciclo de vida das soluções que produzimos. Capacidade de colocar a solução em produção, garantindo que ela esteja acessível e funcional para os usuários finais. Isso envolve a configuração do ambiente de produção, a automação de processos de implantação e a monitoração do desempenho e da disponibilidade do sistema.

Manter

Capacidade de monitorar, atualizar e aprimorar o software ao longo do tempo, garantindo sua relevância e eficácia contínua. Isso inclui a realização de manutenção corretiva, adaptativa e evolutiva, a identificação de problemas e a implementação de melhorias, e a garantia da compatibilidade com as mudanças nos requisitos e nas tecnologias subjacentes.

Ao dominar essas capacidades, os alunos estarão preparados para projetar, desenvolver e manter soluções de software eficientes e eficazes, adaptando-se às necessidades em constante evolução dos negócios e da indústria.

5W2H

Com base no 5W2H, conseguimos percorrer os principais aspectos de cada macro ou micro decisão técnica. Podemos usá-lo para avaliar se uma tecnologia, uma ideia, ou mesmo uma solução inteira faz sentido, ou não conforme o contexto.

What | o que será feito?

Entendimento e clareza sobre os passos a serem executados.

Why | por que será feito?

Clareza sobre o motivo que leva à aquela necessidade, e quais seus impactos positivos e negativos, inclusive quais impactos em não realizar uma atividade.

Where | onde será feito?

Qual é o lugar mais adequado para implementar um recurso? Na aplicação, em um componente de infraestrutura? Ou em um framework corporativo? Qual a melhor decisão a ser tomada quando pensamos em onde realizar uma tarefa?

When | quando?

É preciso ser estratégico para saber qual é o melhor momento ou o pior momento para se realizar uma mudança ou refatoração, ou mesmo a criação de algum elemento. É importante saber lidar com as questões que vão além do código.

Who | por quem será feito?

Disponibilidade, skill, oportunidade, autonomia ou responsabilidade: Quem é, naquele momento, o ator mais adequado para o determinado papel?

How | como será feito?

Não adianta saber delegar, é preciso saber fazer para conseguir educar, ajudar, prever erros. Conhecer os detalhes da execução é fundamental para entender o esforço, a complexidade e conseguir ensinar, educar e fazer com o mínimo de riscos.

How much | quanto vai custar?

O fator custo é fundamental na tomada de decisão. Saber quanto custa, quando economiza, quanto gasta é fundamental para conseguir dimensionar

Essas são as habilidades que você constrói aqui.

E quando você for capaz de responder essas perguntas,
você será considerado um estrategista técnico!

Ainda precisa de mais informações?

Cadastre-se para que eu possa te ajudar com informações adicionais para sua tomada de decisão, incluindo novidades e notícias, cases de alunos e descontos e datas e muito mais.