lista de práticas Ágeis

82
Lista de Práticas Lista de Práticas Ágeis Ágeis Pós Engenharia de Software Ágil Prof. Edgard Davidson Aluno: Julio Cezar da Silva • UNA

Upload: julio-cezar-silva

Post on 01-Jul-2015

649 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Lista de Práticas Ágeis

Lista de Práticas ÁgeisLista de Práticas Ágeis• Pós Engenharia de Software Ágil• Prof. Edgard Davidson• Aluno: Julio Cezar da Silva• UNA

Page 2: Lista de Práticas Ágeis

ProductProduct VisionVision

Page 3: Lista de Práticas Ágeis

ProductProduct BacklogBacklog

Page 4: Lista de Práticas Ágeis

UserUser StoriesStories

Page 5: Lista de Práticas Ágeis

UsesUses CasesCases

Page 6: Lista de Práticas Ágeis

UsageUsage ScenarioScenario

Page 7: Lista de Práticas Ágeis

PersonasPersonas

Page 8: Lista de Práticas Ágeis

PlanningPlanning PokerPoker

Page 9: Lista de Práticas Ágeis

RequirementRequirement PrioritizationPrioritization

Page 10: Lista de Práticas Ágeis

UserUser StoryStory MappingMapping

Page 11: Lista de Práticas Ágeis

LeanLean CanvasCanvas

Page 12: Lista de Práticas Ágeis

SpikeSpike SolutionsSolutions

Page 13: Lista de Práticas Ágeis

DomainDomain DrivDrivenen DevelopmentDevelopment

Page 14: Lista de Práticas Ágeis

DesignDesign EvolutivoEvolutivo

Page 15: Lista de Práticas Ágeis

CRCCRC

Page 16: Lista de Práticas Ágeis

public class Cor{ public int Vermelho { get; private set; } public Cor(int pVermelho, int pVerde, int pAzul) { this.Vermelho = pVermelho; // Configurar as outras propriedades... } public void AdicionarVermelho(int pValor) {

// Aqui estamos garantindo que ao final da execução desse método, a//propriedade Vermelho deverá respeitar o limite de 255; Contract.Ensures(this.Vermelho <= 255); this.Vermelho += pValor; }}

DbCDbC

Page 17: Lista de Práticas Ágeis

• “Para facilitar a criação de um design simples, a equipe de desenvolvimento utiliza metáforas, já que elas têm o poder de transmitir ideias complexas de forma simples, através de uma linguagem comum que é estabelecida entre a equipe de desenvolvimento e o cliente.”

• Fonte: Extreme Programming – Vinícius Manhães Teles

MetáforaMetáfora

Page 18: Lista de Práticas Ágeis

“Para que todos os desenvolvedores possam manipular qualquer parte do software de forma rápida, a equipe estabelece padrões de codificação, que servem também para tornar o sistema mais homogêneo e permitir que qualquer manutenção futura seja efetuada mais rápidamente.”Fonte: Extreme Programming – Vinícius Manhães Teles

CodingCoding StandardStandard

Page 19: Lista de Práticas Ágeis

TDDTDD

Page 20: Lista de Práticas Ágeis

BDDBDD• “Uma técnica de desenvolvimento ágil que visa integrar regras de negócios com

linguagem de programação”

public class ComportamentoDoControladorDeJanela { @Test public void deveFecharJanelas() {

// Dado que ControladorDeJanela controlador = new ControladorDeJanela("Meu Quadro");

Quadro quadro = new Quadro();

//Quando controlador.fecharJanelas();

// Então garantirQue(!frame.estaAparecendo());

} }

Page 21: Lista de Práticas Ágeis

Pair-ProgrammingPair-Programming

Page 22: Lista de Práticas Ágeis

RefactoringRefactoring

Page 23: Lista de Práticas Ágeis

CódigoCódigo coletivocoletivo

Page 24: Lista de Práticas Ágeis

BuildBuild AutomáticoAutomático

Page 25: Lista de Práticas Ágeis

IntegraçãoIntegração ContínuaContínua• “Integração Contínua é uma pratica de

desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver multiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.” Martin Fowler

Page 26: Lista de Práticas Ágeis

PeerPeer ReviewsReviews• Na utilização da programação em par do XP a

técnica de revisão é aplicada todo o tempo da programação já que enquanto um digita o outro vai verificando o código, em ambientes burocráticos que não têm a programação em par, poderia ser utilizado os testes unitários e ao ser alterado o código ser verificado através dos testes se nenhum bug foi introduzido.

Page 27: Lista de Práticas Ágeis

ControleControle dede VersãoVersão

Page 28: Lista de Práticas Ágeis

EntregasEntregas FrequentesFrequentes•  Ágeis “nossa maior prioridade é satisfazer o

cliente através da entrega contínua e desde cedo de software com valor” e “entregar frequentemente software em funcionamento, desde a cada duas semanas até a cada dois meses, com uma preferência por prazos mais curtos” (FOWLER & HIGHSMITH, 2001)

Page 29: Lista de Práticas Ágeis

CleanClean CodeCode

Page 30: Lista de Práticas Ágeis

TesteTeste UnitárioUnitário

Page 31: Lista de Práticas Ágeis

TesteTeste FumaçaFumaça• O Termo originou-se de testes de hardware

quando uma parte era corrigida ou atualizada simplesmente ligava o hardware e se o mesmo não der fumaça significa que passou nos testes. Em software consiste em um teste rápido, executando as principais funcionalidades do sistema, sem se preocupar com as condições de erro.

Page 32: Lista de Práticas Ágeis

TestesTestes dede SistemasSistemas

Page 33: Lista de Práticas Ágeis

TesteTeste ExploratórioExploratório• Segundo o livro "Base de Conhecimento de Teste

de Software", Teste Exploratório "é indicado quando existe pouca documentação para orientar os testes ou quando o prazo é tão curto que não é possível preparar um teste mais formal. É um teste executado a partir da experiência e da intuição do testador"

Page 34: Lista de Práticas Ágeis

TestesTestes dede aceitaçãoaceitação

Page 35: Lista de Práticas Ágeis

FixedFixed SprintsSprints

Page 36: Lista de Práticas Ágeis

Release PlanningRelease Planning• O Release Plan deverá abordar:• A quantidade e a duração dos Sprints• Quantas pessoas ou times deverão participar do projeto• O número de Releases• O valor a ser entregue em cada Release• A data de liberação do(s) Release(s)• As principais informações para o Release Planning são:• A priorização dos Product Backlogs• A estimativa da velocidade• O Product Owner deve atender as datas importantes (time-to-market) impostas pelo mercado.

Page 37: Lista de Práticas Ágeis

IterationIteration PlanningPlanning• A meta do planejamento da iteração é estabelecer

objetivos de alto nível do que será realizado durante uma iteração, produzir um plano suficientemente detalhado, indicando quem deve fazer o que para realizar os objetivos e definir como avaliar se o que deveria ser realizado foi feito.

Page 38: Lista de Práticas Ágeis

SprintSprint backlogbacklog

Page 39: Lista de Práticas Ágeis

TaskTask BoardBoard

Page 40: Lista de Práticas Ágeis

WIPWIP LimitsLimits• No Kanban, as tarefas em execução devem ser

explicitamente limitadas de modo a não haver muitas tarefas sendo executadas ao mesmo tempo, no Scrum não existe explicitamente esse limite, mas o mesmo é implícito quando é limitada a quantidade de pontos que a equipe consegue entregar por sprint.

Page 41: Lista de Práticas Ágeis

ClassClass ofof ServiceService

Page 42: Lista de Práticas Ágeis

LeadLead TimeTime• lead time is the time between the initiation and

delivery of a work item.

Page 43: Lista de Práticas Ágeis

DefinitionDefinition ofof donedone

Page 44: Lista de Práticas Ágeis

DailyDaily Stand-upStand-up MeetingMeeting

Page 45: Lista de Práticas Ágeis

VelocityVelocity

Page 46: Lista de Práticas Ágeis

SprintSprint ReviewReview• Ao final de cada Sprint, uma Reunião Sprint

Review é realizada. Durante esta reunião, o Scrum Team apresenta o que foi realizado durante o Sprint. Tipicamente, esta apresentação é feita na forma de uma demonstração das novas funcionalidades.

Fonte: http://epf.eclipse.org/wikis/scrumpt/Scrum/tasks/sprint_review_meeting_8735340C.html

Page 47: Lista de Práticas Ágeis

MapaMapa dede CadeiaCadeia dede ValorValor• Os mapas da cadeia de valor são uma forma

popular de detectar desperdícios nos processos de uma empresa — passos que não adicionam valor ao produto final.

Fonte: http://office.microsoft.com/pt-pt/visio-help/criar-um-mapa-da-cadeia-de-valor-HA010113024.aspx

Page 48: Lista de Práticas Ágeis

RootRoot CauseCause AnalysisAnalysis• A Análise de Causa Raiz, também conhecida como

RCA (Root Cause Analysis) é uma maneira de identificar as causas de um problema, afinal os problemas são melhores resolvidos ao tentar corrigir ou eliminar as suas causas.

Page 49: Lista de Práticas Ágeis

BurnBurn DownDown ChartChart• A burn down chart is a graphical representation

of work left to do versus time.

Page 50: Lista de Práticas Ágeis

CumulativeCumulative FlowFlow ChartChart• Um Diagrama de fluxo cumulativo (CFD) é uma

área gráfica que mostra o progresso do trabalho de um produto, versão ou Sprint. O eixo horizontal em um CFD indica o tempo, e o eixo vertical indica os cards (tarefas). Cada área colorida equivale o gráfico para o status do workflow.

Page 51: Lista de Práticas Ágeis

GestãoGestão aa VistaVista• A gestão à vista tem como objetivo disponibilizar as informações

necessárias de uma forma simples e de fácil assimilação, buscando tornar mais fácil o trabalho diário e também a busca pela melhoria da qualidade. Ela torna possível a divulgação de informações para um maior número de pessoas simultaneamente e ajuda a estabelecer a prática de compartilhamento do conhecimento como parte da cultura organizacional.

Page 52: Lista de Práticas Ágeis

RetrospectivaRetrospectiva• Retrospectivas ágeis são sem dúvida, uma grande oportunidade para que equipes de

desenvolvimento de software parem para pensar no trabalho que vem realizando e questionem o que pode se melhorado. É uma excelente ferramenta para que o famoso ciclo PDCA (Plan / Do / Check/ Act) possa ser aplicado. O método ágil Scrum sugere que as reuniões de retrospectiva aconteçam no final da iteração (sprint) e que a equipe se faça duas perguntas básicas:o O que está indo bem?o O que pode ser melhorado?

• Alguns preferem perguntar:• O que devemos parar de fazer?

o O que devemos continuar fazendo?o O que devemos começar a fazer?

• No fim das contas o que realmente importa é que a reunião tenha como resultado ações a serem tomadas pela equipe para que a melhoria continua seja aplicada, e que na próxima retrospectiva, a equipe seja melhor do que era na última.

Page 53: Lista de Práticas Ágeis

RetrospectivaRetrospectiva

Page 54: Lista de Práticas Ágeis

BacklogBacklog dede melhoriasmelhorias• O Backlog é nada mais nada menos do que os

requisitos do produto que precisa ser entregue, bem como todo o entendimento necessário para se atender aos requisitos, produzir funcionalidades e por fim entregar um produto.

• Em resumo é uma lista de todas as características, funções, tecnologias, melhorias e correções que constituem a versão futura do produto.

Page 55: Lista de Práticas Ágeis

SmallSmall TeamTeam

Page 56: Lista de Práticas Ágeis

Cross-FunctionalCross-Functional TeamTeam• Times podem ser funcionais (ex: um tipo somente

de sys admins) ou cross-funcionais (um time formado por desenvolvedores, designers e testadores)

Page 57: Lista de Práticas Ágeis

EquipesEquipes AutoAuto OrganizadasOrganizadas• Essas equipes caracterizam-se por 3 condições:• Autonomia: após receberem uma missão com objetivos claramente definidos, o

time está livre para definir sua própria direção. A alta gerência limita-se a dar orientação, recursos e apoio moral;

• Auto-transcedência: a equipe busca continuamente estender seus limites. Partem da diretriz recebida da alta gerência, estabelecem objetivos iniciais, elevando-os constantemente durante o processo de desenvolvimento. Ao perseguir objetivos aparentemente contraditórios a equipe supera seu "status quo" e faz descobertas incríveis; e

• Fertilização cruzada: uma equipe multidisciplinar, com variados padrões de comportamento, processos conhecidos e especialização funcional conduz o desenvolvimento do novo produto. A referida fertilização acontece na iteração entre essas pessoas. Ao compartilharem um mesmo ambiente de trabalho o processo de transferência de conhecimento entre seus membros acontece naturalmente, caracterizando o termo fertilização cruzada.

Page 58: Lista de Práticas Ágeis

CommonCommon WorkspaceWorkspace

Page 59: Lista de Práticas Ágeis

ProductProduct OwnerOwner

Page 60: Lista de Práticas Ágeis

ScrumScrum MasterMaster• A missão do Scrum Master é facilitar o dia-a-dia do Time,

removendo tudo aquilo que está atrapalhando o seu progresso.É garantir que o time siga os valores e práticas do Scrum, protegendo para que ele não se comprometa excessivamente com aquilo que é capaz de executar dentro de um Sprint.É aprimorar a produtividade do time da melhor maneira possível.

!=

Page 61: Lista de Práticas Ágeis

SustainableSustainable pacepace• Trabalhar com qualidade, buscando ter ritmo de

trabalho saudável (40 horas/semana, 8 horas/dia), sem horas extras. Horas extras são permitidas quando trouxerem produtividade para a execução do projeto. Outra prática que se verifica neste processo é a prática de trabalho energizado, onde se busca trabalho motivado sempre. Para isto o ambiente de trabalho e a motivação da equipe devem estar sempre em harmonia.

Page 62: Lista de Práticas Ágeis

MoveMove PeoplePeople AroundAround• A ideia é não deixa a pessoa fazendo sempre a

mesma coisa ou sempre a mesma dupla, o ideal é que o código seja coletivo e todos mexam em tudo de modo que na necessidade não tenha somente um responsável por determinada funcionalidade.

Page 63: Lista de Práticas Ágeis

ScrumScrum EscaladoEscalado

Page 64: Lista de Práticas Ágeis

CommunitiesCommunities ofof PracticesPractices

Page 65: Lista de Práticas Ágeis

CodingCoding DojoDojo

Page 66: Lista de Práticas Ágeis

ClubeClube dodo LivroLivro

Page 67: Lista de Práticas Ágeis

PalestraPalestra dada EquipeEquipe

parapara aa EquipeEquipe• A ideia é a própria equipe repassar o que está

aprendendo, no blog abaixo eles foram além, gravam as apresentações e disponibilizam para a comunidade.

• http://blog.bluesoft.com.br/

Page 68: Lista de Práticas Ágeis

BibliotecaBiblioteca aa DisposiçãoDisposição

Page 69: Lista de Práticas Ágeis

ParticipaçãoParticipação emem EventosEventos

O Agile Brazil 2012 acontecerá em São Paulo de 3 a 7 de setembro.

Page 70: Lista de Práticas Ágeis

ContrataçãoContratação comcom

participaçãoparticipação dodo timetime• O time deve participar da contratação de novos

colaboradores.

Page 71: Lista de Práticas Ágeis

FeedbackFeedback 360º360º• Consiste na equipe avaliando a equipe frente a

frente.

Page 72: Lista de Práticas Ágeis

One-on-onesOne-on-ones meetingsmeetings• É uma reunião do gerente com cada um dos

colaboradores, individualmente.

Page 73: Lista de Práticas Ágeis

ÍndiceÍndice dada FelicidadeFelicidade• A tendência, que põe a praticidade dos resultados

financeiros em segundo plano e a complexa subjetividade do bem-estar social em primeiro.

Page 74: Lista de Práticas Ágeis

DefiniçãoDefinição dede MetasMetas• A definição de metas é essencial no processo

dentro das empresas nos dias de hoje. É através deste posicionamento que se estabelece o esforço para implementação das condições necessárias para o resultado dentro de um prazo estipulado.

Page 75: Lista de Práticas Ágeis

GembaGemba WalksWalks• Já teve a ligeira impressão de que os engenheiros

que projetam os ônibus parecem que nunca andaram de ônibus? Então, Gemba Walks é o processo de imersão naquilo que se está disposto a fazer ou mudar, seria “o cliente estar dentro do taxi quando do engarrafamento.” a visão é diferente dependendo de como se vê.

Page 76: Lista de Práticas Ágeis

DelegationDelegation PokerPoker

Page 77: Lista de Práticas Ágeis

AuthorityAuthority BoardBoard

Page 78: Lista de Práticas Ágeis

ROTIROTI• Is a quick and easy method to gauge the time

spent on meetings or workshops, and to improve their effectiveness.

Page 79: Lista de Práticas Ágeis

Resolução de Problemas Resolução de Problemas com A3com A3

Page 80: Lista de Práticas Ágeis

HackathonHackathon• Hackathon é uma maratona de programação, onde os

colaboradores da empresa tiram o dia (ou viram uma noite), para trabalharem em suas próprias ideias que possam vir a agregar valor ao produto da empresa.

• É o dia que você deixa de lado o seu trabalho do dia-a-dia para colocar em prática algo novo ou algo que você sempre pensou que podia ser legal adicionar ao produto.

• O objetivo é que ao final da maratona, todos apresentem algo implementado para que a equipe dê feedback e decida se vale a pena dar continuidade em sua ideia.

Page 81: Lista de Práticas Ágeis

SlackTimeSlackTime• É uma prática de incluir em cada plano uma série

de tarefas ou histórias de usuários que podem ser descartados se o time ficar sem tempo.

Page 82: Lista de Práticas Ágeis

ImpedimentosImpedimentos VisíveisVisíveis• Impedimento é qualquer coisa que atrapalhe um

membro da equipe de executar o trabalho. Os impedimentos podem ser identificados nas reuniões diárias, onde cada membro da equipe tem a oportunidade de comunicar o Scrum Master do impedimento existente. O Scrum Master é responsável pela solução dos impedimentos.