MDSI - Sessão II

Fazer download em pptx, pdf ou txt
Fazer download em pptx, pdf ou txt
Você está na página 1de 30

INSTITUTO SUPERIOR POLITÉCNICO DE CIÊNCIAS TECNOLÓGICAS

METODOLOGIA DE DESENVOLVIMENTO
DE SISTEMAS DE INFORMAÇÃO

WILSON JÓSE PAIVA


ENG.º INFORMÁTICO E DE SISTEMAS DE INFORMAÇÃO
Introdução à
metodologia
ágil
Eng. Wilson Paiva
Tópic
os
▸ Introdução
▸ O manifesto ágil
▸ Lean Software Development
▸ XP

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.

Dessa forma, a ideia é dividir o problema em problemas menores,


visando
um aumento da interação com o cliente a partir da entrega contínua
de software funcionando. Por esta razão, as metodologias ágeis
apresentam um forte ganho às organizações que estão situadas em
um contexto caótico, como apresentado na figura 1.

Um ambiente caótico é caracterizado por requisitos e tecnologia não


totalmente conhecidos. Neste contexto, as mudanças ao longo do5
O manifesto
ágil
Por sua vez, o ambiente previsível é caracterizado pela presença de
requisitos e tecnologia conhecidos e estáveis. Projetos nestes
contextos são facilmente adaptáveis às metodologias com processo
definido, como o framework RUP.

Vale a pena destacar que, em um ambiente anárquico, marcado por


requisitos e tecnologia desconhecidos, mesmo a utilização de um
processo ágil não irá garantir o sucesso do produto desenvolvido.

6
O manifesto
ágil

Fig. 1 - Contextos de projetos versus processos de software.


7
O manifesto
ágil
Mas como as metodologias ágeis diminuem os problemas
relacionados à um ambiente caótico de desenvolvimento de
software? A resposta está atrelada a duas questões: aumento da
comunicação e entrega de valor.

Nas abordagens ágeis a comunicação deve ser contínua e face a


face, fazendo com que os riscos associados às incertezas do projeto
sejam minimizados. A entrega de valor faz com que em um curto
espaço de tempo a equipe disponibilize software funcionando com
base nas prioridades do cliente. Como consequência, a resposta à
mudança torna-se natural, aumentando a satisfação do cliente. Em
resumo, podemos afirmar que o principal objetivo de qualquer
8
O manifesto
ágil
Além do aumento de comunicação e da entrega de valor, podemos
perceber diversas outras vantagens das metodologias ágeis, tanto
para o cliente, quanto para as equipes de desenvolvimento, como
mostrado a seguir.
 Entrega de produto de forma contínua e rápida;
 Aumento da transparência dentro do projeto;
 Facilidade na adequação de novos requisitos e na priorização dos
requisitos já identificados;
 Aumento da qualidade do produto final;
 Melhora da produtividade;
 Minimização dos riscos atrelados ao projeto;

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.

Então a discussão sobre agilidade é recente? Não! De acordo com


Sommervile (2011, p. 40), a insatisfação com a utilização de
metodologias baseadas fortemente em especificação data da
década de noventa, sendo que em 2001 diversos autores assinaram
o manifesto ágil, que consiste em uma declaração que lista doze
1
O manifesto
ágil
A partir da análise do manifesto ágil, podemos derrubar alguns
mitos que
rondam a cultura ágil de desenvolvimento. Muitos desenvolvedores
acreditam que, em uma abordagem que prioriza entregas rápidas,
os processos, ferramentas, documentação, contratos e planos são
dispensáveis. Nesta ótica, a utilização desses itens é atrelada à
diminuição da produtividade da equipe e deve ser evitada.

Porém essa afirmação é falsa! Como mostrado na tabela 1, os


processos, ferramentas, documentação, contratos e planos
continuam sendo importantes para o projeto, mas não se mostram
mais importantes do que os indivíduos e interações entre eles,
1
O manifesto
ágilIndivíduos e interações Sobre Ferramentas e processos
Software funcionanado Sobre Documentação extensa
Colaboração com o cliente Sobre Negociação de contratos
Responder à mudanças Sobre Seguir um plano

Tabela 1 – Valores de abordagens ágeis.

Valorizar os indivíduos e interações significa enfatizar a importância da


cultura organizacional das pessoas envolvidas no projeto em detrimento
do processo e ferramentas utilizadas. Neste ponto de vista, fica claro que
apesar da importância da organização das tarefas que levam à
construção do produto final, os membros da equipe, com suas
características e talentos individuais, é que geram o software. O indivíduo
é visto como algo único, que não pode ser simplesmente trocado sem
acarretar em perdas para o projeto. 1
O manifesto
ágil
Neste contexto, uma maior interação entre os indivíduos que
formam o time de desenvolvimento é essencial para que o
objetivo do projeto seja alcançado. O aumento da comunicação
faz com que haja uma maior transparência e, como consequência,
seja necessária a elaboração de um número menor de artefactos,
em comparação a frameworks como o RUP. De acordo com
Larman (2003) e Highsmith (2002), as ferramentas utilizadas ao
longo do desenvolvimento devem ser simples e eficazes, assim
como o processo deve ser guiar e apoiar o trabalho do time,
porém o mesmo deve se adaptar à equipe e não o contrário.

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

As melhores arquiteturas, requisitos e designs emergem de times auto-organizáveis.


Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e
otimizam seu comportamento de acordo.

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.

A necessidade de adequação às mudanças está preconizada no


segundo princípio. Na maioria dos contextos de desenvolvimento
de sistemas a necessidade dos clientes não permanece a mesma 1
O manifesto
ágil
É comum que novas funcionalidades sejam percebidas, como
também funcionalidades já especificadas sejam revistas. Fazer com
que o produto se adapte a estas mudanças faz com que o software
esteja sempre em sintonia com as necessidades reais dos
stakeholders, fazendo com que os mesmos obtenham vantagem
competitiva frente aos concorrentes.
Da mesma forma que a adaptação às mudanças, entregar
frequentemente software funcionando faz com que haja um
aumento de vantagem competitiva a partir do momento que o
cliente torna-se parte da equipe ao avaliar constantemente o
produto que está sendo construído. Prováveis problemas no
software podem ser antecipados e novos requisitos podem ser
elicitados, mantendo sempre um alinhamento de expectativas 2
O manifesto
ágil
A necessidade de uma maior interação entre todos os envolvidos
no projeto está clara no quarto princípio. Todos têm o mesmo
objetivo, que é obter um software com qualidade e utilidade.
Assim, os envolvidos devem trabalhar como um time, diariamente.

Como consequência da necessidade do trabalho em equipe, o


quinto princípio fala sobre a motivação dos envolvidos ao longo
do projeto. É importante que cada integrante saiba que o seu papel
é importante e faz diferença no trabalho em conjunto. Neste
contexto, podemos verificar que, em projetos ágeis, cada envolvido
é visto como uma peça única que produz resultados únicos que
formam o conjunto final.
No trabalho em equipe, é necessário que a comunicação seja 2
O manifesto
ágil
As informações devem ser passadas com transparência e nenhum
meio se mostra mais eficaz do que a conversa cara a cara. Por mais
que hoje em dia temos as facilidades proporcionadas por diversas
tecnologias, a comunicação presencial será sempre mais a melhor
escolha. Por esta razão, preferencialmente os projetos ágeis devem
ser realizados com equipes geograficamente não distribuídas.
Por sua vez, o sétimo princípio determina que software
funcionando é a melhor métrica de sucesso do projeto. Desta forma
podemos afirmar que por mais que a documentação tenha valor,
entregas constantes de partes executáveis do programa se
configuram como importantes insumos para a medição do
progresso do trabalho realizado.
2
O manifesto
ágil
Atrelado a esse fato,o oitavo princípio afirma que o ambiente
constante de trabalho promovido por abordagens ágeis faz com
que todos os steakholders trabalhem com mais segurança e
tranquilidade.
O nono princípio aborda a importância da excelência técnica e
bom design para o aumento da agilidade. Quanto mais a equipe se
torna madura em relação às boas práticas de desenvolvimento,
mais software funcionando consegue ser entregue ao cliente,
maximizando muitas dos princípios ágeis discutidos até o
momento. Como consequência da excelência técnica, muito
trabalho que não se mostra útil em relação às necessidades dos
usuários deixa de ser realizado, o que aumenta produtividade da
equipe ao concentrar os esforços nos requisitos realmente 2
O manifesto
ágil
O décimo primeiro princípio aborda a questão de a importância
da equipe possuir um time auto-organizado, onde todos possuem
importância e são livres para desempenhar suas habilidades para
que o objetivo do projeto seja cumprido. Neste sentido, não é
obrigatório que todos os integrantes do time dominem todos os
aspectos do desenvolvimento do sistema em questão.
Porém, é importante que a equipe consiga resolver o problema sem
necessitar de ajuda externa. A forma de trabalho individual e
coletiva pode ser revista de tempos em tempos, como explicitado
no décimo segundo princípio.

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.

Você também pode gostar