Dar Ordem ao Caos

download Dar Ordem ao Caos

of 65

  • date post

    19-Oct-2014
  • Category

    Technology

  • view

    1.835
  • download

    6

Embed Size (px)

description

Palestra na faculdade IDEZ em João Pessoa - PB no dia 10/07/2010

Transcript of Dar Ordem ao Caos

Agilidade no Mundo Real

Christiano Milfont2010, Joo Pessoa-PBCopyleft 2010 Milfont.org

O que funcionou nos ltimos 2 anos em

consultorias da Milfont Consulting... e como

melhorar!

Milfont Consulting

2006 - 2008

Desenvolvimento Treinamento - MentoringResgate de Projetos - Code Review

O que agilidade?

Estamos descobrindo maneiras melhores de desenvolver software fazendo-o ns mesmos e ajudando outros a faz-lo.

O que agilidade?

O que agilidade?

Ciclo de vida de um Software

DesenvolvimentoDesenvolvimento ManutenoManuteno

O que agilidade?

Ciclo de vida de um Software

DesenvolvimentoDesenvolvimento ManutenoManuteno

1 Deploy - Transio

O que agilidade?

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Process Disciplines

Iterations

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Requirements

Elaboration TransitionInception Construction

O que agilidade?

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Process Disciplines

Iterations

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Requirements

Elaboration TransitionInception Construction

BusinessBusiness RequirementsRequirements AnalysisAnalysis DesignDesign ImplementationImplementation TestTest DeploymentDeployment

O que agilidade?

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Process Disciplines

Iterations

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Requirements

Elaboration TransitionInception Construction

BusinessBusiness RequirementsRequirements AnalysisAnalysis DesignDesign ImplementationImplementation TestTest DeploymentDeployment

O que agilidade?

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Process Disciplines

Iterations

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Requirements

Elaboration TransitionInception Construction

BusinessBusiness RequirementsRequirements AnalysisAnalysis DesignDesign ImplementationImplementation TestTest DeploymentDeployment

Se mudar ou o processo for compreendido de forma errada?

O que agilidade?

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Process Disciplines

Deployment

Requirements

Elaboration TransitionInception Construction

BusinessBusiness RequirementsRequirements AnalysisAnalysis DesignDesign ImplementationImplementation TestTest DeploymentDeployment

Nunca h tempo suficiente ou est funcionando!

Iter.#1

Iterations

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

O que agilidade?

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Process Disciplines

Iterations

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Requirements

Elaboration TransitionInception Construction

O que agilidade?

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Process Disciplines

Iterations

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Requirements

Elaboration TransitionInception Construction

O que agilidade?

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Process Disciplines

Iterations

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Requirements

Elaboration TransitionInception Construction

O que agilidade?

Ciclo de vida de um Software

DesenvolvimentoDesenvolvimento ManutenoManuteno

Fronteira de Transio no faz

mais sentido

Deploy Deploy DeployDeploy Deploy

Deploy DeployDeploy

O que agilidade?

Business ModelingImplementation

TestAnalysis & Design

Preliminary Iteration(s)

Iter.#1

Iterations

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Requirements

Elaboration TransitionInception ConstructionProcess Disciplines

Dar Ordem ao Caos

InformativeWorspace

Sit Together

Pair Programming

Whole Team

Energized Work

Move People Around

Stories

Share Code

O que difcil?

Single Code Base

Dar Ordem ao CaosTrabalho Energizado

Pair Programming

No adequado para trabalhos repetitivosNo adequado a todo momento

Pair Programming

No adequado para trabalhos repetitivosNo adequado a todo momento

DeployCreate, Insert...

Commit Push

Development

- 2 horas produtivas por dia, - R$

DeployCreate, Insert...

Commit Push

Development

Trabalhos repetitivos, aonde?

Deploy

Trabalhos repetitivos, aonde?

Create, Insert...

Commit Push

Development

Merge from Hell

Comeou[cmilfont] /projetos/agilidadenomundoreal (master)$ git pull origin master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git checkout -b feature-1 mastercodificando...[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git commit -a -m bla bla blacodificando...[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git commit -a -m bla bla bla

[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git checkout master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git pull origin master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git checkout feature-1

[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git rebase master feature-1codificando...[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git commit -a -m bla bla bla

Agora vai terminar

[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git checkout master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git pull origin master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git checkout feature-1

[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git rebase master feature-1

[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git checkout master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git merge --squash feature-1

[cmilfont] /projetos/agilidadenomundoreal (master)$ git commit -a -v

[cmilfont] /projetos/agilidadenomundoreal (master)$ git push origin master

Identificar padro[cmilfont] /projetos/agilidadenomundoreal (master)$ git pull origin master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git checkout -b feature-1 mastercodificando...[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git commit -a -m bla bla blacodificando...[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git commit -a -m bla bla bla

[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git checkout master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git pull origin master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git checkout feature-1

[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git rebase master feature-1codificando...[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git commit -a -m bla bla bla

Automatizar[cmilfont] /projetos/agilidadenomundoreal (master)$ hack feature-1

codificando...[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git commit -a -m bla bla blacodificando...[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git commit -a -m bla bla bla

[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ sink

codificando...[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git commit -a -m bla bla bla

J tenho parte Automatizada[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git checkout master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git pull origin master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git checkout feature-1

[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git rebase master feature-1

[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git checkout master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git merge --squash feature-1

[cmilfont] /projetos/agilidadenomundoreal (master)$ git commit -a -v

[cmilfont] /projetos/agilidadenomundoreal (master)$ git push origin master

[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ sink

[cmilfont] /projetos/agilidadenomundoreal (feature-1)$ git checkout master

[cmilfont] /projetos/agilidadenomundoreal (master)$ git merge --squash feature-1

[cmilfont] /projetos/agilidaden