Mudança nunca é fácil. Em uma organização, então, este tema costuma ser algo bem complicado. A execução da estratégia implica na evolução/adequação da Arquitetura Corporativa em todos os seus domínios. Há resistências que precisam ser superadas, alianças que precisam ser estabelecidas, processos que precisam ser desenvolvidos e implantados, organograma atualizado, pessoas contratadas e treinadas, infraestrutura […]
Complexity is Cost! Ignore this and your project will fail
In software development, complexity means cost. So it must be fought! In all our consultancies, we repeat the maxim exhaustively that complexity is cost. So it must be fought! Transforming business through digital resources implies the development of these. The development of digital resources means the management of three distinct sources of cost complexity: […]
Os perigos da “incompetência motivada”
Há alguns Gente competente precisa ter conhecimento, habilidade e atitude. Sem conhecimento, nem mesmo a melhor atitude conseguirá gerar resultados sustentáveis. Sem habilidade, nem o melhor conhecimento tornará um projeto viável. Se você tem conhecimento, mas não tem habilidade (leia-se experiência), então, por definição, ainda não é competente. Se você tem boa atitude (disposição para […]
Microsserviços (não) são a única alternativa para dar mais autonomia para os times
Uma justificativa recorrente adoção de arquiteturas baseadas em microsserviços é o ganho de autonomia para os times. A ideia está bastante alinhada com a lei de Conway que indica que, de muitas formas, a organização dos componentes de um sistema impacta na estrutura da organização e vice-versa. Não há dúvidas quanto aos benefícios de criar […]
Contratos é uma maneira eficiente de garantirmos a comunicação entre serviço
O uso exclusivo de Stubs para testar a comunicação entre serviços é frágil. Ao deixarmos de emular o ambiente de produção não estamos garantido devidamente que a comunicação ocorrerá. Testes de contrato é uma excelente maneira de reduzir este problema. Seu principal foco é reforçar os pontos de integração entre serviços executando, de maneira isolada, […]
Diferenças entre modificar um sistema legado e um sistema bem desenvolvido e mantido.
Em bases de código grandes, toda modificação exige do desenvolver algum tempo “aprendendo” sobre o trecho de código que irá ser alterado. Em sistemas bem desenvolvidos e mantidos, depois do “esforço inicial” para entender o código, fazer a modificação é tarefa fácil e consome pouco tempo. Além disso, o desenvolvedor fica mais confiante. Em sistemas […]
Time com método de trabalho legado produz software legado
Empresas que desenvolvem software replicam em seus sistemas sua estrutura de comunicação interna. Por isso, times monolíticos produzem sistemas monolíticos, times obsoletos criam software com tecnologias obsoletas, etc. Nessa mesma linha de raciocínio, times com método de trabalho