Desenvolvimento ágil de software: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
m Melhora na definição de desenvolvimento ágil. |
m ajustes usando script, +correções semiautomáticas (v0.53/3.1.39/0.4) |
||
Linha 1:
{{fusão aqui|Feature Driven Development|data=junho de 2017}}
'''Desenvolvimento ágil de software''' (do inglês ''Agile software development'') ou '''Método ágil''' é uma expressão que define um conjunto de [[Metodologia (engenharia de software)|metodologias]] utilizadas no desenvolvimento de ''[[software]]''. As metodologias que fazem parte do conceito de [[desenvolvimento]] ágil, tal como qualquer
Existem inúmeros frameworks de processos para desenvolvimento de
▲Existem inúmeros frameworks de processos para desenvolvimento de [[software]]. A maioria dos métodos ágeis tenta minimizar o risco pelo desenvolvimento do software em curtos períodos, chamados de iteração, os quais gastam tipicamente menos de uma semana a até quatro. Cada iteração é como um projeto de software em miniatura de seu próprio, e inclui todas as tarefas necessárias para implantar o mini-incremento da nova funcionalidade: planejamento, [[análise de requisitos]], projeto, codificação, [[teste de software|teste]] e documentação. Enquanto em um processo convencional, cada iteração não está necessariamente focada em adicionar um novo conjunto significativo de funcionalidades, um projeto de software ágil busca a capacidade de implantar uma nova versão do software ao fim de cada iteração, etapa a qual a equipe responsável reavalia as prioridades do projeto.
Métodos ágeis enfatizam comunicações em tempo real, preferencialmente cara a cara, a documentos escritos. A maioria dos componentes de um grupo ágil deve estar agrupada em uma [[sala]]. Isso inclui todas as pessoas necessárias para terminar o software: no mínimo, os programadores e seus ''clientes'' (clientes são as pessoas que definem o produto, eles podem ser os [[gerente]]s, [[analista de negócio|analistas de negócio]], ou realmente os [[cliente (comércio)|cliente]]s). Nesta sala devem também se encontrar os testadores, projectistas de iteração, [[redactores técnicos]] e gerentes.
Linha 51:
|páginas= 165-194
|isbn= 0-321-18612-5}}</ref> Métodos ágeis existem do lado adaptativo deste contínuo.
Métodos adaptativos buscam a adaptação rápida a mudanças da realidade. Quando uma necessidade de um projeto muda, uma equipe adaptativa mudará também. Um time adaptativo terá dificuldade em descrever o que irá acontecer no futuro. O que acontecerá em uma data futura é um item de difícil predição para um método adaptativo. Uma equipe adaptativa pode relatar quais tarefas se iniciarão na próxima semana. Quando perguntado acerca de uma implantação que ocorrerá daqui a seis meses, uma equipe adaptativa deve ser capaz somente de relatar a instrução de missão para a implantação, ou uma expectativa de valor versus custo.
Linha 61 ⟶ 62:
=== Comparação com o modelo em cascata ===
O desenvolvimento ágil tem pouco em comum com o [[modelo em cascata]]. Na visão de alguns este modelo é desacreditado, apesar de ser um modelo de uso comum. O modelo em cascata é uma das metodologias com maior ênfase no [[planejamento]], seguindo seus passos através da captura dos requisitos, análise, projeto, codificação e testes em uma
Algumas equipes ágeis usam o modelo em cascata em pequena escala, repetindo o ciclo de cascata inteiro em cada iteração. Outras equipes, mais especificamente as equipes de [[Programação extrema]], trabalham com atividades simultaneamente.
Linha 71 ⟶ 72:
== Aplicabilidade dos métodos ágeis ==
Embora os métodos ágeis apresentem diferenças entre suas práticas, eles compartilham inúmeras características em comum, incluindo o desenvolvimento iterativo, e um foco na comunicação interativa e na redução do esforço empregado em artefatos intermediários. (Cohen et al., 2004)<ref name="cohen2004">Cohen, D., Lindvall, M., & Costa, P. (2004). An introduction to agile methods. In ''Advances in Computers'' (pp. 1-66). New York: Elsevier Science.</ref> A aplicabilidade dos métodos ágeis em geral pode ser examinada de múltiplas perspectivas. Da perspectiva do produto, métodos ágeis são mais adequados quando os requisitos estão emergindo e mudando rapidamente, embora não exista um consenso completo neste ponto (Cohen et al., 2004).<ref name="cohen2004"/> De uma perspectiva organizacional,
* A cultura da organização deve apoiar a negociação.
Linha 83 ⟶ 84:
De forma a determinar a aplicabilidade de métodos ágeis específicos, uma análise mais sofisticada é necessária. O [[método dinâmico para o desenvolvimento de sistemas]], por exemplo, provê o denominado 'filtro de aplicabilidade' para este propósito. Também, a família de métodos Crystal provê uma caracterização de quando selecionar o método para um projeto. A seleção é baseada no tamanho do projeto, criticidade e prioridade. Contudo, outros métodos ágeis não fornecem um instrumento explícito para definir sua aplicabilidade a um projeto.
Alguns métodos ágeis, como DSDM ([[Dynamic Systems Development Method]]) e FDM ([[Feature Driven Development
A comparação dos métodos ágeis irá revelar que eles suportam diferentes fases de um ciclo de vida do software em diferentes níveis. Estas características individuais dos métodos ágeis podem ser usadas como um critério de seleção de sua aplicabilidade.
Linha 102 ⟶ 103:
* Baixa criticidade
* Desenvolvedores senior
* Mudanças
* Pequeno número de desenvolvedores
* Cultura que tem sucesso no caos.
Linha 134 ⟶ 135:
* [[Scrum (desenvolvimento de software)|Scrum]]
'''Albert Joseph
* [[Feature Driven Development]] (FDD)
* [[Dynamic Systems Development Method]] (DSDM)
Linha 157 ⟶ 158:
== Futuras leituras ==
* Fowler, Martin. [http://www.martinfowler.com/articles/designDead.html ''Is Design Dead?'']. Appeared in ''Extreme Programming Explained'', G. Succi and M. Marchesi, ed.,
* Riehle, Dirk. [http://www.riehle.org/computer-science/research/2000/xp-2000.html ''A Comparison of the Value Systems of Adaptive Software Development and Extreme Programming: How Methodologies May Learn From Each Other'']. Appeared in ''Extreme Programming Explained'', G. Succi and M. Marchesi, ed.,
* Tomek, Ivan.
* M. Stephens, D. Rosenberg.
* D. Rosenberg, M. Stephens.
* Beck, et. al.,
* Larman, Craig and Basili, Victor R. [http://www2.umassd.edu/SWPI/xp/articles/r6047.pdf ''Iterative and Incremental Development:A Brief History
* Abrahamsson, P., Warsta, J., Siponen, M.T., & Ronkainen, J. (2003). New Directions on Agile Methods: A Comparative Analysis. ''Proceedings of ICSE'03'', 244-254.
* Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2002). Agile Software Development Methods: Review and Analysis. ''VTT Publications 478''.
|