Este capítulo dá uma visão geral de Programação Extrema.o que é ágil?
a palavra “ágil” significa −
-
capaz de mover o seu corpo rápida e facilmente.
-
capaz de pensar rápida e claramente.,
na empresa, ‘ágil’ é usado para descrever formas de planejamento e fazer o trabalho em que se entende que fazer mudanças conforme necessário é uma parte importante do trabalho. Uma empresa “bililty” significa que está sempre em posição de ter em conta as alterações do mercado.
Ref: Cambridge Dictionaries online.
No desenvolvimento de software, o termo “ágil” é adaptado para significar ” a capacidade de responder a mudanças − mudanças de Requisitos, Tecnologia e Pessoas.,”
Manifesto Ágil
uma equipe de desenvolvedores de software publicou o Manifesto Ágil em 2001, destacando a importância da equipe de desenvolvimento, acomodando as mudanças de requisitos e envolvimento do cliente.
O Manifesto Ágil afirma que –
estamos descobrindo melhores formas de desenvolver software ao fazê-lo e ajudar outros a fazê-lo. Através deste trabalho, chegamos ao valor-
-
indivíduos e interações sobre processos e ferramentas.software de trabalho sobre documentação abrangente.,colaboração do cliente sobre a negociação de contratos.
-
respondendo à mudança de acordo com um plano.
isto é, enquanto há valor nos itens à direita, valorizamos os itens à esquerda mais.
Características de Agilidade
a Seguir são as características de Agilidade
-
Agilidade no Desenvolvimento de Software Ágil foca a cultura de toda a equipa multi-disciplinar, equipes multifuncionais que estão habilitadas e selforganizing.promove a responsabilidade partilhada e a responsabilização.,
-
facilita a comunicação eficaz e a colaboração contínua.a abordagem de toda a equipa evita atrasos e tempos de espera.entregas frequentes e contínuas garantem um retorno rápido que, por sua vez, permite que a equipe se alinhe aos requisitos.a colaboração facilita a combinação de diferentes perspectivas oportunas na implementação, correções de defeitos e mudanças acomodatícias.o progresso é constante, sustentável e previsível enfatizando a transparência.,
tendências de Engenharia de Software
as seguintes tendências são observadas na engenharia de software −
-
reunir requisitos antes do início do desenvolvimento. No entanto, se os requisitos forem alterados mais tarde, então seguir é geralmente notado −
-
resistência às alterações em uma fase posterior de desenvolvimento.
-
Existe um requisito de um processo de mudança rigoroso que envolve uma placa de controle de mudança que pode até mesmo empurrar as alterações para versões posteriores.,a entrega de um produto com requisitos obsoletos, não satisfazendo as expectativas do cliente.
-
incapacidade de acomodar as inevitáveis mudanças de domínio e mudanças de tecnologia dentro do orçamento.
-
-
encontrar e eliminar defeitos no início do ciclo de vida do desenvolvimento, a fim de reduzir os custos de correcção de defeitos.
-
O teste só começa após a codificação estar completa e o teste é considerado como uma responsabilidade do testador, embora o testador não esteja envolvido no desenvolvimento.
-
medir e acompanhar o processo em si., Isso se torna caro por causa de −
-
monitorar e rastrear ao nível da tarefa e ao nível de recursos.definição de medições para orientar o desenvolvimento e medir cada actividade no desenvolvimento.intervenção de gestão.
-
-
elaborar, analisar e verificar os modelos antes do desenvolvimento.
-
um modelo é suposto ser usado como uma estrutura. No entanto, o foco no modelo e não no desenvolvimento que é crucial não produzirá os resultados esperados.,
-
-
codificação, que é o coração do desenvolvimento não é dado ênfase suficiente. As razões que estão sendo −
-
desenvolvedores, que são responsáveis pela produção, geralmente não estão em comunicação constante com os clientes.
-
a codificação é vista como uma tradução do design e a implementação eficaz em código é quase nunca rearranjada de volta para o design.
-
O ensaio é considerado como a porta de entrada para verificar defeitos antes da entrega.,as ultrapassagens do calendário das fases iniciais de desenvolvimento são compensadas ignorando os requisitos de ensaio para assegurar entregas atempadas.isto resulta em derrapagens de custos que corrigem defeitos Após o parto.os testadores são responsabilizados e responsáveis pela qualidade do produto, embora não tenham estado envolvidos durante todo o desenvolvimento.
Limiting resources (mainly team) to accommodate budget leads to −
-
Resource over allocation
-
Team burnout.,perda na utilização efectiva das competências das equipas.
-
atrito.programação extrema-uma forma de lidar com as deficiências comuns a engenharia de Software envolve criatividade a aprendizagem e a melhoria através de ensaios e erros É a atividade de Projeto detalhada (não a única) com múltiplos loops de feedback apertado através da implementação eficaz, teste e refactoring continuamente.,a programação extrema baseia-se nos seguintes valores: – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
XP é uma forma leve, eficiente, de baixo risco, flexível, previsível, científica e divertida de desenvolver um software.
programação extrema (XP) foi concebida e desenvolvida para atender às necessidades específicas de desenvolvimento de software por pequenas equipes em face de requisitos vagos e em mudança.,
A programação extrema é uma das metodologias ágeis de desenvolvimento de software. Ele fornece valores e princípios para orientar o comportamento da equipe. Espera-se que a equipa se auto-organize. A programação extrema fornece práticas principais específicas onde –
-
cada prática é simples e auto-completa.
-
combinação de práticas produz um comportamento mais complexo e emergente.
abraçar a mudança
uma suposição chave da programação extrema é que o custo de mudar um programa pode ser mantido principalmente constante ao longo do tempo.,>Isso pode ser conseguido com −
-
Ênfase no feedback contínuo do cliente
-
iterações Curtas
-
Design e redesign
-
Codificação e teste de freqüência
-
Eliminando defeitos cedo, assim, a redução de custos
-
Manter o cliente envolvido durante o desenvolvimento
-
a Entrega de produto para o cliente
Extreme Programming em poucas palavras
Extreme Programming envolve −
-
Escrever testes de unidade antes de programação e manutenção de todos os testes de funcionamento em todos os tempos., Os testes unitários são automatizados e eliminam defeitos precoces, reduzindo assim os custos.
-
começando com um desenho simples apenas o suficiente para codificar as características à mão e redesenhar quando necessário.
-
programação em pares( chamada de programação par), com dois programadores em uma tela, fazendo turnos para usar o teclado. Enquanto um deles está no teclado, o outro constantemente analisa e fornece entradas.integração e ensaio de todo o sistema várias vezes por dia.,colocar um sistema de trabalho mínimo na produção rapidamente e atualizá-lo sempre que necessário.manter o cliente envolvido o tempo todo e obter feedback constante.
iteração facilita as alterações acomodatícias à medida que o software evolui com as mudanças de requisitos.
por que é chamado de “extremo?”
a programação extrema leva os princípios e práticas efetivos para níveis extremos.
-
revisões de códigos são eficazes como o código é revisto o tempo todo.,
-
O ensaio é eficaz, dado que existe regressão e ensaio contínuos.
-
O Design é eficaz, uma vez que toda a gente precisa de refactorar diariamente.
-
Teste de integração é importante como integração e teste várias vezes ao dia.
-
iterações curtas são eficazes como o jogo de planejamento para planejamento de lançamento e planejamento de iteração.
History of Extreme Programming
Kent Beck, Ward Cunningham and Ron Jeffries formulated extreme Programming in 1999. Os outros colaboradores são Robert Martin e Martin Fowler.,
em meados dos anos 80, Kent Beck e Ward Cunningham iniciaram a programação de pares em Tektronix. Nos anos 80 e 90, a cultura Smalltalk produziu Refactoring, integração contínua, testes constantes e envolvimento próximo do cliente. Esta cultura foi mais tarde generalizada para os outros ambientes.
In the Early 90s, Core Values were developed within the Patterns Community, Hillside Group. Em 1995, Kent resumiu – os nas melhores práticas de Smalltalk, e em 1996, Ward resumiu-os em episódios.
em 1996, Kent adicionou teste de unidade e metáfora na Hewitt., Em 1996, Kent havia tomado o projeto Chrysler C3, ao qual Ron Jeffries foi adicionado como treinador. As práticas foram aperfeiçoadas em C3 e publicadas em Wiki.as práticas Scrum foram incorporadas e adaptadas como o jogo de planejamento. Em 1999, Kent publicou seu livro, “Extreme Programming Explained”. No mesmo ano, Fowler publicou seu livro, Refactoring.a programação extrema tem evoluído desde então, e a evolução continua até hoje.
sucesso na indústria
o sucesso dos projectos, que seguem práticas de programação extremas, é devido a −
-
desenvolvimento rápido.,resposta imediata às necessidades em mudança do cliente.concentração nas baixas taxas de defeitos.sistema devolvendo valor constante e consistente ao cliente.elevada satisfação do cliente.custos reduzidos.coesão da equipa e satisfação dos trabalhadores.a programação extrema resolve os seguintes problemas frequentemente enfrentados nos projetos de desenvolvimento de software −e os ciclos de desenvolvimento alcançáveis garantem entregas atempadas.,projetos cancelados-foco no envolvimento contínuo do Cliente garante transparência com o cliente e a resolução imediata de quaisquer problemas.
-
custos incorridos com alterações-testes extensivos e em curso garantem que as alterações não quebram a funcionalidade existente. Um sistema de funcionamento em execução garante sempre tempo suficiente para acomodar mudanças de modo que as operações atuais não sejam afetadas.
-
produção e defeitos pós-entrega: ênfase – os testes unitários para detectar e corrigir os defeitos precocemente.,
-
mal-entendido o negócio e / ou domínio − fazer do cliente uma parte da equipe garante a comunicação constante e clarificações.mudanças de Negócio-as mudanças são consideradas inevitáveis e são acomodadas em qualquer momento.a colaboração intensiva em equipa garante entusiasmo e boa vontade. A coesão das várias disciplinas fomenta o espírito de equipa.
Anúncios -