Neste último módulo, aprendemos sobre o Domain-driven Design, e que se trata de um conjunto de práticas que auxiliam no desenvolvimento, na forma de modelo para que o processo, em qualquer camada, seja entendido e validado. E, mais do que um modelo, é uma forma de permitir que o processo ágil não seja um problema para a equipe.
A necessidade de colaboração entre os desenvolvedores e o domain expert tem o intuito de esclarecer e equalizar todos os conceitos utilizados no desenvolvimento do projeto, sem diferenças na comunicação entre todos.
Algumas definições tornam-se necessárias para a compreensão do DDD:
- Como Domínio entende-se como o campo de conhecimento, influência e ação, ou o nível do software;
- O Modelo é composto por um sistema de abstrações que descrevem aspectos de um domínio e auxilia na resolução de problemas relacionados ao domínio;
- Ubiquitous Language é a linguagem estrutrada, comum e utilizada por todos os membros envolvidos (cliente e time) e conecta todas as atividades no desenvolvimento do software;
- E o Contexto é a configuração onde uma determina palavra o seu significado, ou abrangência, falou-se também em como os contextos podem se relacionar. Outra longa e interessante discussão ficou por conta das definições de Entity e Value Object. Entender o MVC, o processo e como se integram traz um leque de entendimentos distintos.
Veja os depoimentos da equipe:
"Dentre os assuntos do último módulo, a Entity e o Value Object podem, a primeira vista, parececer simples, mas precisa de prática para contextualizá-los." @CharlesK64
"Padronizar a comunicação entre o time e o cliente, definir um Domain expert do software e não ‘o gerente da área’ e definir um modelo de domínio consistente são algumas das chaves do DD para o sucesso." @Paulo___Barbosa
"Organização é essencial para qualquer atividade. Distinguir, refletir e priorizar os elementos do seu trabalho é umas das formas. Para o programador cabe conhecer Entity e Value Object para Modelar com perfeição." @PaulinhoFalaster
"A forma de olhar para os contextos de negócio e entender o tipo de serviço que cada um deveria prover e até onde foi para mim um dos pontos mais fortes do DDD". @ACRadtke
"Dependendo do projeto, acredito que o DDD pode ser mais ou menos útil. Minha primeira visão foi de uma técnica um tanto 'complexa'." @DaviRMM
Até o próximo módulo!
Um aprofundamento nos conceitos do Manifesto Ágil, a criação de sinergia no planejamento inicial e ROI foram alguns dos itens importantes no 2º Módulo da Academia do Agile em Florianópolis.
Através de dinâmicas e práticas, ajustamos a granularidade dos requisitos, passamos por estórias de usuários, por modelagem de papéis e por estimativas. Organizando todos estes conceitos.
Por fim, entendemos uma série de benefícios do FDD (Feature Driven Development) para organizar ambientes corporativos complexos, e documentar os projetos em um nível ágil e aprofundado suficientemente para dar uma visão inicial do projeto.
Depoimentos da equipe:
"A granularidade ideal para estórias de usuário e para unidade de requisito são as chaves para realizar estimativas precisas e assertivas, tornando o projeto mais saudável para todos os envolvidos." @Paulo___Barbosa
"Foco na satisfação do Cliente! Seja simples, seja flexível, adapte-se, esteja motivado e mantenha este ritmo constantemente, mas não perca o foco." @DavirMM
"Ferramentas como mind mapping para visualizar melhor estórias, requisitos e a visão do projeto foram úteis neste módulo para facilitar a visão sistêmica do projeto." @ACRadtke
"As técnicas são apenas ferramentas, mas para o real sucesso do pensamento Agile deve estar em todas as pessoas envolvidas no processo." @PauloFalaster
"Entender os requisitos de um projeto demanda atenção e tempo e um dos meios que contribui para que nenhuma lacuna fique no esquecimento é a elaboração de um mind mapping. Uma vez definidos os requisitos, a importância de reconhecer os papéis no projeto torna-se importantíssimo para que as estórias sejam elaboradas contemplando seus devidos fins. E outro ponto abordado, que chamou minha atenção, fica com a questão ‘o quanto este item será importante no projeto?’, ou seja, a equipe deve estar atenta às tarefas que demandam tempo mas não agregam valor ao projeto, e ter a capacidade de alertar o cliente a respeito. " @CharlesK64
"Reconheci a necessidade de quebrar meus paradigmas. Minha necessidade de pensar e planejar em tudo que será feito ou não feito, calculando todos os seus riscos, isto não é ágil." @RodrigoNunesSC
Mais uma vez, parabéns @GlobalCode, @VOffice, @lambdatres, @Felipero e equipe @QUAYLabs.
Até o próximo módulo, mas isso é outra estória...
No último final de semana (11 e 12 de fevereiro de 2011) a equipe da QUAY iniciou a Academia do Agile em Florianópolis, um treinamento completo para o profissional ágil oferecido pela V.OFFICE (@voffice).
A Academia do Agile é uma iniciativa conjunta entre a Globalcode (@globalcode) e a Lambda3 (@lambdatres), com o objetivo de trazer a primeira formação completa de desenvolvimento de software utilizando técnicas ágeis do mercado.
Unindo toda a experiência e o conhecimento dos consultores da Lambda3 no mercado ágil à experiência na criação e formatação de carreiras e cursos completos, a infraestrutura e rede de parceiros da Globalcode, a Academia do Agile representa uma especialização inovadora, a qual vem contribuir significativamente com o mercado de Agile no Brasil.
Composta de 8 módulos, a academia apresenta uma trajetória completa para implantação, manutenção e evolução de uma cultura ágil em equipes de desenvolvimento de software.
Os módulos abordados são:
- Implantando e liderando equipes Ágeis;
- Criação de produtos com Requisitos Ágeis;
- Otimizando a Comunicação através de DDD;
- Modelagem Ágil de Software;
- Práticas Ágeis de Engenharia de Software com XP;
- Gestão de projetos com Scrum;
- Gestão de processos com Kanban e Lean;
- Estratégia Ágil para Governança em TI.
O primeiro módulo foi ministrado por Felipe Rodrigues (@felipero) e abordou o principal risco da adoção de metodologias ágeis em empresas: a gestão de pessoas. As metodologias ágeis tem o foco em indivíduos e interações em primeiro lugar, ao invés de processos e ferramentas. Quando se coloca o ser humano em primeiro plano a complexidade que ele possui vem junto, e por isso torna-se difícil gerenciar todas as situações que podem vir a ocorrer. Para trabalhar esse problema uma das ferramentas apresentadas foi o coaching.
O coaching é uma ferramenta que possibilita a preparação de líderes em equipes ágeis, treinando-os com técnicas e práticas que incentivam a facilitação de problemas que possam surgir durante os desenvolvimentos de uma equipe.

Figura 1. Equipe da QUAY e demais participantes da turma da Academia do Agile praticando um pouco de coaching.
Em uma prática de coaching existem dois papéis fundamentais, o de coach e coachee. O coach é o facilitador e aplica as técnicas em um coachee. Ele auxilia o coachee a definir e encontrar metas e resolver empecilhos que possam estar dificultando o alcance do objetivo.
|  Figura 2. Dinâmica de grupo para exercitar a confiança entre líder e equipe. | Durante o módulo foram explicadas algumas das técnicas mais utilizadas por coachs para o desenvolvimento do coachee, como visualização, desenvolvimento de empatia, roda da vida, janela de Johari, negatividade relacionada ao erro, análise de causa-raiz, e outras. Em diversas oportunidades algumas técnicas foram aplicadas com a turma através de dinâmicas de grupo, auxiliando a exemplificar e treinar os participantes. A sensação da equipe é que passamos por uma grande sessão de coaching de dois dias, e que o Felipe Rodrigues no papel de nosso coach facilitou o processo de entendimento de como gerenciar pessoas é complexo, e que precisamos estar preparados para estas situações da mesma forma que nos preparamos tecnicamente para construir a melhor solução possível para o cliente. |
Abaixo, alguns depoimentos dos membros da nossa equipe que estiveram presentes sobre as experiências vividas neste primeiro módulo:
"O primeiro módulo foi um grande sucesso, as partes de coaching, Janela de Johari e Rapport foram as que mais me agradaram..." @Paulo___Barbosa
"Aprender a ter empatia, desenvolver a confiança, ter metas é inerente a cada um dos elos de uma equipe. E ter tudo isso claro em mente, contribui para o desenvolvimento pessoal, e reflete no equilíbrio profissional. No fim, a satisfação é o foco." @CharlesK64
"Gostei muito do foco em metas que o coaching proporciona, direto ao ponto. A definição de uma meta SMART, que é específica, acompanhável, alcançável, realística e controlável é simplesmente uma ótima definição de como toda meta deveria ser." @ACRadtke
"Você deve trabalhar bem para viver ainda melhor. Planejar metas possíveis e desafiadoras é um bom caminho para sentir mais motivado e realizado." @PauloFalaster
"Uma visão para as pessoas e nem tanto para os processos. Essa primeira fase bateu forte no pilar mais importante de uma empresa. Tenha muito claro o que você quer mas saiba entender os outros, suas diferenças e pontos de vista!" @DaviRMM
"Neste primeiro módulo dentro os excelentes temas abordados, me identifiquei muito com a experimentação de coach, e com a importância de ajudarmos aos membros de nossa equipe a identificar e atingir suas metas pessoais e profissionais." @RodrigoNunesSC
Nos próximos dias 25 e 26 tem mais. Vamos falar de Criação de produtos e Requisitos Ágeis.
Até lá!