Antecipando o sucesso de uma arquitetura de software emergente em times ágeis

Post on 13-Apr-2017

56 views 0 download

Transcript of Antecipando o sucesso de uma arquitetura de software emergente em times ágeis

Antecipando o Sucesso de uma

Arquitetura de Software Emergente

em Times Ágeis Sérgio GiraldoBelém - 2016

Sérgio Giraldo

Físico de formação, engenheiro de software por paixão, ágil por convicção.

Itaú e HSBC durante 10 anos , arquiteto de software e transformador ágil.

Globant desde 2015, arquiteto de software e agile coach.

“Quality in a service or product is not what you put

into it. It is what the client or customer

gets out of it.”

Peter Drucker

The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.

Indivíduos e interaçõesmais que processos e ferramentas

Software em funcionamento mais que documentação abrangente

Colaboração com o cliente mais que negociação de contratos

Responder a mudanças mais que seguir um plano

Indivíduos e interaçõesmais que processos e ferramentas

Software em funcionamento mais que documentação abrangente

Colaboração com o cliente mais que negociação de contratos

Responder a mudanças mais que seguir um plano

Arquitetura emergente

Instabilidade nos requisitosRisco técnicoValor rapidamenteCulturaExperiência em arquitetura

Responder a mudanças Mitigar riscos Arquitetura emergente Bduf Frameworks e modelos

Instabilidade nos requisitos

Efeito causado por requisitos incompletos ou em mudança

Risco técnico

Arquitetura muito complexa leva a risco técnico.

Causas Requisitos arquiteturalmente significativos; Integrações com outros sistemas; Envolvimento com sistemas legados.

Valor Rapidamente

Receber valor o mais rápido possível.O seu cliente precisa receber algo significativo do sistema antes de todas as funcionalidades estarem prontas, e.g., um MVP

Cultura do seu time

Se o seu time tem uma mentalidade ágil, isto auxilia a responder a mudanças rapidamente.

Fatores chave: Colaboração; Confiança; Tamanho do time; Experiência com Ágil

Cultura da empresa

Qual o ambiente em que acontece o desenvolvimento? Uma empresa que é simpática aos princípios da agilidade auxilia um time a ser ágil

Experiência em arquitetura

Arquitetura em times ágeis é uma disciplina compartilhada. Um time experiente é capaz de tomar decisões baseadas em conhecimentos prévios; caso contrário, as decisões necessitam ser mais explicitadas.

Instabilidade nos requisitosRisco técnicoValor rapidamenteCulturaExperiência em arquitetura

Responder a mudanças

Sua arquitetura deve estar aberta a modificações e representa continuamente a melhor solução para o problema.

Mitigar riscos

O time faz a o design de arquitetura o suficiente para reduzir o risco a um nível satisfatório (aqui temos o nível em que não há riscos capazes de inviabilizar o projeto).

Arquitetura emergente

O time faz apenas o necessário no início (define a tecnologia e os padrões elementares de arquitetura) e relega as outras decisões para a implementação.

Design completo antecipado (BDUF)

Aqui o time faz o design completo da arquitetura antes do início de qualquer atividade de implementação

Utilização de frameworks e modelos

Uso de modelos e componentes existentes às expensas de restrições adicionais aplicadas ao sistema.

Responder a mudançasMitigar riscosArquitetura emergenteBdufFrameworks e modelos

Adaptado de Michael Waterman

Muito obrigado!

Emailsergio@giraldo.com.br

Linkedin https://br.linkedin.com/in/sergiorgiraldo