Aqui você encontra tudo em softwares e aplicativos dos melhores fabricantes.
Ainda não é Cadastrado?
Clique Aqui e cadastre-se agora.
Softwares são fonte de bons negócios e ótima lucratividade, estamos cadastrando revendedores de todo Brasil.
Procuramos soluções para agregar ao nosso potifórlio e estamos prontos para distribuir os seus produtos e serviços à nossa base de clientes.
Existem inúmeros métodos de desenvolvimento de software rápido, cada uma destas exposta pela The Agile Alliance .
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
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 face a face, a documentos escritos. A maioria dos
componentes de um grupo ágil devem estar agrupados em uma sala . Isto inclui todas as pessoas necessárias para terminar o software. No mínimo, isto inclui os programadores e seus clientes (clientes são as pessoas que definem o produto, eles podem ser os gerentes , analistas de negocio , ou realmente os clientes ). Nesta sala devem também se encontrar os testadores, projetistas de iteração, redatores técnicos e gerentes.
Métodos ágeis também enfatizam trabalho no software como uma medida
primária de progresso. Combinado com a comunicação face-a-face, métodos
ágeis produzem pouca documentação em relação a outros métodos, sendo
este um de seus pontos negativos.
Os princípios do desenvolvimento ágil valorizam:
As definições modernas de desenvolvimento de software ágil evoluíram
a partir da metade de 1990 como parte de uma reação contra métodos
"pesados", caracterizados por uma pesada regulamentação, regimentação e
micro gerenciamento usado o modelo em cascata para desenvolvimento. O processo originou-se da visão de que o modelo em cascata era burocrático , lento e contraditório a forma usual com que os engenheiros de software sempre realizaram trabalho com eficiência.
Uma visão que levou ao desenvolvimento de métodos ágeis e iterativos
era retorno a prática de desenvolvimento vistas nos primórdios da
história do desenvolvimento de software [1] .
Inicialmente, métodos ágeis eram conhecidos como métodos leves. Em 2001 , membros proeminentes da comunidade se reuniram em Snowbird e adotaram o nome métodos ágeis. Mais tarde, algumas pessoas formaram A Agile Alliance [2] , uma organização não lucrativa que promove o desenvolvimento ágil.
Os métodos ágeis iniciais—criado a priore em 2000— incluíam Scrum (1986), Crystal Clear , Programação extrema (1996), Adaptive Software Development , Feature Driven Development , and Dynamic Systems Development Method (1995).
Metodos Ágeis são algumas vezes caracterizados como o oposto de metodologias guiadas pelo planejamento ou disciplinadas. Uma distinção mais acurada é dizer que os métodos existem em um continuo do adaptativo até o preditivo. [1]
Métodos ágeis existem do lado adaptativo deste continuo. 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
a cerca 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.
Métodos preditivos, em contraste, colocam o planejamento do futuro
em detalhe. Uma equipe preditiva pode reportar exatamente quais
aspectos e tarefas estão planejados para toda a linha do processo de
desenvolvimento. Elas porém tem dificuldades de mudar de direção. O
plano é tipicamente otimizado para o objetivo original e mudanças de
direção podem causar a perda de todo o trabalho e determinar que seja
feito tudo novamente. Equipes preditivas freqüentemente instituem um comitê de controle de mudança para assegurar que somente as mudanças mais importantes sejam consideradas.
Métodos ágeis têm muito em comum com técnicas de Desenvolvimento rápido de aplicação de 1980 como exposto por James Martin e outros.
A maioria dos métodos ágeis compartilha a ênfase no Desenvolvimento iterativo e incremental
para a construção de versões implantadas do software em curtos períodos
de tempo. Métodos ágeis diferem dos métodos iterativos porque seus
períodos de tempo são medidos em semanas, ao invés de meses, e a
realização é efetuada de uma maneira altamente colaborativa.
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 é o um das metodologias com mais
ênfase no planejamento ,
seguindo seus passos através da captura dos requisitos, análise,
projeto, codificação e testes em uma seqüência pré-planejada e
restrita. O progresso é geralmente medido em termos de entrega de
artefatos—especificação de requisitos, documentos de projeto, planos de teste ,
revisão do código, e outros. O modelo em cascata resulta em uma
substancial integração e esforço de teste para alcançar o fim do ciclo
de vida, um período que tipicamente se estende por vários meses ou
anos. O tamanho e dificuldade deste esforço de integração e teste é uma
das causas das falhas do projeto em cascata. Métodos ágeis, pelo
contrário, produzem um desenvolvimento completo e teste de aspectos
(mas um pequeno subconjunto do todo) num período de poucas semanas ou
meses. Enfatiza a obtenção de pequenos pedaços de funcionalidades
executáveis para agregar valor ao negócio cedo, e continuamente agregar
novas funcionalidades através do ciclo de vida do projeto.
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.
A codificação cowboy , também chamada de balbúrdia ,
é a ausência de método de definição: os membros da equipe fazem o que
eles sentem que é correto. Os desenvolvedores ágeis freqüentemente
reavaliam os planos, enfatizam a comunicação face a face e o uso
relativamente esparso de documentos levando ocasionalmente as pessoas a
confundirem isto com codificação cowboy. Equipes ágeis, contudo, seguem
o processo definido (e freqüentemente de forma disciplinada e rigorosa).
Como em todas as metodologias, o conhecimento e a experiência dos
usuários definem o grau de sucesso e/ou fracasso de cada atividade. Os
controles mais rígidos e sistematizados aplicados em um processo
implicam em altos níveis de responsabilidade para os usuários. A
degradação de procedimentos bem-intencionados pode levar as atividades
a serem caracterizadas como codificação cowboy.
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) [2]
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). [2]
De uma pespectiva organizacional, a aplicabilidade pode ser expressa
examinando três dimensões chaves da organização: cultura, pessoal e
comunicação. Em relação a estas áreas inúmeros fatores chave do sucesso
podem ser identificados (Cohen et al., 2004) [2] :
O fator mais importante é provavelmente o tamanho do projeto (Cohen et al., 2004). [2]
. Com o aumento do tamanho, a comunicação face a face se torna mais
difícil. Portanto, métodos ágeis são mais adequados para projetos com
pequenos times, com no máximo de 20 a 40 pessoas.
De forma a determinar a aplicabilidade de métodos ágeis específicos, uma analise 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 e Desenvolvimento guiado por característica , afirmam se aplicar a qualquer projeto de desenvolvimento ágil, sem importar suas características (Abrahamsonn et al., 2003). [3]
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.
Desenvolvimentos ágeis vêm sendo amplamente documentados (ver Experiências relatadas , abaixo, como também em Beck [4] , e Boehm & Turner [5]
como funcionando bem para equipes pequenas (< 10 desenvolvedores). O
desenvolvimento ágil é particularmente adequado para equipes que têm
que lidar com mudanças rápidas ou imprevisíveis nos requerimentos.
A aplicabilidade do desenvolvimento ágil para os seguintes cenários é ainda uma questão aberta:
Barry Boehm e Richard Turner sugeriram que analise de risco pode ser usada para escolher entre métodos adaptativos ("ágeis") e preditivos ("dirigidos pelo planejamento"). [5] Os autores sugerem que cada lado deste continuo possui seu ambiente ideal"
Ambiente ideal para o desenvolvimento ágil:
Ambiente ideal para o desenvolvimento direcionado ao planejamento:
Um método deve ser bastante flexível para permitir ajustes durante a
execução do projeto. Há três problemas chaves relacionados ao tópico de
adaptação dos métodos ágeis: a aplicabilidade dos métodos ágeis (no geral e no particular), e finalmente, o suporte ao gerenciamento de projeto .
Os métodos ágeis diferem largamente no que diz respeito a forma de
serem gerenciados. Algum métodos são suplementados com guias para
direcionar o gerenciamento do projeto, mas nem todos são aplicáveis . [3] .
PRINCE2 tem sido considerado como um sistema de gerenciamento de projeto complementar e adequado. [9]
Uma das caracteristicas comum dos processos ágeis é a capacidade de
funcionar em ambientes muito exigentes que tem um grande numero de
incertezas e flutuações (mudanças) que podem vir de várias fontes como:
equipe em processo de formação que ainda não trabalhou junto em outros
projetos, requisitos voláteis, baixo conhecimento do dominio de negocio
pela equipe, adoção de novas tecnologias, novas ferramentas, mudanças
muito bruscas e rapidas no ambiente de negocios das empresas: novos
concorrentes, novos produtos, novos modelos de negocio.
Sistemas de gerenciamento de projetos lineares e prescritivos, neste
tipo de ambiente, falham em oferecer as caracteristicas necessárias
para responder de forma ágil as mudanças requeridas. Sua adoção pode
incrementar desnecessariamente os riscos, o custo, o prazo e baixar a
qualidade do produto gerado, desgastando a equipe e todos os envolvidos
no processo.
A abordagem Scrum ,
para gestão de projetos ágeis, leva em consideração planejamento não
linear, porém de maneira mais exaustiva e está focada em agregar valor
para o cliente e em gerenciar os riscos, fornecendo um ambiente seguro.
Pode ser utilizada na gestão do projeto aliada a uma metodologia de
desenvolvimento como XP , FDD , OpenUP , DSDM , Crystal ou outras.
O método de desenvolvimento ágil é algumas vezes criticados como codificação cowboy . O inicio da Programação extrema soava como controverso e dogmático, tal como a programação por pares e o projeto continuo , tem sido alvo particular de críticos, tais como McBreen [10] e Boehm e Turner. [5]
Contudo, muito destas criticas tem sido vista pelos defensores dos
métodos ágeis como mal entendidos a respeito do desenvolvimento ágil. [11]
Em particular, a Programação extrema é revista e criticada por Matt Stephens` Extreme Programming Refactored. [12]
As criticas incluem