domingo, 18 de janeiro de 2015

Como Funciona o Kanban?

Figura 1: Quadro Kanban
O Kanban usa um mecanismo de controle visual para acompanhar o trabalho à medida que ele flui através das várias etapas do fluxo de valor. Tipicamente usa-se um quadro branco com post-its, ou um sistema de cartões eletrônicos. Fazer os dois é, provavelmente, uma boa prática. O quadro é dividido em áreas definidas, sendo possível controlar, por exemplo, as atividades que estão pendentes, as que estão sendo desenvolvidas no momento, as que estão em teste e as que podem ser utilizadas no produto a ser entregue ao cliente e as concluídas (já entregues ao cliente).
O Kanban possui uma característica Pull System(Sistema puxado) onde os times é que puxam o trabalho, na medida de sua capacidade, e não o oposto, quando o trabalho é empurrado para a equipe (sistema mais comum de trabalho).
São definidos limites explícitos para quantos itens podem estar em progresso em cada estado do fluxo de trabalho. Esses limites ajudam a evitar gargalos ou problemas causados em alguma fase do projeto. 

Fonte: Kanban e Scrum - obtendo o melhor de ambos

A Ideia Central do Kanban



O Kanban é baseado numa ideia muito simples. As Atividades em andamento devem ser limitadas. Algo novo só deve ser iniciado quando uma peça de trabalho existente é liberada ou quando uma função automática inicia isso.
O Kanban, ou cartão de sinalização, é um sinal visual produzido indicando que novo trabalho pode ser iniciado e que a atividade atual não coincide com o limite acordado. Isso não soa muito revolucionário nem parece afetar profundamente o desempenho, cultura, capacidade e maturidade de uma equipe e a organização na qual está inserida. Mas o impressionante é que afeta! O Kanban parece uma mudança pequena e, no entanto, muda tudo a respeito de uma empresa.
O que percebemos sobre o Kanban é que ele é uma abordagem para mudança gerencial. Ele não é um processo ou ciclo de vida de gerenciamento de projetos ou de desenvolvimento de software. O Kanban é uma abordagem para introduzir mudanças em um ciclo de desenvolvimento de software ou metodologia de gerenciamento de projetos. O princípio do Kanban é que você inicia com o que estiver fazendo agora. Você entende seu processo atual ao mapear o fluxo de valor e ao concordar, em seguida, em limitar as Atividades em andamento (do inglês WIP) para cada estágio desse processo. A partir daí você começa a rastrear as atividades pelo sistema para iniciá-las quando os sinais do Kanban aparecerem.
O Kanban tem sido útil para equipes ágeis de desenvolvimento de software, mas tem ganhado popularidade, igualmente, em equipes que utilizam uma abordagem mais tradicional. Ele está sendo introduzido como parte de uma iniciativa Lean (enxuta) para moldar a cultura das organizações e encorajar a melhoria contínua.
Porque o WIP é limitado em um sistema Kanban, tudo que fica bloqueado por qualquer motivo tende a parar o sistema.
Se certa quantidade de itens de trabalho fica bloqueada, todo o processo pára de funcionar. Isso cria a necessidade de concentrar toda a equipe e toda a empresa na solução do problema para desbloquear o item e restaurar o fluxo.

quarta-feira, 14 de janeiro de 2015

Introdução ao Extreme Programming (XP)

O Extreme Programming ou XP, como é chamado carinhosamente é uma nova metodologia de desenvolvimento com foco em agilidade de equipes e qualidade de projetos, apoiada em valores como simplicidade, comunicação, feedback e coragem. Logo podemos perceber que XP é uma metodologia baseada em comportamentos e atitudes. Dessa forma, ela propicia que o projeto seja executado dentro do prazo e do orçamento, fazendo então com que o cliente fique satisfeito e a equipe de desenvolvimento mantenha o foco durante o projeto.

Ao contrário do que se pensa, XP pode ser aplicada em projetos de vários portes, pois seu dinamismo e flexibilidade é tão latente, que permite seu uso por equipes criativas em qualquer projeto, porém é necessário ter muita disciplina ao usá-la em um projeto.É importante lembrar também que os valores citados acima, alicerçam a metodologia, pelos seguintes motivos:
  • A simplicidade é necessária desde a forma como se levanta requisitos até a codificação e os testes da solução desenvolvida;
  • A comunicação é obrigatória para que não haja lacunas em processos e problemas entre equipe, cliente e fornecedor;
  • O feedback é a pratica fundamentada em retornar informações entre os membros da equipe e também na relação com o cliente, desde responder e-mails, telefonemas bips e demais meios. Devido a isso, é um mecanismo para melhorar a prática de comunicação explanada acima;
  • E a coragem para saber dizer NÃO quando necessário, ou então para dizer que o projeto vai demorar além do estimado, pois os novos requisitos precisam ser codificados ou o código já em funcionamento precisa ser refatorado.
O objetivo principal do XP é levar ao extremo um conjunto de práticas que são ditas como boas na engenharia de software. Entre elas podemos citar o teste, visto que procurar defeitos é perda de tempo, nós temos que constantemente testar.

Para conseguir se adaptar as mudanças o XP preconiza ciclos curtos que nos dá previsibilidade e redução de incertezas/riscos, simplicidade e melhorias constantes de código (refactoring) para facilitar a mudança e testes automatizados e integração contínua para aumentar a confiança.

Por fim, XP preconiza que codificação é a atividade central do projeto, que os testes (que também são código) servem de especificação de requisitos, e a comunicação oral entre desenvolvedores é fundamental.

Isto não quer dizer que a equipe XP não constrói documentos e não faz modelagem, ela só não considera que um modelo é um documento. Modelos são feitos o tempo todo seja como quadro branco, sessões de design, etc, mas servem como um suporte para o concreto que realmente importa.

Fonte: http://www.devmedia.com.br/extreme-programming-conceitos-e-praticas/1498