A life committed to learning.

Tag: SCRUM

Continue Reading

Porque é que eu gosto das metodologias ágeis para desenvolvimento de Software?

Nesta história a equipa estava a trabalhar no lançamento de um produto para o mercado. O projecto já dura à um ano e é gerido com técnicas “tradicionais”* de desenvolvimento de software. Uma das iniciativas (ou sub-projecto, ou projecto no contexto de um programa) inclui um site,  um blog e um perfil no Facebook, no Twitter e no Youtube, onde se irá anunciar o grande lançamento do produto para o mercado.

Um mês antes do grande lançamento a equipa responsável pela comunicação pergunta ao desenvolvimento: “Quando é que o produto vai estar pronto? Precisamos de uma data para comunicar ao público o grande lançamento”.

A equipa de desenvolvimento respondeu qualquer coisa como: “Já está 85% feito.”

Com uma contas, o gestor de projecto prevê que dentro de um mês o produto estará pronto para o mercado. E foi com esse pressuposto que a equipa de comunicação anunciou a data do lançamento “imprevisível” do grande lançamento no site, no blog, no Facebook, no Twitter e no Youtube.

Mas será que aconteceu o pior?

No dia de lançamento (segundo as expectativas da equipa de comunicação), a equipa de desenvolvimento diz que não é possível lançar o produto hoje.

Infelizmente para a equipa, a data de lançamento calhou a uma Sexta-Feira, quando já todos andavam atacados com o stress pre-release. Depois do problema escalado, a direcção da empresa pede gentilmente que se esforcem ao máximo durante o fim de semana para lançar o produto na próxima Segunda-Feira. Até lhes ofereceu recompensas financeiras.

O produto é lançado na Segunda-Feira, mas apesar do incentivo financeiro,  a equipa perdeu muita motivação com este acontecimento. O overtime e sensação de “falha” é sempre um desmotivador e não há dinheiro que “mexa” nessa psicologia.

Agora, porque é que eu gosto das metodologias ágeis para desenvolvimento de software? Não vou aqui falar de tudo, é claro, mas apenas de um ponto que acho importante no contexto desta história tão comum.

Disciplina nas entregas (e tudo que o processo traz de borla)

  • A trabalhar com iterações que produzem Software “utilizável”  e com um conjunto de funcionalidades conhecidas, a equipa ganharia disciplina nas datas de entrega (Com uma gestão apropriada da equipa).
  • Se as iterações tivessem duração de 3 semanas e a equipa confiasse que necessitava de uma iteração para atingir um conjunto de funcionalidades, que somadas às produzidas nas iterações anteriores igualavam as funcionalidades mínimas para lançar o produto, então a equipa de comunicação poderia estar confiante ao anunciar a data do grande lançamento

Será este ponto importante para repensar algumas metodologias de desenvolvimento de Software? Ou assumimos a postura da  negação: “Ahh, podia ser pior se tivéssemos marcado um evento com a comunicação social e grandes investidores.”?  🙂

* Refiro-me aqui às técnicas que apenas são reconhecidas como boas práticas dentro da empresa um por um grupo restrito de empresas. 🙂

Continue Reading

O poder do “E” e do “Mas”

Acho que existe um poder psicológico no “E” e no “Mas”. O “E” tem um poder positivo, de criatividade e colaboração enquanto o “Mas”  tem um poder negativo e cria barreiras para a criatividade e colaboração.

Para o demonstrar, considerem as seguinte conversas:

Programador – “Vou conseguir terminar o módulo A a tempo”

Gestor de Projecto – “Sim, muito bem. Mas conseguirás fazer também a documentação a tempo?”

Pensem que isto vos está a acontecer e tentem perceber o roadblock que foi colocado apenas no vosso caminho?

Agora no mesmo cenário mas como uma atitude mais positiva:

Programador – “Vou conseguir terminar o módulo A a tempo”

Gestor de Projecto – “Sim, muito bem e agora temos de nos focar também em entregar a documentação a tempo? Do que precisamos?”

Pensem agora nesta última conversa. Qual delas será a mais construtiva, colaborativa, positiva e inteligente?

Continue Reading

O conhecimento é gratuito!

Será o conhecimento gratuito ou quase gratuito?  Não sei se existem muitas empresas em Portugal a utilizar mailing-lists efectivamente. Acho que as mailing-lists podem ser uma fonte de conhecimento gratuita.

Este poderá ser a história de muitas equipas em muitos projectos. É uma história de uma equipa de desenvolvimento de software que trabalhou para uma pequena empresa de fogões de sala. Eles ganharam um contrato de um projecto para integrar uma aplicação Web, desenvolvida em Java, com o Twitter. O projecto deveria estar pronto em 6 meses, sob pena de perderem 10 000€ por mês de atraso.

A empresa cliente vai experimentar utilizar o Twitter para aumentar as vendas e querem integrar o site com o Twitter. A cliente quer utilizar palavras chave associadas aos produtos para actualizar várias contas do Twitter. Cada actualização automática tem palavras chave de um produto e um link para a página do mesmo.

Depois de alguma pesquisa e análise, decidiram utilizar o Twitter4J, uma biblioteca de software em Java para abstracção da API Restful do Twitter.

Não tinham qualquer conhecimento na biblioteca Twitter4J. Inicialmente estimaram que demorariam cerca de 2 meses para ganhar o conhecimento e experiência necessária para fazer algo do género em seis meses.

Depois de um pequeno brainstorming chegaram a duas alternativas para colmatar a falta de experiência e eliminar, ou reduzir, qualquer risco de atraso.

Alternativa 1 – Contratar um consultor com conhecimento em Twitter4J para trabalhar no projecto durante dois meses que custaria ao projecto cerca de 15 000 euros.

Alternativa 2 – Assumir o atraso de 2 meses que custaria cerca de 20 000 euros.

Como ambas as alternativas custavam bastante dinheiro à equipa, eles decidiram seguir por outro caminho mais arriscado, mas que nunca poderia custar mais que a segunda alternativa. A alternativa seguida foi:

Alternativa 3 – Começar já a desenvolver qualquer coisa, e se tiveram alguma questão bloqueante utilizam as mailing-list do Twitter4J e da API Restful do Twitter.

Eles seguiram com a terceira alternativa, e qualquer dúvida eles colocavam questões nas mailing-lists, tendo não acesso a um consultor, mas a centenas de consultores que lhes respondiam quase imediatamente.

A equipa consegui terminar o projecto com um atraso de 1/2 mês, o que significou um prejuízo para equipa de cerca de 5 000, comparados com os 15 000 da primeira alternativa e os 15 000 da segunda.

Acham que  nesta história o conhecimento foi quase gratuito?

Disclaimer: Isto é mesmo só uma história 🙂

Continue Reading

O que faz uma boa equipa?

Num artigo do Financial Post de Setembro, pode ler-se o seguinte:

“An effective team has to be able to respond quickly[…] And for that, we need a forum for robust dialogue.

A formally constituted team comes from the desire to work collaboratively […] There is a shared commitment to goals that has the support of individual team members, and in turn supports them.

An effective team […] contrasts with a more common hierarchical approach to business goals, “the command-and-control approach.”

The effective team are […] The Magnificent Seven rather than The Good, The Bad and The Ugly.

To have and effective teams […]Businesses need to shift from individual bonuses to team-based bonuses, to flatten out their reporting structure.

What may not be a Team? […] A committee is a weak variant of a team […] A team […] is the opposite of a committee in that it has a unifying purpose and values to which all members ascribe, despite their position within the organization.

How to build a team? […] Peer mentoring is a team learning system that lets people teach each other […] Workshops have their place in leadership development, but most corporations don’t have a significant way to transfer that knowledge into skills.”

Peer Mentorig […] challenges people to take ownership of their careers. As long as no direct reporting is involved, it works magically.

How a effective team looks like?[…] include enough people, and a good cross-section of skills. We call it collective intelligence. The worst thing to do is try to figure out things by yourself.

Ainda no mesmo artigo são sugeridas oito características de uma boa equipa:

EIGHT TEAM MUST-HAVES

  1. Must have a meaningful purpose that all members care about.
  2. Can’t be too large. Some experts suggest capping at 20. Field cautions against there being too little work for all members.
  3. Needs a diverse set of skills appropriate to the goals.
  4. Needs to be physically together. Even having some team members on different floors can hurt the team.
  5. Succeeds or fails together. No stars or scapegoats.
  6. Shares leadership. Of course there is one leader, but he or she should be willing to step aside when another team member’s skills are required.
  7. Has strong shared norms and expectations of behaviour. These are soft skills that often need to be taught.
  8. Needs time. “You lose advantages if you hurry,” Prof. Field says. “Slow it down for the process to work.”

Artigo original:

http://www.financialpost.com/story.html?id=2258320

Continue Reading
Continue Reading
Continue Reading

Don’t do objectives SMART. Do them Concrete first.

You’re in London in a conference assisting to a lot of talking about spreadsheets online. Everyone agrees that they suck in user experience. You’re feeling the agreement from audience that Excel is the standard in that matter.  (You can argue against this, but it’s not the point here!).

You have one team available to start working right now on this great new idea you have about spreadsheets online. You decided to take the risk and tweet  your team:

Our project is to build the next generation Online spreadsheet, that runs everywhere, every time and offers the ultimate user experience.

Wow. What a project.

“But what does it mean?” – your team tweet you back a minute later. Maybe they hit some analysis paralysis state and are wondering “wtf ultimate user experience is??”

Continue Reading

Scrum Quick Qizz

You’re the ScrumMaster for organization Foo and you’re working with  Team Bar. In the first sprint planning meeting you’re thinking that the team committed too much functionality from Product Backlog. You, the ScrumMaster, reminded the team that they are responsible for  committing only functionality that they can complete in a Sprint, and they can drop any functionality that they feel that cannot be completed.

The Team Bar strong believed that they can do so much work. They proceed with the Sprint.

At the sprint review meeting, the team demonstrated the functionality committed. The demo was guided by a script that team members follow consistently and religiously. Stakeholders at the meeting congratulated the team for the work done. At the end of the of the sprint review meeting, you started to play with the functionality delivered by the team and ignored the script they used to try different use cases. The software started to throw exceptions and crashing.

What went wrong?

A) The time spent in Spring Planning Meeting wasn’t enough.

B) The time allotted  for Spring Review Meeting wasn’t enough.

C) Team Bar ignored the rule of Sashimi.

D) Everything went ok. What’s the point?

What is you best guess? Why?

Continue Reading

The ScrumMaster is not useless

I’m back from the Certified ScrumMaster Course + and heard a lot of Craig Larman’s bad jokes 🙂

Last year I wrote this article where I expressed my feelings about the usefulness of the ScrumMaster. During the last three days I learned a lot useful and funny stuff about Scrum and Lean. I enjoyed leaning that the ScrumMaster is responsible to help the organization change to a more Lean mode of operation where, among other things, teams are self organized and self managed. I’ve also leaned that the ScrumMaster is not useless! ScrumMaster is a temporary but necessary waste!

And if you think about this, it is probably the truth. If you have a truly agile and lean organization for what you need a  ScrumMaster? To help in a goal already accomplished?

Continue Reading