[Palestra] Melhoria de Processos de Software

73
Alessandro Almeida www.alessandroalmeida.com Melhoria de Processos de Software

description

Apresentação da palestra realizada no Wall Street Institute, no dia 25 de maio de 2011.

Transcript of [Palestra] Melhoria de Processos de Software

Page 1: [Palestra] Melhoria de Processos de Software

Alessandro Almeidawww.alessandroalmeida.com

Melhoria de Processos de Software

Page 2: [Palestra] Melhoria de Processos de Software

Objetivos

� Apresentar a importância da reflexão sobre processos

� Apresentar modelos para melhoria de processos de software

� Questionar alguns mitos e compartilhar experiências

Page 3: [Palestra] Melhoria de Processos de Software
Page 4: [Palestra] Melhoria de Processos de Software

Motivação

Page 5: [Palestra] Melhoria de Processos de Software

De 2007 para cá muita coisa mudou...

Page 6: [Palestra] Melhoria de Processos de Software
Page 7: [Palestra] Melhoria de Processos de Software

Motivação

� Os números apresentados nos próximos slides são baseados nas edições 2007 e 2010 do Estudo de Benchmarking em Gerenciamento de Projetos Brasil� Realizado pelos capítulos brasileiros do PMI� Disponível para download no endereço www.pmi.org.br

� Setor considerado: Tecnologia da Informação

Page 8: [Palestra] Melhoria de Processos de Software

Costuma ter problemas no cumprimento

dos prazos?

Page 9: [Palestra] Melhoria de Processos de Software

Costuma ter problemas no cumprimento

dos custos?

Page 10: [Palestra] Melhoria de Processos de Software

Costuma ter problemas de qualidade?

Page 11: [Palestra] Melhoria de Processos de Software

Problemas que ocorrem com mais

frequência no projetos

Problema % de Empresas que citaram

2007 2010

Não cumprimento dos prazos 95% 49%

Não cumprimento do orçamento 67% 22%

Problemas de comunicação 88% 42%

Mudanças de escopo constante 83% 43%

Escopo não definido adequadamente 81% 39%

Estimativas incorretas ou sem fundamento 50% 24%

Riscos não avaliados corretamente 69% 23%

Retrabalho em função da falta de qualidade do produto 45% 15%

Falta de definição de responsabilidades 48% 7%

Page 12: [Palestra] Melhoria de Processos de Software

Outros problemas que continuam na

moda

� Problemas de comunicação

� Escopo não definido adequadamente

� Mudanças de escopo constantes

� Riscos não avaliados corretamente

� Estimativas incorretas ou sem fundamento

Page 13: [Palestra] Melhoria de Processos de Software

Motivação

� Agora, o que deve ser a principal motivação:

E na minha empresa, como é?

� Enfrentamos problemas com prazo, custo, qualidade, satisfação do cliente, etc.?

Page 14: [Palestra] Melhoria de Processos de Software

Motivação

� Conclusão:

Ainda temos um problema!

(Como resolver?)

Page 15: [Palestra] Melhoria de Processos de Software

Pontos de Influência

Page 16: [Palestra] Melhoria de Processos de Software

Pontos de influência

Resultado da Empresa

Tecnologia

ProcessosPessoas

Page 17: [Palestra] Melhoria de Processos de Software

Pontos de influência

� Sobre as pessoas...

� Nosso pessoal está motivado!

� (Será?)

� Investimos em capacitação.

� (Será?)

� A remuneração está adequada.

� (Será?)

� Etc.

� (Será?)

Page 18: [Palestra] Melhoria de Processos de Software

Pontos de influência

� Sobre a tecnologia...

� Investimos pesado!

� (Será?)

� Utilizamos o que há de melhor.

� (Será?)

� Etc.

� (Será?)

Page 19: [Palestra] Melhoria de Processos de Software

Pontos de influência

� Sobre os processos...

� ?????????????????

Page 20: [Palestra] Melhoria de Processos de Software

Processo

Page 21: [Palestra] Melhoria de Processos de Software

� Um conjunto de atividades inter-relacionadas ou interativas, que transforma insumos (entradas) em produtos (saídas) [ABNT, 2001].

O que é processo?

Page 22: [Palestra] Melhoria de Processos de Software

O que é processo?

Entrada Processamento Saída

?

Page 23: [Palestra] Melhoria de Processos de Software

Para que serve?

� CONHECER e institucionalizar o fluxo de trabalho

� Identificar oportunidades de melhoria

� Definir papéis e responsabilidades

� Transformar o conhecimento tácito em conhecimento explícito

� Estabelecer controles

� “Unir” pessoas e tecnologia

� Colocar a casa em ordem

Page 24: [Palestra] Melhoria de Processos de Software

Como as empresas funcionam?

Folha de Pagamento

Fechamento Contábil

Pagamento

Page 25: [Palestra] Melhoria de Processos de Software

E quando a empresa não conhece

seus processos?

Page 26: [Palestra] Melhoria de Processos de Software

E quando a empresa não conhece

seus processos?

� As coisas simplesmente acontecem;

� O “sucesso” nos projetos acontece “por acaso”;

� “Por acaso, temos alguns heróis...”

� “Por acaso, o cliente era mais desorganizado...”

Page 27: [Palestra] Melhoria de Processos de Software

E quando a empresa não conhece

seus processos?

� É normal estouro de prazo e custos (entre outros problemas)

� Ambiente sem controle (caos)

� Grande dependência dos heróis (mas não é qualquer herói)

Page 28: [Palestra] Melhoria de Processos de Software

Jack BauerO herói das empresas “sem processos”

Page 29: [Palestra] Melhoria de Processos de Software

Jack BauerO herói das empresas “sem processos”

� Está sempre sob pressão

� Nunca tira férias

� Anda sempre estressado

� Nunca tem tempo para os amigos

� Nunca se diverte

� Sempre tem que trabalhar 24 horas direto

� Até consegue terminar o projeto, mas...

Page 30: [Palestra] Melhoria de Processos de Software

Jack BauerO herói das empresas “sem processos”

Page 31: [Palestra] Melhoria de Processos de Software

1ª Conclusão

� Os processos sempre estarão lá, mesmo se a empresa preferir ignorá-los

� Ou: Eles estão sempre lá, mesmo que a empresa não os conheça

� Quem controla quem?

Page 32: [Palestra] Melhoria de Processos de Software

2ª Conclusão

Legal... Mas o que posso considerar ao definir um processo para desenvolvimento de

software?

Page 33: [Palestra] Melhoria de Processos de Software

O que podemos considerar?

Etc...mps.Br

PMBoK

BABoKBABoKBABoKBABoK

SWEBoK

Extreme Programming

SCRUM

RUP

EUPOpenUP

CMMI

Page 34: [Palestra] Melhoria de Processos de Software

O que podemos considerar?

� CMMI e mps.Br

� Modelos de referência

� Sugerem “o quê” deve ser feito, e não “como fazer”

� Podem ser utilizados como guias para orientar o trabalho de definição / melhoria do processo

� Fornecem um método para avaliação

Page 35: [Palestra] Melhoria de Processos de Software

CMMI

Page 36: [Palestra] Melhoria de Processos de Software

O que é o CMMI?

� Capability Maturity Model Integration®

� Modelos de maturidade mantidos pelo SEI (Software Engineering Institute)

� http://www.sei.cmu.edu/cmmi

� Abrangem todo ciclo de vida para o desenvolvimento (CMMI-DEV) e operação de software (CMMI-SVC)

� Também aborda projetos de aquisição (CMMI-ACQ)

Page 37: [Palestra] Melhoria de Processos de Software

O que é o CMMI?

� Sponsor:

� DoD (U.S. Department of Defense)

� Versão 1.3 publicada em novembro de 2010

Page 38: [Palestra] Melhoria de Processos de Software

Um pouco de História...

Page 39: [Palestra] Melhoria de Processos de Software

O que é o CMMI?

CMMI Model

Foundation

CMMI-DEV CMMI-ACQ

CMMI-SVC

Fonte: -http://www.sei.cmu.edu/cmmi/models/CMMI-Services-status.html

Page 40: [Palestra] Melhoria de Processos de Software

O que é o CMMI?

� http://www.sei.cmu.edu/cmmi

Page 41: [Palestra] Melhoria de Processos de Software

Formas de Implementar

� Representações

� Contínua (Capability Levels)

� Por estágio (Maturity Levels)

Page 42: [Palestra] Melhoria de Processos de Software

Níveis de Capacidade

� Exemplo:

Page 43: [Palestra] Melhoria de Processos de Software

Níveis de Maturidade

� Exemplo:

Page 44: [Palestra] Melhoria de Processos de Software

CMMI for Development (CMMI-DEV)

Processos ad hoc�Initial

Configuration Management (CM)Measurement and Analysis (MA)Project Monitoring and Control (PMC)Project Planning (PP)Process and Product Quality Assurance (PPQA)Requirements Management (REQM)Supplier Agreement Management (SAM)

�Managed

Decision Analysis and Resolution (DAR)Integrated Project Management (IPM)Organizational Process Definition (OPD)Organizational Process Focus (OPF)Organizational Training (OT)Product Integration (PI)

Requirements Development (RD)

Risk Management (RSKM)Technical Solution (TS)

Validation (VAL)

Verification (VER)

�Defined

�Organizational Process Performance (OPP)Quantitative Project Management (QPM)Quantitatively Managed

�Causal Analysis and Resolution (CAR)Organizational Innovation and Deployment (OID)Optimizing

Page 45: [Palestra] Melhoria de Processos de Software

CMMI for Services (CMMI-SVC)

Processos ad hoc�Initial

Configuration Management (CM)Measurement and Analysis (MA)Work Monitoring and Control (WMC)Work Planning (WP)Process and Product Quality Assurance (PPQA)Requirements Management (REQM)Service Delivery (SD)

Supplier Agreement Management (SAM)

�Managed

Capacity and Availability Management (CAM)

Decision Analysis and Resolution (DAR)Incident Resolution and Prevention (IRP)

Integrated Work Management (IWM)Organizational Process Definition (OPD)Organizational Process Focus (OPF)Organizational Training (OT)Risk Management (RSKM)Service Continuity (SCON)

Service System Development (SSD)

Service System Transition (SST)

Strategic Service Management (STSM)

�Defined

�Organizational Process Performance (OPP)Quantitative Work Management (QWM)Quantitatively Managed

�Causal Analysis and Resolution (CAR)Organizational Innovation and Deployment (OID)Optimizing

Page 46: [Palestra] Melhoria de Processos de Software

CMMI for Acquisition (CMMI-ACQ)

Processos ad hoc�Initial

Acquisition Requirements Development (ARD)

Agreement Management (AM)

Configuration Management (CM)Measurement and Analysis (MA)Project Monitoring and Control (PMC)Project Planning (PP)Process and Product Quality Assurance (PPQA)Requirements Management (REQM)Solicitation and Supplier Agreement Development (SSAD)

�Managed

Acquisition Technical Management (ATM)

Acquisition Validation (AVAL)

Acquisition Verification (AVER)

Decision Analysis and Resolution (DAR)Integrated Project Management (IPM)Organizational Process Definition (OPD)Organizational Process Focus (OPF)Organizational Training (OT)Risk Management (RSKM)

�Defined

�Organizational Process Performance (OPP)Quantitative Project Management (QPM)Quantitatively Managed

�Causal Analysis and Resolution (CAR)Organizational Innovation and Deployment (OID)Optimizing

Page 47: [Palestra] Melhoria de Processos de Software

mps.Br

Page 48: [Palestra] Melhoria de Processos de Software

� Melhoria de processo do software brasileiro

� www.softex.br/mpsbr

� Criado no final de 2003

� Foco em micro, pequenas e médias empresas

� Custo de implementação e avaliação menor

� Aproximadamente, 180 empresas já foram avaliadas no modelo (mais de 70% são PME)

mps.Br

Page 49: [Palestra] Melhoria de Processos de Software

� Base Técnica para a definição do mps.Br

� ISO/IEC 12207: Ciclo de Vida de processos de software

� ISO/IEC 15504: Avaliações de processos de software

� CMMI-DEV, 1.2

� Níveis:

� G (Parcialmente Gerenciado) até A (Em otimização)

mps.Br

Page 50: [Palestra] Melhoria de Processos de Software

mps.Br

Page 51: [Palestra] Melhoria de Processos de Software

CMMI ou mps.Br?

Page 52: [Palestra] Melhoria de Processos de Software

Vantagens do CMMI

� Reconhecido internacionalmente

� Consolidado (quase 20 anos)

� Dois tipos de abordagens para implementação

� Contínua

� Estágio

� Empresas no mundo inteiro utilizam

� Modelo abrangente

� DEV, SVC e ACQ

Page 53: [Palestra] Melhoria de Processos de Software

Vantagens do mps.Br

� Modelo brasileiro

� A questão do idioma influencia muito

� 7 níveis de maturidade

� Os resultados podem ser visualizados no “curto prazo”

� Custo baixo

� Comparado com o CMMI

� Foca a realidade brasileira

� Micros, pequenas e médias empresas

Page 54: [Palestra] Melhoria de Processos de Software

CMMI ou mps.Br?

� “Depende...”

� Tudo depende da MOTIVAÇÃO.

� Qual é o nosso objetivo?

� Quem é o nosso cliente?

� Qual é a cultura da empresa?

� Etc...

Page 55: [Palestra] Melhoria de Processos de Software

Mitos e Experiências

Page 56: [Palestra] Melhoria de Processos de Software

“Processos são a solução!”

� Mito!

� Processos não são (e nunca serão) a solução dos seus problemas!

� Um processo sozinho (mesmo aderente ao CMMI ou

afins) nunca será a solução; mas, sozinho, ele pode representar todo o problema

Page 57: [Palestra] Melhoria de Processos de Software

“Processos acabam com os heróis”

� Mito!

� Se o trabalho com os processos for feito da forma correta, o herói “estilo Jack Bauer” deixar de existir...

Page 58: [Palestra] Melhoria de Processos de Software

James BondO herói potencializado

Page 59: [Palestra] Melhoria de Processos de Software

James BondO herói potencializado

� Herói potencializado

� Consegue planejar seus projetos

� Tem os recursos definidos, de acordo com o projeto

� Tem tempo para estudar e utilizar novas tecnologias

� Tem tempo para os amigos

� Consegue se divertir e até namorar...

Page 60: [Palestra] Melhoria de Processos de Software

James BondO herói potencializado

� Herói potencializado

� Consegue planejar seus projetos

� Tem os recursos definidos, de acordo com o projeto

� Tem tempo para estudar e utilizar novas tecnologias

� Tem tempo para os amigos

� Consegue se divertir e até namorar...

Page 61: [Palestra] Melhoria de Processos de Software

“Esse negócio de melhoria de processo é

só para ‘inglês ver’”

� Depende...

� Os benefícios quando a empresa reflete sobre seus processos já foram apresentados

� Mas há muitas empresas que buscam somente passar em alguma auditoria ou obter uma certificação, fazendo com que seus processos sejam somente para “inglês ver”

Page 62: [Palestra] Melhoria de Processos de Software

“Processo é sinônimo de burocracia”

� Depende...

� Se os envolvidos na execução do processo participarem da definição, a tendência é que o jogo combinado atenda todas as partes, evitando atividades desnecessárias

Page 63: [Palestra] Melhoria de Processos de Software

“Processo bloqueia a criatividade”

� Depende...

� O processo criou uma burocracia? Há punições para quem não segue?

Page 64: [Palestra] Melhoria de Processos de Software

Conclusões & Experiências

� O diagnóstico deve ser muito bem feito

� Foto da situação atual

� Cada doença com o seu remédio...

� Saiba onde você deseja chegar

� Quais são as metas?

� “Por que estamos iniciando esta empreitada?”

Page 65: [Palestra] Melhoria de Processos de Software

Conclusões & Experiências

� A iniciativa deve estar alinhada com a estratégia da empresa

� Alguém “forte” na organização deve ser o padrinho do projeto

� Normalmente envolve mudança cultural

� Traga o pessoal de RH para o projeto

Page 66: [Palestra] Melhoria de Processos de Software

Conclusões & Experiências

� Conte com os “integradores”

� TODOS devem participar (desde analistas até diretores)

� Alguém deve gerenciar a iniciativa

� Seja “subversivo”

� Sempre questionem!

� “Por que fazer assim se podemos fazer diferente?”

Page 67: [Palestra] Melhoria de Processos de Software

Conclusões & Experiências

� Seja um “herege”

� Cuidado com os “religiosos”!

� “Misture” práticas, metodologias, ferramentas e etc.

� Comunique!

Page 68: [Palestra] Melhoria de Processos de Software

Conclusões & Experiências

� Cuidado com aqueles que só estão preocupados com o “diploma” na parede

� Cuidado com as "melhores práticas"

� "Melhor" para quem?

� Não queremos uma ditadura!

� Mas ninguém deseja viver em uma anarquia...

� Não se esqueçam: Os processos sempre estarão lá, mesmo que a empresa não os controle

Page 69: [Palestra] Melhoria de Processos de Software

Sugestão de Leitura: Liderando a Mudança

Page 70: [Palestra] Melhoria de Processos de Software

Organizações em Transformação: Por

que as empresas falham?

1. Falta do senso de urgência

2. Falhar na criação de uma coalizão administrativa forte

3. Subestimar o poder da visão

4. Comunicar a visão de forma ineficiente

Page 71: [Palestra] Melhoria de Processos de Software

Organizações em Transformação: Por

que as empresas falham?

5. Permitir que obstáculos bloqueiem a nova visão

6. Falhar na criação de vitórias a curto prazo

7. Declarar vitória prematuramente

8. Negligenciar a incorporação sólida de mudanças à cultura corporativa

Page 72: [Palestra] Melhoria de Processos de Software

Bate-papo

Conclusões, dúvidas, comentários e afins

Page 73: [Palestra] Melhoria de Processos de Software

Muito [email protected]

www.alessandroalmeida.com

@alessandro1982