quinta-feira, 27 de setembro de 2007

Beyond Test Driven Development: Behaviour Driven Development

Agile Models Distilled: Potential Artifacts for Agile Modeling



Link: http://www.agilemodeling.com/artifacts/

Results From Scrum (Yahoo)

Results From Scrum
The benefits of Scrum reported by teams come in various aspects of their experience. At Yahoo!, we have migrated nearly 90 projects to Scrum in the last 30 months, totaling almost 900 people, and the list of teams using it is quickly growing. These projects have ranged from consumer-facing, design-heavy websites like Yahoo! Photos, to the mission-critical back-end infrastructure of services like Yahoo! Mail, which serves hundreds of millions of customers; they range from entirely new products like Yahoo! Podcasts, which used Scrum from concept through launch (and won a Webby Award for best product in its category that year), to more incremental projects, which included work on new features as well as bug fixes and other maintenance; and we’ve used Scrum for distributed projects, where the team is on separate continents. Several times each year we survey everyone at Yahoo! that is using Scrum (including Product Owners, Team Members, ScrumMasters, and the functional managers of those individuals) and ask them to compare Scrum to the approach they were using reviously.
Some summary data is presented here:



Link do texto completo: http://www.goodagile.com/scrumprimer/

quinta-feira, 13 de setembro de 2007

Goldratt It`s not luck

Eli Goldratt, o criador da Teoria das Restrições (TOC - Theory of Constraints), completou 60 anos em março/2007. Entre as diversas homenagens que a família e os amigos prestaram ao grande mestre, há um vídeo no You Tube com uma bela coleção de suas citações, frases típicas proferidas em suas palestras e cursos, que são suas "marcas registradas". :)






Tradução das frases do video:

1) 60: Não é Sorte

2) Um homem inteligente aprende com seus erros, mas um homem sábio aprende com os erros dos outros

3) As pessoas são boas

4) A estupidez não tem limites

5) Não existem conflitos na realidade

6) O bom senso não é nada bom
(Tradução literal: O senso comum não é nada comum)

7) Quanto mais complexo for o problema, mais simples deve ser a solução

8) Efeito-Causa-Efeito

9) A frustração procura por onde sair

10) Se você pensa que pode combater a emoção com a lógica, você nunca foi casado

11) Vacas sagradas dão excelentes bifes

12) Isso não é óbvio?

13) Não lata (de latir) se não puder morder

14) Enquanto você não conseguir verbalizar claramente a sua intuição, a única coisa que irá comunicar é a sua própria confusão

15) Seja um touro velho

16) Gatinho? (no sentido de animal dócil, referenciando os gestores e acionistas das corporações)

17) Gênio, Durão, Aprendiz, Meticuloso, Bom Coração, Atencioso, Carismático, Imbatível, Estimulador do Pensamento, Espírito Aberto, Inovador, Ganha-Ganha, Determinado, Desafiador, Dinamite, Visionário, Criativo, Pai, Avô, Compele ao Aprendizado, Profundo, Filósofo (Pensador)

18) Simplesmente Eli

Para quem trabalha com Informatica

Muito Boa essa

Para quem trabalha com Informatica

Três amigos se encontram, durante um almoço...
- O que você está fazendo na vida, João (ex-executivo da Pirelli)?
- Bem... eu montei uma recauchutadora de pneus. Não tem aquela estrutura e organização que havia quando eu trabalhava na Pirelli mas vai indo muito bem...
- E você, José (ex-gerente de vendas da Shell)?
- Eu montei um posto de gasolina. Evidentemente também não tenho a estrutura e a organização do tempo que eu trabalhava na Shell, mas estou progredindo...
- E você Orlando (ex-Gerente Executivo de Informática de uma grande empresa)?
- Eu montei um puteiro.
- Um puteiro ???
- É, um puteiro! É claro que não é aquela zona toda da Informática, mas já tá dando algum lucro...
MOTIVO:
O que é trabalhar com Informática:
1 - Você trabalha em horários estranhos (que nem as putas).
2 - Te pagam para fazer o cliente feliz (que nem as putas).
3 - Seu trabalho vai sempre além do expediente (que nem as putas).
4 - Você é mais produtivo à noite (que nem as putas).
5 - Você é recompensado por realizar as idéias mais absurdas do cliente (que nem as putas).
6 - Seus amigos se distanciam de você e você só anda com outros iguais a você (que nem as putas).
7 - Quando você vai ao encontro do cliente você precisa estar apresentável (que nem as putas), mas quando você volta parece que saiu do inferno (que nem as putas).
8 - O cliente sempre quer pagar menos e quer que você faça maravilhas (que nem as putas).
9 - Quando te perguntam em que você trabalha você tem dificuldade para explicar (que nem as putas ).
10 - Se as coisas dão errado é sempre culpa sua (que nem as putas).
11 - Todo dia você acorda e diz: NÃO VOU PASSAR O RESTO DOS MEUS DIAS FAZENDO ISSO (que nem as putas).

terça-feira, 11 de setembro de 2007

Comandos do JUnit

The JUnit framework provides us with several ways to judge if a test has succeeded or failed. Notice that netbeans does not extend TestCase instead we must specify Assert before each of the assert types.

- assertEquals: This provides a series of overloads that allows you to test if an actual value matches the expected one.

- assertFalse: Use this if you know the function will always return false (fails if it receives true)

- assertNotNull: If your method return null in the event of failure use this to check to see if it succeeds

- assertNotSame: If your method is supposed to return an element from a list you can use this to check if the element returned is the one from the actual list

- assertNull: If your method return null in the event of failure use this to check to see if it fails

- fail: Will fail the test, use this in conjunction with conditionals

- failNotEquals: Essentially the same as assertEquals but will fail the test if they arent equal instead of causing an error

- failNotSame: Essentially the same as assertNotSame except instead of causing an error it will cause a failure

Tudo sobre TDD

Este artigo escrito pelo Sr. Victor Hugo Germano vale a pena ser lido.


Segue o link: http://dojofloripa.wordpress.com/2007/09/10/tudo-sobre-tdd/

Screencast: TDD em Ação

Exemplo de como utilizar TDD. É apresentado o JUnit 4 e a sua configuração no Eclipse. Vale a pena ver.

Link: http://www.inf.ufsc.br/~sanchez/dojo/screencast_tdd.htm

terça-feira, 4 de setembro de 2007

The Power of Knowledge


by Stacia L. Broderick

When beginning (or when trying to reestablish) Daily Standup Meetings, it is important to educate the team on some key principles.

Remind the team of the purpose of the Daily Standup Meeting: To allow each team member to discuss what they've worked on since the last meeting, what they will work on by the next meeting, and what obstacles are preventing completion of tasks associated with the commitments of the sprint. This constitutes a forum for team members to sync up in order to meet the goals of the sprint. Additionally, obstacles are brought forward from the team so that the ScrumMaster may remove them.

Remind the team of who owns the meeting: The Team! The Team! The Team! The ScrumMaster exists at a daily standup meeting to facilitate and remove obstacles. Team members should use the meeting to sync up with each other about their tasks (of course, non-daily-standup-meeting synching should be happening behind the scenes). Chickens (or observers) are not allowed to chime in during this meeting. Drooling, paleness, glassy-eyed stares, and robotic answers to three questions are certainly symptoms of a Daily Standup Meeting gone horribly wrong and a sign that the team does not own this meeting.

Remind the team of the benefits of the Daily Standup:

- Team gets to self-manage, sync up every day, and make adjustments in its plan.
- Stakeholders have visibility into the team’s work resulting in a higher level of trust
- It provides a chance to voice obstacles and have them magically whisked away by a ScrumMaster.
- A way to kick off the day, energized and in full understanding of where your team members are with their tasks.
- Provides a great forum for the team to review its burndown chart & backlog to see how work is progressing from the sprint level.
- Sometimes this is the one time of day when all team members are in the same place at the same time; take advantage of this common time.
- Have fun! Teams can use this as a creative space. I’ve seen some teams end the meeting with a riddle or brain teaser.
Discuss meeting time and place: Team decides time and place. If time and place do not work for the team, team reserves right to change time and place.



Owner: Stacia Broderick

Seven Fundamentals for Effective Daily Standups


by Stacia L. Broderick

Embracing these seven fundamentals for effective daily standups can effectively combat DSW.

The team believes in self-management and supports that existence.
They have all committed (as a team!) to the goals of the sprint
They realize the importance of communication and are utilizing the daily scrum to help facilitate this communication.
They understand and embrace that the order of, dependency between, and necessity of tasks will change on a daily basis throughout the sprint cycle; meeting daily allows team members to manage these changes and respond accordingly.
The team has an effective ScrumMaster or leader who empowers them to make decisions and take accountability.
Teams realize the importance of making work visible; transparency improves the nature of the relationship between the team and the rest of the organization, resulting in higher levels of trust and collaboration.
The team will retrospect on the daily standup, along with other process “milestones” to make meetings as effective as possible.


Owner: Stacia Broderick


Tradução: Sete Fundamentos para reuniões diárias eficazes (Standups)

1) O TIME acredita em auto-gestão e torna possível a sua existência.
2) Todos da equipe estão comprometidos (como um time!) para as metas do Sprint.
3) Eles percebem a importância da comunicação e estão utilizando o Daily Scrum para ajudar a facilitar esta comunicação.
4) A equipe compreende e aceita que a ordem de, dependências entre, e necessidades das tarefas irá mudar diariamente ao longo do ciclo do Sprint. As reuniões diárias da equipe permitem gerenciar essas mudanças e reagir em conformidade.
5) O TIME tem um líder efetivo "ScrumMaster" ou um líder que lhes compartilha permissões (poderes) para que eles possam tomar decisões e assumir responsabilidade com credibilidade.
6) O TIME percebe a importância de tornar o trabalho mais visível; transparência melhora a natureza do relacionamento entre o TIME e o resto da organização, resultando em níveis mais elevados de confiança e colaboração.
7) O TIME irá recordar durante os Eventos-marco de Processos (milestones) as definições tomadas durante a reunião diária (daily standup meeting) para tornar estes eventos o mais efetivo possível.

Obrigadão Yugo.