Wednesday 23 July 2014

Agile Scrum para desenvolvimento de software

O escopo de desenvolvimento na área de software / TI
As pessoas e os indivíduos associados com o desenvolvimento de software e na área de TI gostam de usar o termo "desenvolvimento de software" para descrever sua área específica de trabalho e envolvimento profissional. O termo "desenvolvimento" é muito utilizado para descrever uma série de atividades que atendem a área de TI. Ela pode variar de desenvolvimento de código para aplicações e sistemas, para o desenvolvimento de aplicações móveis para sistemas operacionais móveis, como o Android, iOS, Symbian, Windows OS, etc (visite http://en.wikipedia.org/wiki/Mobile_operating_system) ", software "de jogos de fabricação usando linguagens de script como ruby, AGSScript, Lua, linguagem de marcação Marathon, Ada, C + +, C #, D, Lisp, Mercury, Pascal, Perl, Python, Scheme, JavaScript, Java, VBScript, EDL, etc, (visite http://en.wikipedia.org/wiki/List_of_programming_languages​​) realização de desenvolvimento web usando HTML, CSS, PHP, Joomla, DotNetNuke, Java, etc, e até mesmo o desenvolvimento de sistemas operacionais inteiros para tablets e PCs (visite http://en.wikipedia.org/wiki/List_of_operating_systems para saber mais sobre sistemas operacionais).

O fato é que hoje, a terminologia "desenvolvimento de software" é amplamente utilizado para mencionar quase qualquer tipo ou atividade associada com a programação e desenvolvimento de código "computerizable" de qualquer tipo, em qualquer forma ou maneira. Quando uma metodologia ou framework especial é usado para desenvolver código computerizable e criar projetos de software, é importante verificar se o escopo de desenvolvimento inclui a atividade específica que você está atualmente envolvido ou associado. Desenvolvimento de software e gerenciamento de projetos frameworks como Agile têm o potencial para desenvolver projetos de sucesso relacionados a TI, envolvendo a grande maioria das plataformas de desenvolvimento e sistemas operacionais.

O que é o quadro Agile?  
Enquanto explicava Agile de forma simples e direta, pode ser melhor entendida como um conjunto de metodologias de desenvolvimento de projetos e estruturas, das quais qualquer estrutura ou metodologia pode ser usada de forma bem sucedida de desenvolver dinamicamente projetos de praticamente qualquer tipo e natureza, incluindo projetos de desenvolvimento de software. O quadro é baseado em desenvolvimento iterativo e incremental, em que as equipes auto-organizadas e desenvolvimento auto-gestão compreender, planejar e desenvolver projetos sob a supervisão de um líder de projeto, e oferecer a produtividade na forma de rajadas de ciclos de desenvolvimento (iterativo desenvolvimento), conhecida como sprints. Uma característica única de todas as estruturas ágeis é que o desenvolvimento realizado pela equipe é "entregáveis​​" na natureza ou seja, o código desenvolvido durante o ciclo de desenvolvimento do produto é independente, testável, verificável documentable, e pronto para implantação após ser rigorosamente verificados para quaisquer defeitos de fabricação "."

Uma segunda característica, muito importante de desenvolvimento ágil é que os indivíduos "detentores" do projeto estão intimamente ligados com a aprovação do desenvolvimento realizado pela equipe. Um especial "código" ou "pedaço" de funcionalidade está marcada para a regressão após sua elaboração, e, posteriormente, apresentado aos interessados ​​e proprietários do projeto. Eles verificar o desenvolvimento realizado, e limpá-la como "OK" para futura integração no produto real. Isto leva a um desenvolvimento bem sucedido de projetos de software, uma vez que a gestão está sempre ciente sobre o que a funcionalidade está sendo desenvolvido pela equipe, e até que ponto satisfaz os objetivos do projeto. Se os proprietários do projeto sentir a produtividade oferecido pela equipe não é up-to-the-marca, ou não os satisfaz em termos de valor de negócio (quanto importante o código ou funcionalidade é do ponto de vista do mercado, e quanto vale a pena a partir do ponto de vista financeiro) oferecidos pela funcionalidade, eles podem rejeitar toda a funcionalidade e instruir o gerente de projeto para reconstruir o script ou código em particular, com base em um novo conjunto de entradas e requisitos recomendados por eles. Isso garante que o projeto de software sempre "mantém" o seu valor de negócios em todos os momentos, mesmo quando o produto está sendo desenvolvido atualmente.

Uma terceira característica importante do quadro Agile é que todas as atividades do projeto são "tempo encaixotados", e, portanto, tem que ser concluída dentro de um período de tempo pré-determinado. Em um projeto ágil, cada atividade é o tempo limite. Todas as atividades relacionadas ao desenvolvimento são "configurado" para atender às necessidades do projeto únicas, e uma duração de "aposta" para eles para que eles possam ser concluídas dentro de um prazo estipulado. Isso garante que o projeto não "arrastar-on" e estender indefinidamente. Os custos de desenvolvimento incorridos enquanto o projeto está sendo desenvolvido pode ser corretamente e "rentável" controlada, para que o projeto não se torne "muito" caro e difícil de suportar financeiramente.

Princípios e características Agile  
Framework Agile difere drasticamente quando comparado com linear tradicional ou metodologia de Cachoeira. No Agile, desenvolvimento de projetos é realizada em pequenos grupos de atividades, em vez de em etapas que devem ser "concluído" um após o outro.

As principais características ágeis incluem:
  • Equipes de desenvolvimento multifuncionais consistindo de desenvolvedores, programadores, testadores, o pessoal de QA, escritores técnicos, analistas de sistemas, etc todo o trabalho em conjunto como uma única equipe composta através de esforços colaborativos, oferta e partilhar ideias e ajudar uns aos outros durante o processo de desenvolvimento.
  • Trabalhando em, ciclos de desenvolvimento em ritmo acelerado curtos, com objetivos focados - O desenvolvimento iterativo.
  • Produtividade entregáveis ​​no final do ciclo de desenvolvimento iterativo - O desenvolvimento incremental. A funcionalidade continua a "crescer" através de ciclos de desenvolvimento até que todo o aplicativo, sistema ou produto é desenvolvido.
  • Comunicações Humanos e envolvimento tem precedência sobre a autoridade de gestão e delegação de trabalho.
  • Total transparência e visibilidade do progresso da equipe para os usuários proprietários, interessados ​​e de término do projeto.
  • Comentários e sugestões ajudam a auto-corrigir e oferecer novas formas e meios para levar a cabo mais rápido, mais eficiente, e desenvolvimento de confiança.  
Uma característica importante de todas as estruturas ágeis é que os quadros são independentes da natureza do projeto a ser desenvolvido ou seja, o quadro não é dependente da plataforma ou ambiente utilizado para desenvolver o projeto de software específico. A arquitetura ou design pode variar, e poderia ser qualquer coisa. O aspecto importante é que um quadro Agile tem de ser implementada no primeiro projeto, e seus benefícios aproveitados posteriormente. Por favor, visite http://en.wikipedia.org/wiki/Agile_software_development.

O que é Scrum Agile?
Scrum, resumidamente, é um "peso leve" quadro Agile, amplamente utilizado para desenvolvimento e fornecimento de produtos de software "viáveis​​", muitas vezes, e em uma base consistente. Os produtos de software podem ir desde o desenvolvimento de novos processos de web e sistemas, soluções de jogos, plugins, aplicativos para celular, sites de comércio eletrônico, portais corporativos, desenvolvimento de temas WordPress, Rad Projetos (Rapid Application Development), Oops projetos (Programação Orientada a Objetos), soluções CAD / CAM elaboração, programação e configuração de serviços públicos portuários, desenvolvimento web e soluções de interface da plataforma, etc Scrum adere a todos os princípios e características ágeis discutidos acima vez que o quadro é "herdado" do próprio Agile.

Scrum oferece uma nova, e uma maneira melhor de gerenciar projetos de software. Há muitos motivos técnicos Scrum é popular e por isso que muitas empresas da Fortune 500 preferem usar a estrutura para os seus propósitos de desenvolvimento do projeto. Ao ser apresentado a Agile Scrum, uma questão que, inadvertidamente, vem à mente é por que é Scrum é tão popular? Por que há tanta "propaganda" sobre Scrum? O Scrum oferecer uma fórmula mágica, que pode fazer maravilhas para o seu projeto e desenvolvimento de software? Por que uma organização que tem vindo a seguir uma metodologia de desenvolvimento particular, e se sente confortável fazê-lo, deve mudar para o Scrum? Há um artigo específico que trata inteiramente com o porquê você deve optar por Scrum. O ponto é, este foco artigo ao explicar o Scrum para indivíduos que são novos para o tema, e não têm absolutamente nenhuma idéia do que o quadro é sobre todos, e que ela pode "fazer" para você. Esforços têm sido feitos para explicar que Agile Scrum é aplicável a praticamente qualquer tipo de desenvolvimento de software, e possui certas características que tornam o quadro muito popular, bem como "poderoso".

Como o Scrum funciona?  
O processo Scrum real pode revelar-se difícil de entender, num primeiro momento, para iniciantes Scrum. Mesmo que a implementação Scrum não é difícil, as pessoas precisam entender e se familiarizar com o que é de incremento do produto e como ele realmente ocorre durante o processo Scrum. O segundo aspecto é conhecer sobre os eventos Scrum. As reuniões especiais, conhecidos como "eventos" são importantes para monitorar a atividade de desenvolvimento e analisar a confiabilidade ea eficácia das funcionalidades desenvolvidas pela equipe. Eles também ajudam a solicitar o feedback dos membros da equipe, bem como os proprietários do projeto para que o valor do negócio do projeto não é afetado, e mantida em todos os momentos - mesmo quando o produto está sendo desenvolvido. Vale a pena ter uma "visão geral" do processo pela primeira vez.

Scrum 
1. concepção do projeto - uma ideia!  
Todos os projetos, se envolvendo desenvolvimento de software, ou de outra forma, comece com uma "idéia". Os projetos são desenvolvidos a partir de necessidades. Um projeto é planejado para atender a uma necessidade específica ou atingir um determinado objetivo. Além disso, cada projecto resulta em "algo" dentro de um determinado período de tempo - um projeto não pode estender indefinidamente. É importante aqui distinguir entre um "projeto" e um "programa". Os programas são geralmente de longo denominado, e pode até durar anos, ao contrário de projectos que têm uma vida útil relativamente curta e duram por um breve período, que vão desde um par de meses a até um ano.

Normalmente, uma pessoa, ou um grupo de indivíduos percebem que vale a pena colocar em esforços e recursos, e desenvolver "algo" para que "outra coisa" pode ser facilmente preenchida ou aproveitados. O "algo" é o produto, e "outra coisa" é a solução que o projeto é suposto fornecer. Esta fase de desenvolvimento do projeto envolve muita discussão e sessões de brainstorming, onde o produto é concebido e "embora over".

O Scrum não descobrir durante esta fase. No entanto, a visão que os proprietários do projeto, pode, ou pode, afetar a maneira como o Scrum é implementado no projeto, no futuro. Isto é porque a natureza do produto a ser desenvolvidas podem exigir scrum para ser configurado de um certo modo a obtenção de resultados positivos a partir do projecto.

2. liberação Project - Introdução ao projeto de software  
Uma vez que o projeto é "pensamento sobre" o próximo passo lógico é trabalhar o âmago da questão acerca da dinâmica do projeto - o objetivo do projeto, a definição do produto, como o projeto deve idealmente entregar o produto, de que maneira, o que deve ser a "força" da equipe, como muitos membros da equipe, etc.

Processo de desenvolvimento Scrum não entram em cena, mesmo durante esta fase. A documentação referente ao projeto é criado e "tudo" sobre o produto a ser desenvolvido está finalizado - em preto e branco. O Scrum não defendo uma extensa documentação. Você não tem que se preparar diagramas de fluxo de sistema detalhados e estruturas de design extensas para começar com o desenvolvimento Scrum. A idéia básica é suficiente, e você só deve gastar tanto tempo e esforço que você pode obter "iniciados" com a atividade de desenvolvimento real. Apenas informações e especificações suficiente para desenvolver algumas das características mais importantes do produto.

O lançamento do projeto é a presença do "Product Owner" - a pessoa que funciona como um gerente de projeto no projeto Scrum, o Scrum Master que no exterior que Scrum está devidamente implementado e seguido pela equipe enquanto o projeto está sendo desenvolvido, e as partes interessadas ou proprietários de projeto que na realidade patrocinam o projeto. 
   
3. Criando o product backlog (Lista Características do Produto) - Definir as características e funcionalidades do produto  
O processo de desenvolvimento de scrum começa com a criação de uma lista principal contendo todas as características e funcionalidade necessárias para criar o produto na sua totalidade. Em termos simples, o produto inteiro, actualmente existente no papel como "imaginado" pelos interessados ​​e proprietários do projeto, está "dividido" em suas partes constituintes, que consiste em recursos individuais e funcionalidade. O produto é cuidadosamente e sistematicamente, discriminadas de forma que cada componente individual pode ser desenvolvido individualmente, testados e eventualmente integrado com outros componentes de software ou funcionalidades desenvolvidas pela equipe ao longo dos dias. Individualmente desenvolveram recursos e funcionalidades pode, eventualmente, "dar à luz" para um produto de trabalho quando integrado ou montados mais tarde.      

Cada recurso ou item de lista indivíduo é conhecido como um "Item Product Backlog" ou uma "história de usuário" em linguagem simples. Portanto, o backlog do produto ou na lista principal é fundamentalmente composta de itens do backlog do produto ou histórias de usuários. A história de usuário representa uma característica do produto, e é desenvolvida individualmente pelos membros da equipe durante o processo de desenvolvimento - os sprints diárias. Cada história pode ser minuciosamente definidos. A descrição, os critérios de aceitação (Pontos que precisam ser "cumprido" ou satisfeitas antes que a história pode ser considerado como desenvolvido com sucesso), a sua importância no projeto, e da maneira em que é suposto ser integrados no produto final, etc são mencionados para cada história de usuário.

Uma vez que a lista de recursos é criado, ele é organizado, dependendo da importância de cada história de usuário no product backlog. User stories importantes estão dispostos na parte de "top" da lista, histórias menos importantes no meio, e as características menos importantes e funcionalidade na parte inferior.

4. Sprint reunião de planejamento - o planejamento de como desenvolver as características do produto
As funções do product backlog como a principal "espinha dorsal" de todas as atividades relacionadas ao desenvolvimento em Scrum. Uma vez que é "desenvolvido" pelo proprietário do produto e as partes interessadas, a atividade de desenvolvimento real pode começar. Uma reunião especial conhecido como um encontro "Sprint Planning" é realizada para iniciar a atividade de desenvolvimento. A reunião conta com a presença de toda a equipe de desenvolvimento, além do proprietário do produto "PO" eo scrum master "SM".

A reunião é realizada em duas partes. Na primeira parte, o proprietário do produto seleciona algumas das mais importantes histórias de usuários ou características do produto a partir do topo do product backlog, e transfere-os para uma lista temporária conhecido como um "Sprint Backlog" para fins de desenvolvimento. Durante a reunião, o proprietário do produto aproveita a oportunidade para explicar cada história de usuário em detalhes para os membros da equipe - como histórias de usuário deve ser idealmente desenvolvidas e quais as actividades a equipe deve realizar para que cada história pode ser marcado como concluído com sucesso.

Durante a segunda metade do encontro, a equipe de desenvolvimento analisa o sprint backlog e distribui cada história de cada membro da equipe. Na prática, os membros da equipe decidir por unanimidade sobre quem deveria assumir que história, dependendo de suas habilidades de desenvolvimento e níveis de experiência. Simples e fácil itens developable são dadas a histórias menos experientes ou "mais fresco" apesar de difícil, ou mais complexos são absorvidos para o desenvolvimento por programadores ou desenvolvedores mais experientes e sênior.

5. Os sprints diárias - Desenvolver as características do produto
Esta é a principal área de actividade em Scrum. Todo o produto é desenvolvido em "bits" e "pedaços" através dos ciclos de sprint diárias. Um ciclo de sprint é nada mais que uma coleção de trabalho ou de "desenvolvimento" dias durante o qual os membros da equipe, na verdade, sentar na frente de um PC e desenvolver as características de funcionalidade ou de produtos. O ciclo de sprint é tempo encaixotado e não deve estender o seu prazo.

Cada item incluído no sprint backlog durante a reunião de planejamento do sprint deve ser desenvolvido enquanto o sprint está em andamento. Um breve encontro conhecido como "Scrum Meeting Daily" é realizado por um período máximo de 15 minutos a cada dia antes de os membros da equipe começam com o seu trabalho. O objetivo da reunião é para ter uma idéia a respeito de quanto trabalho foi concluído por cada membro no dia anterior, e que cada membro se propõe a fazer "hoje". Se um membro da equipe está enfrentando quaisquer questões ou problemas, pode ser mencionado durante a reunião, eo scrum master irá garantir que o problema seja resolvido rapidamente.

No Scrum, os sprints diárias normalmente pode durar de duas semanas, até um máximo de um mês. A duração da Sprint é decidido durante a segunda fase - o lançamento do projeto - e não deve ser prorrogado em nenhuma circunstância - mesmo se alguma das histórias de usuários no sprint backlog não foram desenvolvidos, ou cujo desenvolvimento é incompleto.
  
6. Sprint revisão - Verificação e produtividade verificação (é o desenvolvimento OK?)
Scrum salienta sobre o desenvolvimento da funcionalidade "expedivel" no final do ciclo diário Sprint. Cada história de usuário desenvolvido durante o sprint diária é verificada pelo proprietário do produto e verificado por sua confiabilidade, os níveis de aceitação, e se é "bug free". No Scrum, que é muito importante para entregar erro recursos livres - cada história de usuário deve ser devidamente testado para qualquer regressão, e se satisfaz os critérios de aceitação relacionados com o seu desenvolvimento.

Logo após o ciclo de sprint diário termina, uma reunião é realizada imediatamente para rever o desenvolvimento realizado pela equipe. É importante diferenciar entre os sprints diárias eo ciclo de sprint. A corrida diária é a atividade de desenvolvimento levada a cabo por toda a equipe em um determinado dia de trabalho. Muitos desses "sprints diários" se combinam para formar o "Ciclo Sprint Daily", também conhecido como o "ciclo de incremento do produto" em Agile. A reunião é realizada no final do ciclo de incremento do produto - o ciclo de sprint diária. É frequentado principalmente pelo proprietário do produto, o scrum master, e os membros da equipe. Não é obrigatório para as partes interessadas a participar desta reunião. Eles podem optar por assistir a ela, se assim o desejar.

O principal objetivo do evento, ou melhor, o encontro, é verificar se os recursos foram desenvolvidos pela equipe de acordo com o plano de produção, e se a funcionalidade tenha algum defeito "de fabricação". Cada recurso deve ser totalmente testado para todas as falhas da equipe antes de apresentá-lo nesta reunião. O proprietário do produto verifica se o recurso é livre de erros e verifica se o mesmo satisfaz os critérios de aceitação relacionados com ele. É uma espécie de seleção "final" realizada antes de apresentar o desenvolvimento para as partes interessadas e os proprietários do projeto na reunião de retrospectiva de sprint seguinte. Durante a reunião, o proprietário do produto instrui a equipe como ela pode melhorar o seu trabalho e oferecer ainda melhor produtividade, empregando práticas de programação mais eficientes e padrões.

7. Sprint retrospectiva - Finalizando a funcionalidade do produto e contemplando cerca de aperfeiçoamento  
Agile Scrum defende participação do cliente. O cliente é uma entidade muito importante no Scrum, e tem a palavra final quanto ao desenvolvimento de características do produto está em causa. O manifesto Agile salienta fundamentalmente na participação do cliente e entrega de incrementos de produtos calendarizados porque esses dois aspectos são muito importantes para o desenvolvimento de projetos de sucesso. Um cliente "satisfeito" com frequência "volta" para desenvolver mais projetos desde projetos bem sucedidos ajudar o cliente a ganhar maiores margens de lucro.           

A retrospectiva oferece uma oportunidade para toda a equipe para demonstrar a sua produtividade na frente das partes interessadas e clientes. Além de o proprietário do produto, scrum master, a equipe de desenvolvimento, a reunião também pode ser frequentado por usuários finais, o pessoal da equipe técnica, fornecedores, distribuidores e até mesmo outros funcionários pois o principal objetivo do encontro é aproveitar o feedback dos indivíduos e entidades intimamente ligado com o mercado, e que têm bom conhecimento sobre o produto que características são susceptíveis de "marcar" no mercado, uma vez que o produto é lançado, e que pode ajudar o produto em "vender".

A retrospectiva também oferece uma oportunidade para toda a equipe, bem como o cliente a refletir sobre o processo de desenvolvimento, e veja o que mais poderia ser feito para tornar o produto melhor. As discussões são realizadas para determinar a velocidade com que as histórias de usuários estão sendo desenvolvidos pela equipe, e que novos processos ou métodos precisam ser introduzidos para acelerar o processo.

Inscrever-se para a versão gratuita permanente da ferramenta de gerenciamento de projetos Quickscrum para ter uma idéia sobre como a ferramenta funciona eo que ela tem para oferecer. Para as pessoas novas para o processo scrum pode ser difícil de compreender como framework Agile é implementado em projetos ao vivo. Se você quiser saber mais sobre scrum e sua implementação, e desejo de desenvolver projetos de software dinâmicos e rentáveis​​, por favor envie-nos um e-mail em support@quickscrum.com - podemos enviar-lhe scrum documentação de treinamento para ajudá-lo a saber mais sobre scrum .   

No comments:

Post a Comment