domingo, 8 de dezembro de 2013

Funcionamento básico do Scrum

No Scrum os projetos são dividos em ciclos chamados de "Sprints". Esses Sprints representam um Time Box, muitas vezes mensal, no qual um conjunto de atividades são inseridas e posteriormente devem ser executadas. A divisão dos sprints, que são ciclos, configura no Scrum uma metodologia iterativa e incremental, como em outras metodologias de desenvolvimento ágil.
As funcionalidades a serem implementadas em um projeto são mantidas em uma lista que é conhecida como Product Backlog. No início de cada Sprint, faz-se uma reunião de planejamento (Sprint Planning Meeting), sendo que o Product Owner prioriza os itens do Product Backlog e a equipe seleciona as atividades que ela será capaz de implementar durante o Sprint que se inicia. As tarefas alocadas em um Sprint são transferidas do Product Backlog para o Sprint Backlog.
A cada dia de uma Sprint, a equipe faz uma breve reunião (normalmente de manhã), chamada Daily Scrum(reunião diária). O objetivo é disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho do dia que se inicia.
Ao final de um Sprint, a equipe apresenta as funcionalidades implementadas em uma Sprint Review Meeting(revisão). Finalmente, faz-se uma Sprint Retrospective(retrospectiva) e a equipe parte para o planejamento do próximo Sprint. Assim reinicia-se o ciclo, como mostra a figura:
Algumas definições rápidas:
Sprint - Ciclos do projeto;
Product Backlog - Lista com funcionalidades a serem implementadas no produto;
Sprint Backlog - Lista com funcionalidades a serem implementadas no Sprint;
Product Owner - No Scrum é a pessoa que define os ítens do Product Backlog e os priorizam;
Daily Scrum - Reuniões diárias que definem as prioridades do dia corrente.

sexta-feira, 6 de dezembro de 2013

Gerenciamento de Portfólio

Vamos abordar hoje alguns conceitos básicos de gerenciamento de portfólio.

Primeiramente, o que seria gerenciamento de portfólio?

Bem, basicamente é a forma de gerenciar um conjunto de projetos e programas como um todo sistêmico, alinhado com a estratégia organizacional.

Funções dos Portfólios:
  • Manter a visibilidade de todas as informações vitais dos projetos
  • Alinhar os projetos com as metas e objetivos empresariais
  • Facilitar o acesso e as comunicações
  • Subsidiar a tomada de decisões
  • Estabelecer alertas automáticos quando o projeto adquire um status crítico
Benefícios:

  • Agilidade 
  • Supervisão central  de orçamento
  • Gestão de risco
  • Alinhamento estratégico dos investimentos em TI
  • Demanda e gestão de investimentos
  • Padronização de procedimentos de investimento, regras e planos.
Na sua forma mais madura o gerenciamento de portfólio se divide na criação de três portfólios:
  1. Portfólio de aplicação: comparação entre os gastos em sistemas estabelecidos com base em seu valor relativo para a organização.
  2. Portfólio de infraestrutura: gestão dos componentes essenciais da operação, tais como políticas, processos, equipamentos, dados, recursos humanos e contatos externos, para eficácia global. Pode ser dividido em categorias de gerenciamento de sistemas, gerenciamento de redes e gerenciamento de armazenamento.
  3. Portfólio de Projetos: aborda especificamente as questões com os gastos com o desenvolvimento de capacidades inovadoras em termos de retorno de investimento potencial, reduzindo sobreposições de investimento em situações em que a reorganização ou aquisição ocorra, ou o cumprimento de mandatos legais ou regulamentares.





quinta-feira, 5 de dezembro de 2013

                Definição e Conceitos do Scrum


      Quando falamos em Scrum temos que ter em mente alguns conceitos, mas antes de falarmos destes conceitos que são usados diariamente no ambiente que utiliza o Scrum, iremos dar uma breve definição do que é o Scrum.

    O Scrum é uma metodologia ou processo de desenvolvimento de software iterativo e incremental para gerenciamento de projetos e desenvolvimento ágil de software. O scrum possui algumas características, como por exemplo: reuniões frenquentes, rápido feedback, transparência no planejamento e desenvolvimento, entregas freqüentes entre outros.

     Agora que já vimos uma breve definição do scrum, vamos descrever alguns conceitos. Para uma melhor aprendizagem eles irão ser divididos em 3 partes: papeis, artefatos e eventos.

         Papeis

Productowner – Podemos dizer que é o dono do produto, ou seja, é o cliente do produto ou alguém que o cliente considera como responsável para tomar as decisões em relação ao projeto como por exemplo priorizar funcionalidades desejada, esclarecer as regras de negócio e dar o feedback sobre o produto produzido.

Scrum Master- É uma espécie de gerente, porém não atribui tarefas nem fiscaliza o trabalho. O Scrum Master atua como facilitador e mediador garantindo que o time seja sempre produtivo e garante que nenhuma dificuldade interfira no andamento do projeto. Ele também é responsável por garantir que as práticas do Scrum sejam seguidas (as reuniões, os artefatos, etc). Quanto maior o nível de maturidade do time menor a importância do Scrum Master.

Scrum Team Ou como é normalmente é chamado “O time Scrum”, é um grupo multidisciplinar, de 5 a 9 pessoas, que vai projetar, desenvolver, testar e implantar o software. O time não possui um gerente, ele é auto gerenciável. Não há quem delegue tarefas. Cada pessoa escolhe que tarefa vai assumir dentro do que foi definido para o sprint. Se algum integrante encontra dificuldade em uma tarefa o Scrum Master (ou alguém no grupo que possua conhecimento sobre o domínio em questão no caso de uma dificuldade técnica) deve ajudar. Se algum integrante não está trabalhando com o comprometimento suficiente o grupo deve cobrá-lo. Ou seja, a função de controle não pertence a um gerente e sim ao próprio time como um todo. O time deve escolher a melhor maneira de trabalhar para cumprir os objetivos do projeto. O time tem que estar comprometido com o projeto. 

      Artefatos

ProductBacklog – É a lista com todas as funcionalidades referente ao projeto. OProductBacklog é mantido pelo ProductOwner no qual pode adicionar ou alterar funcionalidades a qualquer momento desde que essas funcionalidades não estejam dentro do sprint atual.

Sprint Backlog – Contém as funcionalidades do ProductBacklog que, baseado na prioridade definida pelo cliente e na complexidade estimada, o time e o ProductOwner escolheram para executar no sprint. Quando vão entrar no Sprint Backlog as funcionalidades são quebradas em tarefas específicas que serão implementadas pelo time.

Burn-downchart – É um gráfico que possibilitauma forma rápida de visualizar oandamento das atividades. Pode existir um para o sprint e um geral para o projeto. Mostra dia a dia o quanto de trabalho já foi realizado. Com ele você vê facilmente os pontos em que o projeto não rendeu o esperado e pode investigar os motivos e corrigir pra melhorar a produtividade.

Exemplo de gráfico Burn-Down:

                       Burn Down Chart (Gráfico Burn Down)

       Eventos

Sprint Planning - reunião entre o time e o ProductOwner(PO) para negociar o que será produzido no sprint. Com base na prioridade definida pelo PO o time vai dividindo as funcionalidades do ProductBacklog em tarefas menores e estimando a complexidade dessas tarefas.

Daily Scrum – Reunião diária entre os membros do time na qual deve durar no máximo 15 min que tem como objetivo é manter a equipe e o Scrum Master informados de todo o progresso e das dificuldades que possam estar atrasando o desenvolvimento do progresso.

Sprint Reviews – Reunião informal realizada no final de cada sprint. O objetivo é apresentar (e demonstrar o uso se for o caso) do que foi produzido no sprint.

Sprint Retrospectives – Reunião também realizada ao final do Sprint com objetivo de analisar a forma como foi executada as atividade do Sprint e procurar maneiras de melhorar o processo.