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

25
Antecipando o Sucesso de uma Arquitetura de Software Emergente em Times Ágeis Sérgio Giraldo Belém - 2016

Upload: sergio-giraldo-pmi-acp-psm

Post on 13-Apr-2017

55 views

Category:

Software


0 download

TRANSCRIPT

Page 1: 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

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

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.

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

“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

Page 4: Antecipando o sucesso de uma arquitetura de software emergente em times ágeis
Page 5: Antecipando o sucesso de uma arquitetura de software emergente em times ágeis

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.

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

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

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

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

Page 8: Antecipando o sucesso de uma arquitetura de software emergente em times ágeis
Page 9: Antecipando o sucesso de uma arquitetura de software emergente em times ágeis

Arquitetura emergente

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

Instabilidade nos requisitosRisco técnicoValor rapidamenteCulturaExperiência em arquitetura

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

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

Instabilidade nos requisitos

Efeito causado por requisitos incompletos ou em mudança

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

Risco técnico

Arquitetura muito complexa leva a risco técnico.

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

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

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

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

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

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

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

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

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.

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

Instabilidade nos requisitosRisco técnicoValor rapidamenteCulturaExperiência em arquitetura

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

Responder a mudanças

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

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

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).

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

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.

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

Design completo antecipado (BDUF)

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

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

Utilização de frameworks e modelos

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

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

Responder a mudançasMitigar riscosArquitetura emergenteBdufFrameworks e modelos

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

Adaptado de Michael Waterman

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

Muito obrigado!

[email protected]

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