28 outubro 2016

Michelly Oliveira

Porque você deve usar um software com Kanban para gerenciar sua equipe?

 
Autora: Juliana Sampaio


Os ganhos que uma empresa obtém ao adotar uma metodologia ágil de gerenciamento de projetos com o uso da ferramenta Kanban são vários. Não é a toa que o 1º princípio do Manifesto Ágil é “Indivíduos e interação entre eles mais que processos e ferramentas”. As empresas que valorizam os indivíduos mais do que processos, atraem colaboradores motivados e inovadores. Mas nem tudo são flores, o gerente de projetos deve ter atenção redobrada em manter a equipe motivada e organização nestes ambientes mais livres.

Neste artigo vamos aprofundar nos ganhos que essa mudança traz para a sua equipe de gerenciamento de projetos, e eles são muitos. Veja a seguir:

 Maior controle das atividades

Quando você gerencia uma equipe utilizando um software com Kanban, delegar tarefas fica muito mais fácil, já que a caráter visual dessa ferramenta permite um maior controle sobre o que ainda precisa ser feito e a quantidade de atividades que cada colaborador já está desempenhando.

Outra vantagem é desse sistema é que o gerente de projetos consegue acompanhar o andamento das tarefas de forma mais fácil, com notificações sobre atrasos e gargalos.

Com a adoção do kanban, gerenciar vários projetos fica bem mais simples, pois cada um gera o seu quadro, o que facilita bastante a vida do gerente.

Melhora a Comunicação

Ao usar uma ferramenta on-line dessas, o feedback dos colaboradores é imediato. E em empresas que usam a metodologia ágil, feedback constante é fundamental. As interações na equipe também evoluem muito quando o kanban é usado. Quer mais dicas para melhorar a comunica~ção da equipe? Então esse e-book é leitura obrigatória!

Gerenciamento de Prazos

Usando essa ferramenta, o gerente consegue definir melhor os prazos para todas as tarefas, e quando há atrasos é o sistema que notifica o funcionário, economizando tempo do gestor e evitando desgastes.

Outra vantagem é a redução do Work in Progress (colocar o artigo Porque o trabalho em andamento (work in process) pode matar sua empresa), o trabalho em andamento, o que traz um ganho de eficiência enorme na sua equipe, que reduz a alternância entre tarefas e assim consegue se concentrar e concluir mais rapidamente as que estão em andamento no momento.

Estratégia

Com um sistema com esse recurso, a gestão se torna mais precisa, facilitada e assertiva, o que permite acompanhar constante mente os resultados e fazer ajustes para os projetos e a empresa não saiam dos trilhos. Outra vantagem, é que as colunas do kanban não são fixas, o que possibilita também realizar o planejamento para melhorar a organização interna.

Comprometimento

Uma palavra chave para entender o impacto da Kanban na empresa é transparência. O andamento, quantidade de tarefas por colaborador e gargalos / atrasos ficam visíveis a todos da equipe e da gerencia. Assim como quem é quem não é produtivo, o que pode ser um desafio no momento da implantação, mas deve ser superado em prol do bom funcionamento do escritório de Gestão de Projetos.

Mas na maioria das vezes, o que se percebe no ambiente de trabalho é um aumento na sensação de pertencimento e colaboração entre os membros da equipe. Quando todos estão a par do que se passa, é mais fácil ser ser eficiente, seja ao começar uma tarefa que na qual o colaborador tem capacidade para realizar, ou mesmo ajudar um colega que está preso em uma atividade e que pode atrasar todo o projeto.

E essas foram apenas os destaques dos ganhos que a sua empresa pode conseguir ao adotar um software com Kanban para gerenciar sua equipe. Já adotou esse sistema e mais vantagens para compartilhar? Comente no blog!


Fonte: projectbuilder.com.br

24 outubro 2016

Michelly Oliveira

SQL Join: Entenda como funciona o retorno dos dados

 

Este artigo demonstrará de forma prática como funciona cada join do SQL e o que retornará de dados.

Autora: Fernanda Sallai

Muitos desenvolvedores têm a dificuldade de saber qual resultado é retornado por cada join no SQL e, portanto, quando devem utilizar cada um. Para facilitar esse entendimento, a Figura 1 traz uma representação gráfica, baseada na Teoria dos Conjuntos, muito conhecida na matemática. Nessa imagem, temos a representação de duas tabelas (A e B) e o resultado esperado por cada tipo de join (a área em vermelho representa os registros retornados pela consulta).

Figura 1. Representação gráfica dos joins 
Nesse artigo analisaremos cada join individualmente, bom base em exemplos, e veremos seus resultados. Assim, podemos comparar seu funcionamento e decidir quando devemos usar cada um.

21 outubro 2016

Michelly Oliveira

O papel da documentação de software nas metodologias ágeis

 
"Dentro de métodos ágeis, preferimos software em funcionamento mais que documentação abrangente."

As razões para essa frase aparecer no Manifesto Ágil são várias, mas, para mim, a mais impactante é que, quando temos uma documentação extensa, frequentemente cria-se a ilusão de que não precisamos conversar com o cliente e entendê-lo melhor, já que o documento (supostamente) cobriria essa função.


No entanto, esse pensamento se baseia em pontos perigosos: assume-se que quem escreveu a documentação realmente entendia do negócio, que essa pessoa (ou comitê) conseguiu escrever de forma clara para todos os indivíduos que a consumirão, que esses indivíduos vão interpretar o texto bem e ninguém esquecerá de detalhes potencialmente muito importantes… e de que esse documento será sempre atualizado, conforme as mudanças aconteçam.

Na prática, a frase do Manifesto significa que evitamos desperdiçar tempo com documentações que não serão lidas ou que ficarão obsoletas rapidamente. Em vez disso, preferimos que o próprio software seja sua documentação, através de:
  • Testes de unidade automatizados: código que verifica um método/função/classe que, para um dado cenário controlado, a saída esperada é tal. Essa é uma documentação para o desenvolvedor que for alterar esse código interno no futuro.
  • Testes de aceitação automatizados: código que simula o que o usuário do sistema fará, seu comportamento usando uma funcionalidade. Essa é uma documentação para quando o time for alterar o que um determinado código faz.
  • Clean code: prática de trabalhar ativamente para deixar o código claro e coeso, para que o próximo que venha a mexer nele não precise gastar tempo desvendando o que ele faz. Esse é um guarda-chuva gigante de boas práticas no dia-a-dia de desenvolvimento.
  • Se o código ainda não está bom, a ponto de qualquer um entendê-lo… Documentação dinamicamente gerada: geração automática, através de ferramentas específicas de cada linguagem, da relação entre as partes e classes do sistema. Frequentemente, usa-se UML aqui, e há diversas ferramentas que analisam um código e geram os diagramas que refletem o estado atual do design e arquitetura do sistema.
É claro que, dependendo do seu contexto, você pode ser obrigado a prover certas documentações para, por exemplo, o cliente. Nesse caso, fazemos o possível para evitar trabalho desnecessário, mas… infelizmente, jogamos com a regra do jogo atual.

Como é possível organizar essas documentações de software ao final de cada iteração?


O método mais comum para nos certificarmos que uma certa documentação obrigatória seja entregue é acrescentar um passo ao nosso Critério de Pronto, para que todo o time saiba, claramente, que todo item desenvolvido precisa ser documentado e, também, para que eventuais gargalos nesse step fiquem explícitos para todos.