Conheça o blog técnico de Carlos Diego
Áreas de atuação com linhas de pesquisa, desenvolvimento e assessoria técnica em Engenharia de Software, Sistemas Distribuídos e Computação em Nuvem.
Arquitetura de Software
A Arquitetura de Software é um ramo da Engenharia de Software que se concentra na concepção, estruturação e evolução de sistemas computacionais complexos. Ela aborda os aspectos fundamentais de design e organização de software, guiando o desenvolvimento de soluções tecnológicas que atendam a requisitos funcionais (o que o sistema deve fazer) e não funcionais (como o sistema deve se comportar). A disciplina abrange práticas, padrões e princípios que orientam a criação de estruturas de software bem projetadas, escaláveis, seguras e sustentáveis ao longo do tempo. A atuação da Arquitetura de Software vai além do planejamento técnico. Envolve a análise de requisitos, a definição de padrões arquiteturais (como monolítico, microsserviços, serverless ou event-driven), e a escolha de tecnologias e frameworks que melhor atendam às necessidades do projeto e do negócio. Arquitetos de software trabalham em colaboração com equipes de desenvolvimento, operações e stakeholders para alinhar a solução tecnológica aos objetivos estratégicos da organização. Essa interação multidisciplinar é essencial para garantir que as decisões arquiteturais levem em conta aspectos como custo, desempenho, segurança, usabilidade e manutenibilidade.
Padrões de Arquitetura de Software;
Governança de Arquitetura de Software;
Avaliação e Diagnóstico de Padrões de Arquitetura de Software.
Processos de Desenvolvimento de Software
Processos de Desenvolvimento de Software envolve a definição, implementação, monitoramento e melhoria contínua de metodologias e práticas que orientam todas as etapas de criação de software, desde a concepção até a entrega. Essa área é crucial para garantir que as equipes de desenvolvimento sigam abordagens estruturadas, produtivas e alinhadas aos objetivos organizacionais, promovendo qualidade, eficiência e previsibilidade no ciclo de vida do software. Os processos de desenvolvimento podem variar entre abordagens tradicionais, como o Modelo Cascata, e metodologias ágeis, como Scrum, Kanban e SAFe. A escolha e a adaptação do processo dependem de fatores como o tipo de projeto, as necessidades do cliente, a cultura organizacional e o grau de incerteza nos requisitos. O principal objetivo é garantir que o software seja entregue dentro do prazo, do orçamento e com a qualidade esperada. A atuação nessa área inclui várias responsabilidades, como a definição do processo de desenvolvimento, onde práticas e ferramentas são selecionadas para facilitar a colaboração, a rastreabilidade e o controle de qualidade. Profissionais dessa área também desempenham papéis importantes na integração de equipes multidisciplinares, assegurando que desenvolvedores, analistas, designers, testadores e stakeholders trabalhem de maneira coesa.
Avaliação de Processos de Desenvolvimento de Software;
Estratégia e Modelagem de Processos de Desenvolvimento de Software;
Modelos de Maturidade de Processos de Desenvolvimento de Software.
Production-Ready Systems
Um software é considerado pronto para produção se for capaz de atender às demandas de seus usuários. Isso inclui facilidade de uso, confiabilidade e disponibilidade. Várias equipes de software avaliam esses critérios de maneiras diferentes, mas as equipes Agile confiam na aceitação de histórias de usuários para validar a usabilidade e em testes automatizados para validar a confiabilidade. A última parte, disponibilidade, significa que o software deve estar disponível para uso (por exemplo, deve estar em produção). As equipes ágeis maximizam a disponibilidade aproveitando implantações automatizadas e praticando a entrega contínua.
Avaliação de Sistemas Prontos para Produção;
Análise e Diagnóstico de Gaps;
Plano de Melhoria e Assessoria Técnica.
SaaS Architecture
O modelo de entrega de software como serviço (SaaS) apresenta uma série de desafios aos desenvolvedores, a partir do estabelecimento de um novo cenário de considerações técnicas, operacionais e de implantação para esses produtos. Adotar o perfil de SaaS geralmente significa repensar os fundamentos de todo o negócio, não apenas a partir da perspectiva técnica, mas também, da perspectiva organizacional. Para apoiar as organizações nessa trajetória de adoção de um modelo de software como serviço, aplica-se o SaaS Enablement Framework. O objetivo é fornecer um roteiro para o desenvolvimento, operação e lançamento de ofertas de SaaS na nuvem. A partir da classificação das práticas recomendadas de SaaS e compensações de design, é possível viabilizar catalisadores para a comunidade SaaS.
Avaliação da Estrutura de Habilitação de SaaS;
Acessando, Construindo e Gerenciando SaaS;
Perfil, Venda e Faturamento de SaaS.
Computação em Nuvem
Computação em Nuvem é uma abordagem de engenharia de software que se concentra na criação de aplicativos para execução em um ambiente de computação em nuvem. Esses aplicativos são projetados para capitalizar as características inerentes de um modelo de entrega de software de computação em nuvem. Cloud native refere-se a uma abordagem para construir aplicativos ou serviços para a nuvem, bem como as características desses aplicativos e serviços. Os aplicativos nativos da nuvem são mais fáceis de atualizar porque são feitos de microsserviços executados em contêineres, o que significa que o aplicativo é dividido em partes que podem ser atualizadas individualmente. As equipes de DevOps usam integração e entrega contínuas (CI/CD) para manter sua parte de um aplicativo atualizada.
Avaliação de Arquiteturas de Software;
Estratégia e Construção de Aplicações Modernas e Nativas em Nuvem;
Estruturação de Equipe Técnica.
Cloud Capacity Planning
O planejamento da capacidade examina quais sistemas estão em vigor, mede seu desempenho e determina os padrões de uso que permitem ao planejador prever a demanda. Um sistema usa recursos para satisfazer as demandas de computação em nuvem que incluem processador, memória, armazenamento e capacidade de rede. O planejamento da capacidade é determinar a capacidade de uma linha de produção, departamento de serviço ou função de atender a uma demanda específica durante um período de tempo. Inerentes a isso estão as ações necessárias para ajustar a capacidade do sistema de atender à demanda.
Avaliação de Planejamento de Capacidade;
Estratégia e Modelagem de Dimensionamento;
Classificação Arquitetural, Definição de Equações de Dimensionamento e Análise de Índice de Confiança.
Workshops personalizados para clientes corporativos com foco na adoção bem-sucedida de arquiteturas nativas e confiáveis na nuvem.
Palestras corporativas e acadêmicas sobre os temas:
Ciência da Computação
Engenharia de Software;
Sistemas Distribuídos;
Computação em Nuvem.
Ciências Integradas
Ciências;
Empreendedorismo;
Desenvolvimento Humano.
Entre em contato para obter maiores informações sobre as palestras atualmente proferidas em cada um dos temas relacionados.