Famlia Crystal Uma Metodologia JustinTime Centrada em Pessoas

  • Slides: 48
Download presentation
Família Crystal Uma Metodologia Just-in-Time Centrada em Pessoas Fabiana Ferreira do Nascimento [fabiana@dsc. ufcg.

Família Crystal Uma Metodologia Just-in-Time Centrada em Pessoas Fabiana Ferreira do Nascimento [fabiana@dsc. ufcg. edu. br] Leidjane Matos de Souto [leidjane@dsc. ufcg. edu. br] Kylly Araújo de Oliveira [kylly@dsc. ufcg. edu. br]

Roteiro n n n n Introdução Metodologias Ágeis Metodologias Just-in-Time Metodologia Crystal Metodologia Proposta

Roteiro n n n n Introdução Metodologias Ágeis Metodologias Just-in-Time Metodologia Crystal Metodologia Proposta Conclusões Referências Gerência de Processos

Introdução Desenvolvimento de Software no passado n n n Engenharia de Software Tradicional: n

Introdução Desenvolvimento de Software no passado n n n Engenharia de Software Tradicional: n Analisar, projetar, e só depois começar a construir Era preciso prever o futuro n Como ter certeza que se sabe hoje exatamente o que se quer amanhã? Temores n Mudanças nos requisitos depois que a fase de análise e design foi concluída Gerência de Processos

Introdução Gerência de Processos

Introdução Gerência de Processos

Introdução Desenvolvimento hoje n Metodologias modernas incentivam iterações curtas Mudanças em etapas avançadas do

Introdução Desenvolvimento hoje n Metodologias modernas incentivam iterações curtas Mudanças em etapas avançadas do desenvolvimento seriam mais baratas Mudança não é mais um bicho tão feio n Podemos conviver com a mudança n n Gerência de Processos

Introdução Desenvolvimento hoje (cont. ) n Se mudar já não custa tanto, por que

Introdução Desenvolvimento hoje (cont. ) n Se mudar já não custa tanto, por que não abraçá -la de uma vez? n Deixar coisas que não são necessárias agora para depois n Deixar de investir tanto tempo no design prévio n Tomar a liberdade de mudar deliberadamente o design em qualquer etapa do desenvolvimento Gerência de Processos

Introdução Gerência de Processos

Introdução Gerência de Processos

Introdução n n Hoje devemos procurar uma maneira para melhor adaptar no projeto as

Introdução n n Hoje devemos procurar uma maneira para melhor adaptar no projeto as mudanças que irão surgir. Opções: n n Metodologias densas Metodologias ágeis Gerência de Processos

Introdução n n Métodos ágeis podem conter a solução. A estratégia é reduzir o

Introdução n n Métodos ágeis podem conter a solução. A estratégia é reduzir o custo das mudanças. Como ? n n Diminuir o tempo de entrega das realeses Procurar soluções mais simples Fornecer projeto de qualidade continuamente Testar constantemente Gerência de Processos

Introdução n n n Movimento iniciado por programadores experientes e consultores em desenvolvimento de

Introdução n n n Movimento iniciado por programadores experientes e consultores em desenvolvimento de software. Questionam e se opõe a uma série de mitos/práticas adotadas em abordagens tradicionais de Engenharia de Software e Gerência de Projetos. Manifesto Ágil: • Assinado por 17 desenvolvedores em Utah em fevereiro/2001. Gerência de Processos

Manifesto Ágil “Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando

Manifesto Ágil “Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através desse trabalho, passamos a valorizar: n Indivíduos e interações mais que processos e ferramentas; n Software em funcionamento mais que documentação abrangente; n Colaboração com o cliente mais que negociação de contratos; n Responder a mudanças mais que seguir um plano. Ou seja, mesmo dando valor aos itens à direita, valorizamos mais os itens à esquerda. " Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, ard Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas Gerência de Processos

Metodologias ágeis n Uma metáfora para Desenvolvimento de Software: n n “Um jogo Cooperativo

Metodologias ágeis n Uma metáfora para Desenvolvimento de Software: n n “Um jogo Cooperativo de Invenção e Comunicação”. Alistair Cockburn. Como um grupo de pessoas escalando uma montanha em conjunto. n n Jogo cooperativo, finito, onde se busca alcançar um objetivo. Como representantes de metodologias ágeis podemos citar: XP, Scrum, Crystal etc. Gerência de Processos

Metodologias Ágeis n Um time pode ser mais efetivo em realizar mudanças se: n

Metodologias Ágeis n Um time pode ser mais efetivo em realizar mudanças se: n n Reduzir o custo de trocar informações Reduzir o tempo entre fazer uma decisão e ver as conseqüências dessa decisão Gerência de Processos

Metodologias Ágeis n n n Pessoas ágeis não trabalham bem em ambientes de desenvolvimento

Metodologias Ágeis n n n Pessoas ágeis não trabalham bem em ambientes de desenvolvimento densos e vice -versa. Processos rigorosos são projetados para adaptar as pessoas para uma organização, enquanto que processos ágeis são projetados para desenvolver o potencial em cada time ou indivíduo. O projeto é um ecossistema ? Gerência de Processos

Metodologias Ágeis n Processos ágeis características: n n possuem as seguintes Usa subprojetos curtos

Metodologias Ágeis n Processos ágeis características: n n possuem as seguintes Usa subprojetos curtos Refletindo sobre suas práticas Times pequenos e reunidos na mesma sala Atendendo a comunidade Gerência de Processos

Metodologias Ágeis n Propostas para o gasto com recursos no projeto: n n n

Metodologias Ágeis n Propostas para o gasto com recursos no projeto: n n n MFI – o time pode escolher gastar recursos agora para ganhar informações o mais cedo quanto possível MFF – o time pode optar a gastar recursos para preservar a flexibilidade posteriormente. Diferentes estratégias de projeto são feitas pela decisão de que acontecimentos são previsíveis, imprevisíveis mas resolvíveis, ou não-resolvíveis, decidindo quais são MFI ou MFF. Gerência de Processos

Metodologias Ágeis n Dez princípios para metodologias ágeis: 1. Projetos diferentes necessitam de diferentes

Metodologias Ágeis n Dez princípios para metodologias ágeis: 1. Projetos diferentes necessitam de diferentes metodologias – 2. Quando existe risco se o projeto anda devagar ou com gasto de tempo em planejamento, então técnicas ágeis são mais apropriadas. Quando existe risco em saltar o planejamento então técnicas plan-driven são mais apropriadas. Metodologias pequenas trazem benefícios quando o custo aumenta – Como metodologias pequenas exigem poucos elementos de controle, isso permite trabalhar com uma maior eficiência e atacar problemas maiores. Gerência de Processos

Metodologias Ágeis 3. 4. Grandes times necessitam de mais elementos de comunicação Projetos mais

Metodologias Ágeis 3. 4. Grandes times necessitam de mais elementos de comunicação Projetos mais críticos precisam de mais elementos de validação – 5. Sistemas de armamentos automáticos necessita de um gasto maior de tempo na localização e eliminação de defeitos do que um sistema de emissão de ordens para almoçar num restaurante. Formalidade, Processo e Documentação não substituem a Disciplina, Habilidade e Compreensão – Um gerente de projeto ágil confia em habilidades, qualidade e compreensão, e exibe menos da formalidade, processo e documentação Gerência de Processos

Metodologias Ágeis 6. Interatividade, comunicação face-a-face é o canal mais barato e mais rápido

Metodologias Ágeis 6. Interatividade, comunicação face-a-face é o canal mais barato e mais rápido para intercâmbio de informação – Suponha que um desenvolvedor ganhe $2 por minuto. Considerando que ele faz 100 trocas de informações por semana, e que cada troca leva em média 1 minuto, então, por semana ele custa $200. Considerando que 1 ano possui 50 semanas, então ele custa por ano $10, 000. Considere 10 pessoas no projeto, o custo aumenta para $100, 000 por ano. Agora se considerarmos a troca de informações com pessoas de outra sala, e que no total, com o deslocamento entre as salas se gaste 5 minutos, por conta de atraso das escadas ou do elevador, temos o custo elevado para $500, 000. Gerência de Processos

Metodologias Ágeis 7. Aumento de comunicação e feedback reduz a necessidade para produtos intermediários

Metodologias Ágeis 7. Aumento de comunicação e feedback reduz a necessidade para produtos intermediários – 8. O aumento do uso de comunicação interativa nunca eliminará a necessidade de documentação de projeto, mas pode reduzir durante os estágios de projeto e desenvolvimento. Desenvolvimento concorrente para determinar o projeto em tempo menor versus Desenvolvimento serial para obter um custo menor no desenvolvimento do projeto. Gerência de Processos

Metodologias Ágeis Gerência de Processos

Metodologias Ágeis Gerência de Processos

Metodologias Ágeis 9. Eficiência é direcionada também de forma a não engargalar atividades: –

Metodologias Ágeis 9. Eficiência é direcionada também de forma a não engargalar atividades: – A prudência nos diz que os modeladores devem completar e estabilizar a sua tarefa antes de passá-la para o DBA. Gerência de Processos

Metodologias Ágeis 10. Desenvolvimento sobre pontos estratégicos – – – Desenvolvedores dedicados Desenvolvedores experientes

Metodologias Ágeis 10. Desenvolvimento sobre pontos estratégicos – – – Desenvolvedores dedicados Desenvolvedores experientes Pequenos times Testes automatizados Fácil acesso aos usuários Gerência de Processos

Metodologias Just-in-Time (ou dinâmica) n n Levando em consideração as peculiaridades dos métodos ágeis

Metodologias Just-in-Time (ou dinâmica) n n Levando em consideração as peculiaridades dos métodos ágeis outra questão a se levantar é quanto a adaptabilidade do projeto no tempo Algumas idéias ajudam na construção de uma metodologia just-in-time (ou dinâmica) Gerência de Processos

Metodologias Just-in-Time (ou dinâmica) n n n Antes do projeto: n Entrevista com o

Metodologias Just-in-Time (ou dinâmica) n n n Antes do projeto: n Entrevista com o pessoal de projetos anteriores na organização No início do projeto: n Construir esboço da metodologia para o projeto Durante o primeiro incremento: n Entrevista com membros da equipe Depois do primeiro incremento: n Realizar um workshop da equipe após cada incremento Durante incrementos subseqüentes: n Aplicar as melhorias. Caso elas não funcionem voltar para o modelo original e propor outras e assim em diante. Gerência de Processos

Metodologias Just-in-Time (ou dinâmica) n n Metodologias ágeis para ambientes voltados para o mercado

Metodologias Just-in-Time (ou dinâmica) n n Metodologias ágeis para ambientes voltados para o mercado (time-to-market) Pontos fortes dos indivíduos: n n Comunicação pessoal (face-to-face) Iniciativa Gerenciamento de dependências intra-projeto Variabilidade e inconsistência das pessoas Gerência de Processos

Família Crystal n n n Criada por Alistair Cockburn http: //alistair. cockburn. us/crystal Editor

Família Crystal n n n Criada por Alistair Cockburn http: //alistair. cockburn. us/crystal Editor da série Agile Software Development da Addison-Wesley. Gerência de Processos

Família Crystal n Filosofia básica: n n n ênfase em comunicação leve nos produtos

Família Crystal n Filosofia básica: n n n ênfase em comunicação leve nos produtos gerados Princípios: n Precisamos de menos produtos intermediários se possuímos: n n canais de comunicação informal ricos e rápidos entrega freqüente de código funcionando uso dos pontos fortes das pessoas (conversas. olhar a sua volta, interagir com outros) estar ciente dos pontos fracos das pessoas (baixa disciplina, falta Gerência de Processos de cuidado)

Família Crystal n Termos: n n n Tamanho da metodologia: número de elementos de

Família Crystal n Termos: n n n Tamanho da metodologia: número de elementos de controle (artefatos, modelos, atividades, milestones, medidas de qualidade etc). Densidade: é o nível de detalhamento e consistência exigida nos elementos de controle. Tamanho do projeto: número de pessoas envolvidas. Gerência de Processos

Família Crystal n Além das idéias sugeridas já mencionadas de como construir uma metodologia,

Família Crystal n Além das idéias sugeridas já mencionadas de como construir uma metodologia, podemos acrescentar: n Considerar o tamanho e a criticalidade. Os desenvolvedores definem um escopo de preocupação, priorizando alguma qualidade para o projeto. Baseado nestas escolhas, o time seleciona quão leve ou pesada será a metodologia que eles querem para o projeto. Gerência de Processos

Família Crystal n Separamos a criticalidade em quatro zonas: n n Perda de conforto:

Família Crystal n Separamos a criticalidade em quatro zonas: n n Perda de conforto: quando o sistema falha, a sua conseqüência é a perda de conforto das pessoas Perda de dinheiro: quando existe problemas no sistema, suas conseqüências são a perda de dinheiro em escalas recuperáveis Perda de muito dinheiro: quando o sistema falha, grandes perdas são calculadas Perda de vida: falha no sistema implica na possibilidade de vidas serem perdidas Gerência de Processos

Família Crystal ? Gerência de Processos

Família Crystal ? Gerência de Processos

Família Crystal n Escopo Gerência de Processos

Família Crystal n Escopo Gerência de Processos

Família Crystal n n Crystal Orange: escopo Para projetos D 40: Até 40 pessoas

Família Crystal n n Crystal Orange: escopo Para projetos D 40: Até 40 pessoas Perda de dinheiro como fator crítico L 6 L 20 L 40 L 80 E 6 E 20 E 40 E 80 D 6 D 20 D 40 D 80 C 6 Amber C 20 C 40 C 80 Não indicados para projetos muito grandes (insuficiência em subequipes) Não indicados para projetos críticos (verificação insuficiente) (Described in Surviving OO Projects, Cockburn, 1998, pp. 77 -93) Gerência de Processos

Família Crystal n n n Crystal Orange: papéis e equipe Papéis: Sponsor, Business expert,

Família Crystal n n n Crystal Orange: papéis e equipe Papéis: Sponsor, Business expert, Usage expert, Technical facilitator, Business analyst/designer, Project Manager, Architect, Lead designer/programmer, Design Mentor, Reuse Point, Writer, Tester, UI designer. Equipes: System planning, Project monitoring, Architecture, Technology, Functions, Infrastructure, External test. Gerência de Processos

Família Crystal n Crystal Orange: padrões · · · Software é entregue incrementalmente e

Família Crystal n Crystal Orange: padrões · · · Software é entregue incrementalmente e regularmente, a cada 2 -4 meses, Progresso é acompanhado por milestones, consistindo de entrega de software ou decisões principais, em oposição a documentos escritos, Exista teste de regressão automatizado para funções da aplicação, Exista o envolvimento direto do usuário, Existam dois usuários revisores por release, Workshops para refinar a metodologia são feitos no início e na metade de cada incremento. Gerência de Processos

Família Crystal n Crystal Orange: produtos · · Artefatos incluem um documento de requisito,

Família Crystal n Crystal Orange: produtos · · Artefatos incluem um documento de requisito, seqüência de release, planejamento, relatórios de estados, documento de projeto da UI, um simples modelo de objeto, especificações das dependências entre as equipes, manual do usuário, código fonte, casos de teste, migração de código, cada artefato é desenvolvido até que seja entendido pelos colegas para um nível de precisão e estabilidade que permita revisões. Templates dos artefatos, estilo de código, padrões de IU, detalhes de teste de regressão deixados como padrões locais para serem ajustados e mantidos pela equipe. Gerência de Processos

Família Crystal n n Crystal Clear: escopo Para projetos D 6 3 -6 pessoas,

Família Crystal n n Crystal Clear: escopo Para projetos D 6 3 -6 pessoas, na mesma sala Perda de dinheiro como fator crítico Não indicado para projetos maiores (insuficiência de coordenação de grupo) Não indicado para projetos de vida-crítica (insuficiência verificação) E 6 E 10 D 6 D 10 C 6 C 10 (Described in Crystal Clear, Cockburn, 2002 also in Agile Software Development, Cockburn 2001) Gerência de Processos

Família Crystal n n n Crystal Clear: papéis e equipe Pápéis: Sponsor, Senior Designer,

Família Crystal n n n Crystal Clear: papéis e equipe Pápéis: Sponsor, Senior Designer, Designer/Programmer, e User (pelo menos part-time). As pessoas do projeto compartilham outros papéis: Project Coordinator, Business Expert, Requirements Gatherer. Equipe: única equipe Gerência de Processos

Família Crystal n Crystal Clear: padrões Os mesmos padrões de política aplicados pelo Orange,

Família Crystal n Crystal Clear: padrões Os mesmos padrões de política aplicados pelo Orange, exceto que os incrementos são dois meses ou menos. Gerência de Processos

Família Crystal n Crystal Clear: produtos e milestones n Requer poucos artefatos: seqüência de

Família Crystal n Crystal Clear: produtos e milestones n Requer poucos artefatos: seqüência de releases, planejamento de revisões e entregas, use cases, esboçar planos e anotações quando necessário, simples modelo de objetos, execução e migração do código, casos de teste e manual do usuário, n Templates de produtos, estilo de código, padrões de interface do usuário e detalhes de teste de regressão ainda deixados como padrões locais a serem mantidos pela equipe, Gerência de Processos

Metodologia Proposta n Motivação: n n Abordagem do projeto Preferências pessoais Gerência de Processos

Metodologia Proposta n Motivação: n n Abordagem do projeto Preferências pessoais Gerência de Processos

Metodologia Proposta Estimativa Proposta Antes do Projeto (Contextualização) Projeto unidade. Início de A avaliação

Metodologia Proposta Estimativa Proposta Antes do Projeto (Contextualização) Projeto unidade. Início de A avaliação dadotempo complexidade do (Planejamento) (cliente) entrega problema definirá os elemento A identificação do produto, por necessários asetempo serem trabalhados, exemplo, de o mesmo é de Estimativa de previsão do encomenda ou indicará de no prateleira, definirá produto mercado. e, portanto, a dimensão Estimativa em unidade de tempo, Aplica-se a Tamanho da ao a Haverá questão possíveis prazos de ade necessidade de saber a da metodologia. equipe incremento experiência da equipe em projetos manutenção, portanto, a estabilidade dae, equipe, prevendo passados definirá a questão da -Prazo; necessidade de documentação. -Definir artefatos, papéis, possíveis manutenções e a partir de viabilidade do projeto no prazo de Servirá de consulta nas tomadas padrões, produtos, -Dimensão do problema; então detectar o grau de necessidade milestones, àepartir do proposto pelo cliente também a eetc, que armazenará -Classificação segundo adecisões futuras, de documentação. escopo da família Crystal. necessárias de pessoas natureza do produto; quantidade possíveis modificações nas da -Construir esboço da equipe. -Ciclo de vida do projeto; metodologias já adotadas, de forma a metodologia refiná-las adequadamente às -Experiência da equipe envolvida em projetos necessidades dos projetos. similares; -Base de Informações (variações ocorridas nos projetos anteriores). I n c r e m e n t o -Realizar workshop da equipe para: Depois * avaliar aprendizado e melhorias * rever variáveis do projeto Se houver mudanças, realimentar Durante -Entrevista com membros da equipe -Mudar itens problemáticos fáceis de mudar ou catastróficos se não mudar Base de informações compartilhada Gerência de Processos

Metodologia Proposta Início do Projeto (Planejamento) Antes do Projeto (Contextualização) Tamanho da equipe -Prazo;

Metodologia Proposta Início do Projeto (Planejamento) Antes do Projeto (Contextualização) Tamanho da equipe -Prazo; -Dimensão do problema; -Classificação segundo a natureza do produto; -Ciclo de vida do projeto; -Experiência da equipe envolvida em projetos similares; -Base de Informações (variações ocorridas nos projetos anteriores). -Definir artefatos, papéis, padrões, produtos, milestones, etc, à partir do escopo da família Crystal. -Construir esboço da metodologia Aplica-se ao incremento I n c r e m e n t o -Realizar workshop da equipe para: Depois * avaliar aprendizado e melhorias * rever variáveis do projeto Se houver mudanças, realimentar Durante -Entrevista com membros da equipe -Mudar itens problemáticos fáceis de mudar ou catastróficos se não mudar Base de informações compartilhada Gerência de Processos

Conclusões n n A família crystal ensina que aspectos considerar quanto a escolha de

Conclusões n n A família crystal ensina que aspectos considerar quanto a escolha de uma metodologia a ser aplicada a um projeto Um dos aspectos mais importantes considerado nessas metodologias é a forma de comunicação entre as pessoas envolvidas, conseqüência direta para a produtividade e respostas a mudanças. Gerência de Processos

Conclusões n n Os projetos devem ser priorizados quanto a sua criticalidade para a

Conclusões n n Os projetos devem ser priorizados quanto a sua criticalidade para a escolha de uma metodologia adequada. Apesar dos princípios terem participação na escolha da metodologia, as preferências e prioridades do projeto são relevantes para esta decisão. Gerência de Processos

Referências n n [1] Cockburn, A. , "Selecting a project's methodology, " IEEE Software,

Referências n n [1] Cockburn, A. , "Selecting a project's methodology, " IEEE Software, July/August 2000, pp. 64 -71, early version vailable on line at http: //members. aol. com/humansandt/papers/methyperproj ect/methyperproject. htm. [2] Cockburn, A. , "Just-in-time methodology construction, " in the proceedings of Extreme Programming and Flexible Processes, 2000 (to appear), early version available online at http: //members. aol. com/humansandt/papers/jitmethy/jitme thy. htm. Gerência de Processos

Referências n n [3] Beck, K. , Extreme Programming Explained, Addison. Wesley Longman, 1999.

Referências n n [3] Beck, K. , Extreme Programming Explained, Addison. Wesley Longman, 1999. [4] Highsmith, J. , Adaptive Software Development, Dorset House, 2000. [5] Cockburn, A. , Crystal Clear: A Human-Powered Methodology for Small Teams, Addison-Wesley Longman, in preparation, early drafts available online at http: //members. aol. com/humansandt/crystal/clear. [6] Stapleton, J. , DSDM Dynamic Systems Development Method, Addison-Wesley, 1997, or online at. Gerência de Processos