MDSI - Sessão II
MDSI - Sessão II
MDSI - Sessão II
METODOLOGIA DE DESENVOLVIMENTO
DE SISTEMAS DE INFORMAÇÃO
3
INTRODUÇ
Cada vez mais percebemos um aumento da pressão de mercado nas
ÃO
organizações em relação à necessidade por inovação, maximização da
produtividade, entregas mais rápidas, minimização dos custos, dentre
outros fatores que fazem com que as empresas apresentem uma maior
vantagem competitiva frente a seus concorrentes.
Nesse contexto, dominado por projetos que geralmente não obtém
sucesso, seja por atrasos ou até mesmo cancelamento, surgem as
metodologias ágeis, com o propósito de modificar a forma de
desenvolvimento de sistemas, apostando na satisfação do cliente como
maior prioridade.
A partir de agora estudaremos os principais conceitos das metodologias
ágeis, dando ênfase neste capítulo ao framework XP. 4
O manifesto
ágil
As abordagens ágeis são baseadas no modelo iterativo e incremental,
onde o projeto é dividido em mini-projectos, como discutido no
capítulo anterior.
6
O manifesto
ágil
9
O manifesto
ágil
Escopo do projeto claro e detalhado no momento correto; Equipes
auto-gerenciáveis, comprometidas e mais motivadas;
Maior adaptação do processo ao contexto do negócio;
Aumento da verificação e validação do produto;
Antecipação dos problemas e maior agilidade na tomada de
ações.
1
O manifesto
ágil
Com relação à documentação, podemos verificar que as
abordagens ágeis priorizam o software em funcionamento em
detrimento da criação e manutenção de artefactos. Este fato é
consequência da importância da entrega contínua para o cliente. A
documentação se mostra útil ao desenvolvimento do produto,
porém a sua excessiva elaboração pode acarretar numa menor
produtividade da equipe como resultado de uma difícil
manutenção. No ponto de vista ágil, a satisfação do cliente é mais
facilmente atingida a partir da entrega de resultados (código
executável), e não da geração de documentação. Highsmith
(2002) afirma que a constante entrega de software funcionando
faz com que o feedback do cliente seja parte importante do
desenvolvimento, o que não acontece na mesma proporção com 1
O manifesto
ágil
Por falar em feedback, outro importante valor presente é a
colaboração com o cliente. No desenvolvimento ágil o cliente
faz parte do time de desenvolvimento, colaborando com o
cumprimento do objetivo final, a entrega do produto. O seu
envolvimento deve ser constante, já que ele é o maior conhecedor
do negócio e deve ajudar a equipe a produzir software de valor.
Desta forma, a participação do cliente deve ser colaborativa e o
seu poder de decisão deve ser forte, ao ponto de tornar contratos
desnecessários.
Em certos contextos, marcados por volatilidade e incerteza,
contratos continuam sendo interessantes, porém a negociação
amigável será sempre a melhor saída. Transformar o cliente em um
inimigo e se apoiar apenas em contratos não é a melhor estratégia 1
O manifesto
ágil
Ainda sobre os principais valores ágeis da tabela 1, responder às
mudanças é mais interessante do que seguir um plano. O
planejamento do projeto continua sendo importante, porém temos
que ter a maturidade de entender que as necessidades dos clientes
mudam com muita frequência. Além disso, a maioria dos contextos
é marcada por incerteza que fazem com que premissas sejam
adotadas ao longo do desenvolvimento que nem sempre se
mostram verdadeiras. Desta forma, podemos afirmar que
mudanças são inerentes ao desenvolvimento de software, e a
equipe deve ser capaz de acomodá-las de forma natural. Sempre é
melhor mudar a rota do que chegar ao destina errado. É isso que
fazendo o tempo todo quando estamos construindo software.
1
O manifesto
ágil
Além dos valores discutidos, o manifesto ágil apresenta também
doze princípios importantes no contexto de desenvolvimento
rápido de software, que podem ser vistos na tabela a seguir.
PRINCÍPIOS DO MANIFESTO ÁGIL
Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua
de software de valor.
Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se
adequam a mudanças, para que o cliente possa tirar vantagens competitivas.
Entregar software funcionando com frequência, na escala de semanas até meses, com
preferência aos períodos mais curtos.
Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e
diariamente, durante todo o curso do projeto.
Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte
necessário, e confiar que farão seu trabalho.
1
O manifesto
ágil PRINCÍPIOS DO MANIFESTO ÁGIL
O Método mais eficiente e eficaz de transmitir informações para, e por dentro de um
time de desenvolvimento, é através de uma conversa cara a cara
Software funcional é a medida primária de progresso
Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e
usuários, devem ser capazes de manter indefinidamente, passos constantes
Contínua atenção à excelência técnica e bom design, aumenta a agilidade.
Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito
1
O manifesto
ágil
O primeiro princípio está ligado à satisfação do cliente a partir da
entrega contínua. Como já discutimos anteriormente, a principal
forma de verificar se o cliente está satisfeito com o projeto é
fazendo com que ele receba de forma antecipada pequenas partes
executáveis do programa. Essa entrega deve ser de forma contínua
para permitir a constante validação do produto e assim acomodar
melhor possíveis mudanças e correções. Essa estratégia faz com
que a qualidade do
software seja constantemente monitorada.
2
Lean Software
Development
2
XP - Extreme
Programming
2
M etodologias
Ágeis ▸ Cada iteração é um mini-projeto, que
normalmente dura de 1 a 4
semanas, e inclui todas as fases
para implementá-lo.
▸ Ao final de cada iteração deve haver
uma entrega ao cliente, que inclua
um conjunto de novas
funcionalidades, uma nova versão de
software.
▸ Após essa entrega há um novo
processo de comunicação com o
CICLO DE
VIDA DA
APLICAÇÃO
...como gerenciar?
O gerenciamento do
ciclo de vida da
aplicação - ALM
▸ Semelhante ao CVDS.
▸ Application Lifecycle Management
(ALM) atua no acompanhamento de
todo o processo de vida útil de uma
aplicação, da construção de à
alterações, integrando todas as fases
da engenharia de software:
▹ análise de requisitos, modelagem de
arquitetura, desenvolvimento de código,
gerenciamento de mudanças,
gerenciamento de testes e
gerenciamento de versões de produtos
Bibliografia
BAMFORD, R.; DEIBLER, W. J. (Orgs.). ISO 9001:2000 for
Software and Systems Providers: An Engineering
McCONNELL, S. Code Complete: A Practical Handbook of Software
Construction. 2. ed. Seattle: Microsoft Press, 2004
PRESSMAN, R. S. Engenharia de Software. 6ª Edição. Editora
McGraw Hill, 2011.
SOMMERVILLE, I. Engenharia de Software. 9ª Edição. Editora
Pearson, 2011.