27 outubro, 2011

Ensinamentos de Steve Jobs

Assisti finalmente ao "Stanford Speech" feito por Steve Jobs. Uma oratória emocionante de vida e de motivação que vale  pena ser assistida.

Este é o tipo de vídeo que merece ser compartilhado, pois atinge nossa área pessoal e nossa área profissional, e nos faz pensar em rever conceitos.

"Você não pode conectar os pontos olhando adiante. Você só pode conectar os pontos olhando pra trás."

"Você precisa descobrir o que você ama, e isso é verdadeiro tanto para o seu trabalho quanto para as pessoas que você ama. Seu trabalho vai preencher uma grande parte da sua vida, e a única maneira de ficar realmente satisfeito é fazer o que você acredita ser um ótimo trabalho. E a única maneira de fazer um excelente trabalho é amando o que você faz. Se você ainda não encontrou o que é, continue procurando, e não sossegue."

Segue o vídeo. Have fun!

19 outubro, 2011

Princípios do Manifesto Ágil



Seguindo no tema da agilidade, vamos conversar sobre os princípios do Manifesto Ágil.

1. A maior prioridade é satisfazer o cliente, através de entregas antecipadas e contínuas de software que tenha valor. 
Aqui, o valor significa valor estratégico, valor de negócio, valor emocional, valor que de fato faça a diferença na vida do cliente. 

2. Aceitar as mudanças de requisitos, mesmo tardiamente no desenvolvimento. Processos ágeis aproveitam as mudanças para agregar vantagem competitiva ao cliente. 
Aceitar as mudanças, não quer dizer atropelar tudo que foi acordado para a entrega e criar um monstro. Quer dizer aceitar que o pacote não está fechado, e que o produto final pode ir mudando e sendo construído ao longo do caminho. 

3. Entregar frequentemente software que funcione, a cada duas semanas ou no máximo a cada dois meses, preferindo a menor escala de tempo. 
Claro que existem entregas mais demoradas que outras, mas a ideia é que sejam entregas constantes, onde o software vá evoluindo sob os olhos do cliente, e ele possa, já em um curto espaço de tempo, poder trabalhar com produto. 

4. Área de Negócio e Desenvolvimento precisam trabalhar juntos diariamente ao longo do projeto. 
Aqui fica clara a necessidade de colaboração que já foi comentada no post anterior. Quando o time está interagindo, discutindo soluções e ideias para o projeto, o envolvimento de todos aumenta, bem como o comprometimento. 

5. Construir projetos ao redor de pessoas motivadas, oferecendo o ambiente e o suporte que elas precisam, e confiar que essas pessoas farão seu trabalho. 
Confiança. Se as pessoas confiam no que estão fazendo, se confiam na organização em que trabalham, e também se a organização confia nas pessoas com que trabalha, a motivação vem ao natural, e pessoas motivadas sentem prazer em realizar suas tarefas. 

6. O mais eficiente e eficaz método de transmissão de informação para e dentro de um time de desenvolvimento é a conversa cara-a-cara. 
As vezes não é possível que o time esteja no mesmo local físico, e hoje em dia isso é muito normal, mas a conversa franca e direta sempre foi e sempre será o melhor caminho para se atingir qualquer objetivo. 

7. Software funcionando é a principal medida de sucesso. 
Essa é bem clara e não tem como ser diferente. 

8. Processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente. 
É não deixar a peteca cair. E não é só o ritmo de entregas de projetos, é também o ritmo da motivação, o ritmo do humor, o ritmo de horário, enfim, é manter a equipe alinhada com a própria equipe. 

9. Atenção contínua para com a excelência técnica e bom design aumenta a agilidade. 
Claro, melhorando a capacidade técnica da equipe, o produto também melhora, e quanto mais alinhados estiverem equipe técnica e a tecnologia do produto, agilidade e sucesso estarão garantidos. 

10. Simplicidade _ a arte de aumentar a lista de trabalho a não ser realizado _ é essencial. 
Eliminar o que não agrega valor ao negócio, eliminar complexidades desnecessárias, e por aí vai. É um trabalho que exige maturidade do time e do cliente, para conseguir ter o discernimento do que é e do que não é importante para o produto. 

11. As melhores arquiteturas, requisitos e designs vem de times auto-organizáveis. 
Com certeza! Times que já conseguem se organizar sem a necessidade de um líder que delegue tarefas, precisam (além de maturidade) um conhecimento de negócio muito grande. Todos precisam estar à par do projeto como um todo, para que possam tomar decisões e sugerir alternativas. 

12. Entre intervalos regulares o time deve refletir sobre como se tornar mais efetivo, e então sintonizar e ajustar seu comportamento de acordo. 
A questão de revisar as atividades praticadas, o que deu certo, o que não deu, o que pode ser melhorado, o que deve ser eliminado, tudo isso faz parte dessa reflexão. Novamente, a questão da maturidade do time se torna essencial para o processo. 

Bom, estes foram os meus comentários sobre cada um dos doze princípios, mas são coisas que eu acredito. Fique à vontade para dar sua opinião também. =)

O Manifesto Ágil

Muito se fala sobre Metodologias Ágeis, agilidade nos processos, agilidade no desenvolvimento de software... mas mesmo dentro de equipes "ágeis" pouco se conversa sobre o Manifesto Ágil.

Acabou que as pessoas estão esquecendo da essência da agilidade, e focando em entregas rápidas (e cada vez mais rápidas), e que não valorizam de fato a ideia que move o Manifesto.

Traduzindo as palavras do Agile Manifesto:

"Estamos descobrindo melhores formas de desenvolver software fazendo e ajudando outros a fazer isso. Ao longo deste trabalho passamos a valorizar:

Indivíduos e interações mais que processos e ferramentas;
Software funcionando mais que documentação abrangente;
Colaboração com o cliente mais que negociação contratual;
Responder à mudança mais que seguir um plano. "

O que significa, que mesmo que haja valor nos itens da direita, valorizamos ainda mais os itens da esquerda."


E acredito que é aqui, logo no começo da coisa que ela é desvirtuada. Quando o manifesto diz que preza isso "mais que" aquilo, não quer dizer que o "mais que" signifique "ao invés de".

Em diversas palestras e seminários que já fui, e também em muito material que o nobre Google me ajuda a encontrar, esse ponto de discussão sempre aparece.

Agilidade não significa deixar de documentar, abandonar os processos de desenvolvimento e pensar em prazos cada vez menores. Pelo contrário! É ter que rever o que está gerando desperdício, eliminar suas causas, e pensar em melhorar as capacidades técnicas para que se consiga entregar um produto que de fato satisfaça as necessidades do cliente, e somente então realizar entregas que tenham valor de negócio. Basicamente a ideia é colaboração, entre a equipe, entre a organização, e também com o cliente.

São somente 12 os princípios que movem o Manifesto Ágil. Simples, diretos e deveriam ser o foco até de quem não concorda em "ser ágil". No próximo post vou comentar sobre eles.