Tópicos
Introdução
Esta página explica o que deve ser feito em nível organizacional para implementar processos e ferramentas em uma organização de desenvolvimento.
A implementação de processos e ferramentas no nível do projeto de desenvolvimento de software está descrito na página Conceitos: Implementação de um Processo em um Projeto.
Informações Relacionadas
-
Conceitos: Práticas de Ambiente contém uma lista das práticas testadas e aprovadas que ajudam a melhorar os processo e as ferramentas utilizados em um projeto.
-
Conceitos: Efeitos da Implementação de um Processo explica o efeito da implementação de processos e ferramentas.
-
Conceitos: Projeto Piloto explica o que é um projeto piloto e como ele deve ser escolhido.
-
Diretrizes: Discriminantes do Processo explica os fatores que afetam a implementação de processos.
-
Conceitos: Gerenciamento de Mudança Organizacional apresenta uma visão geral do que significa o gerenciamento de mudanças organizacionais.
Um Procedimento Passo a Passo
A implementação de um novo processo em uma organização de desenvolvimento de software pode ser descrita em quatro passos.
Os passos para implementar os processos e as ferramentas usados em uma organização.
Passo 1: Avaliar a Organização de Desenvolvimento
É preciso conhecer o estado atual da organização de desenvolvimento de software em termos de pessoal, processos e ferramentas de suporte que ela utiliza. Você precisa identificar os problemas e as possíveis áreas de melhoria, e também obter informações sobre questões externas, como os concorrentes e as tendências de mercado. Depois de concluir esse passo, você deverá saber:- O estado atual da organização de desenvolvimento de software.
- O tipo de pessoal da organização, inclusive seu nível de competência, habilidades e motivação.
- As ferramentas usadas no momento pela organização.
- O atual processo de engenharia de software e como ele é descrito.
- As metas de negócios da organização.
- Usar essas informações para criar um plano que ajuste o estado atual da organização às suas metas.
- Identificar as áreas que precisam de melhorias em primeiro lugar. Não é preciso apresentar o processo inteiro nem todas as ferramentas de uma única vez. É interessante fazê-lo em incrementos, começando com as áreas de maior necessidade e que apresentam maior potencial de melhoria.
- Explicar aos patrocinadores por que você precisa fazer mudanças em processos, ferramentas e pessoal.
- Criar motivação e estabelecer um entendimento comum entre as pessoas da organização afetadas direta ou indiretamente.
Leitura Adicional
As seguintes páginas descrevem como avaliar um projeto
de desenvolvimento de software e a organização. A maior parte desses
itens pode ser aplicada durante a avaliação da organização de
desenvolvimento de software.
Passo 2: Planejar a Implementação do Processo
Desenvolva um plano para implementar processos e ferramentas na organização. Esse plano descreverá como fazer uma transição eficaz do estado atual da organização para que se adapte às suas metas. Para desenvolver esse plano, você precisa:
Consulte a seção Diretrizes para o Planejamento da Implementação do Ambiente para obter mais informações sobre o que deve ser considerado no plano de implementação.
Estabelecer ou Rever Metas (voltar ao Passo 2: Planejar ...)
Você deve definir metas para o processo, o pessoal e as ferramentas, ou seja, onde você pretende estar depois de concluído o projeto de implementação. É necessário definir metas porque:- As metas servem como informações importantes para o planejamento da implementação de processos.
- As metas e a descrição do estado atual da organização, obtida no passo 1, são utilizadas para motivar os patrocinadores e também para proporcionar entendimento e motivação às pessoas da organização.
Identificar Riscos (voltar ao Passo 2: Planejar ...)
Identifique os riscos associados com a implementação de processos e ferramentas. Estes são vários exemplos de riscos:
-
"O projeto piloto envolve diversos riscos técnicos."
-
"Excesso de informações novas para as pessoas absorverem."
-
"Não está claro como a ferramenta A e a ferramenta B trabalharão em conjunto."
-
"Não está claro como a ferramenta A será usada em uma organização de desenvolvimento distribuído."
Leitura Adicional
As páginas listadas abaixo descrevem o gerenciamento dos
riscos em um projeto de desenvolvimento de software e é importante
destacá-las aqui:
Selecionar Projetos de Desenvolvimento de Software (voltar ao Passo 2: Planejar ...)
Defina uma seqüência de projetos de desenvolvimento de software ou iterações. Decida se algum projeto piloto será executado. Consulte a página Conceitos: Projeto Piloto para obter mais detalhes sobre o que é um projeto piloto e como ele deve ser escolhido. Para cada projeto de desenvolvimento de software, defina as metas que deseja alcançar, o que deseja obter, os riscos que pretende reduzir e as partes do processo e, mais especificamente, quais ferramentas você deseja implementar. Consulte a seção denominada Diversas Abordagens de Implementação.Escolher o Momento de Lançar Processos e Ferramentas (voltar ao Passo 2: Planejar ...)
Escolha o momento em que pretende lançar o processo e as
ferramentas para um público mais amplo de projetos de desenvolvimento
de software. É aconselhável executar um ou dois projetos piloto antes de
lança-lo para toda a organização. Consulte a seção denominada Diversas Abordagens de Implementação.
Decida como facilitar o lançamento de processos e
ferramentas. Há diversas formas de facilitar os projetos de
desenvolvimento de software ao implementar processos e ferramentas,
como:
-
Desenvolver templates e exemplos que poderão ser usados em todos os projetos.
-
Desenvolver programas de treinamento.
-
Desenvolver diretrizes para a implementação de processos que orientem os responsáveis pela implementação de processos e ferramentas.
-
Preparar mentores para oferecerem suporte aos projetos.
Planejar Treinamento (voltar ao Passo 2: Planejar ...)
Planeje treinamentos para a organização de
desenvolvimento. Analise os níveis de competência atuais do pessoal.
Esse aspecto é tratado no Passo 1: Avaliar a Organização de Desenvolvimento
Em seguida, verifique as partes do processo que você
pretende implementar e quais ferramentas serão incluídas em cada
projeto. Identifique as áreas em que o nível de competência do pessoal
precisa ser ampliado e a extensão de tal tarefa.
Escolha o treinamento necessário a cada projeto. Uma
mudança de processos e ferramentas afeta a organização inteira e,
portanto, recomenda-se treinar pessoal fora dos projetos para que eles
compreendam o que a mudança significa. Esse treinamento pode consistir
em um curso que ofereça uma visão geral, combinado com seminários para
apresentar o novo processo e as novas ferramentas.
Planejar a Atuação de Mentores (voltar ao Passo 2: Planejar ...)
A experiência demonstra que a ajuda de um mentor na
implementação de processos é um fator importante para o sucesso.
Portanto, recomenda-se que cada projeto de desenvolvimento de software
tenha um mentor para auxiliar na utilização inicial do processo. É
impossível informar valores precisos, mas, como sugestão geral,
recomenda-se o equivalente a pelo menos 50% do tempo integral durante as
primeiras iterações, até o projeto agilizar.
Os projetos também precisam de ajuda na configuração das
ferramentas. Sendo assim, planeje a alocação de recursos para a atuação
de mentores e o suporte de ferramentas.
Decidir se Será Desenvolvido um Ambiente de Desenvolvimento para a Organização Inteira (voltar ao Passo 2: Planejar ...)
Decida se pretende desenvolver um ambiente de
desenvolvimento para a organização inteira que cada projeto possa usar
com as adaptações necessárias.
Na maioria das situações, é melhor esperar até
vários projetos de desenvolvimento de software terem usado o processo e
as ferramentas antes de seguir esse passo. Nesse momento, será mais
fácil identificar as partes do processo e as ferramentas que podem ser
reutilizadas e as que serão mais vantajosas em uma outra organização.
Se você preferir desenvolver um ambiente para a organização inteira, deverá iniciar um projeto para esse fim.
Se você decidir iniciar um projeto desse tipo, deverá esclarecer
que a equipe desse projeto manterá contato constante com as equipes do
projeto de desenvolvimento de software. Também deve ser esclarecido que a
equipe responsável pelo ambiente de desenvolvimento para a organização
inteira é uma organização de serviços, avaliada pelo sucesso dos projetos de desenvolvimento de software que ela suporta. Passo 3: Executar a Implementação do Processo
Executar a implementação do ambiente em uma organização
significa executar projetos de desenvolvimento de software nos quais são
implementados processos e ferramentas. Consulte Conceitos: Implementação de um Processo em um Projeto para obter mais informações. Pela perspectiva organizacional, esse passo significa que você:
-
Monitora os projetos de desenvolvimento de software.
-
Gerencia lançamentos de processos e ferramentas entre os projetos.
-
Monitora o desenvolvimento de um ambiente na organização inteira.
Passo 4: Avaliar o Esforço para Implementação do Processo
Depois de implementar o processo e as ferramentas em um
projeto de desenvolvimento de software piloto ou real, você precisará
avaliar o esforço empreendido. Você alcançou as metas estabelecidas?
Avalie o pessoal, o processo e as ferramentas para conhecer as áreas que
precisarão de atenção na próxima fase da implementação do processo.
Artefatos
Quando você implementa processos e ferramentas em uma organização, em projetos de desenvolvimento de software individuais, há artefatos documentados que podem ser importantes de serem desenvolvidos. Obviamente, isso deve ser feito além da Avaliação da Organização de Desenvolvimento e do Caso de Desenvolvimento referentes a cada projeto.- Primeiramente, você pode precisar de um Plano de Implementação para descrever o plano geral sobre como implementar processo e ferramentas em uma organização, nos projetos individuais. Esse plano aborda processos, ferramentas e treinamento e, em geral, abrange diversos projetos de desenvolvimento de software.
- Em segundo lugar, você talvez precise desenvolver Diretrizes de Implantação para ajudar os projetos individuais a implementarem processos e ferramentas. As Diretrizes de Implantação contêm dicas e orientações sobre como planejar a implementação de processos e ferramentas em um projeto individual de desenvolvimento de software.
Diversas Abordagens de Implementação
Há diversas abordagens para a implementação de processos
e ferramentas em uma organização. Os exemplos abaixo listam diversas
abordagens. Eles descrevem o que deve ser feito em uma organização de
desenvolvimento. No entanto, para entender o que fazer em um projeto de
desenvolvimento de software, consulte Conceitos: Implementação de um Processo em um Projeto.
Uma Abordagem Comum (voltar a Diversas... )
A abordagem comum, ilustrada na figura abaixo, significa que você implementa o processo e as ferramentas em um projeto piloto, como passo inicial.Depois do projeto piloto, avalie a utilização do processo e das ferramentas e, em seguida, prepare-os para serem lançados para um público mais amplo.
A abordagem comum é, geralmente, a maneira mais eficaz de apresentar processos e ferramentas.
A abordagem comum para a implementação de processos e ferramentas
Uma Abordagem Rápida (voltar a Diversas... )
A abordagem rápida, ilustrada na figura abaixo, usa o processo e as ferramentas diretamente em projetos reais sem uma verificação de seu funcionamento em um projeto piloto. Essa abordagem apresenta um risco maior de falha, mas pode haver bons motivos para aceitar esses riscos. Por exemplo, se o processo atual for muito semelhante ao Rational Unified Process (RUP) e se as ferramentas já são usadas na organização, a implementação de novos processos e ferramentas pode ser relativamente fácil e apresentar poucos riscos.Um outro momento para usar a abordagem rápida é quando a organização enfrenta problemas tão graves que qualquer mudança é encarada como uma melhoria. Essa abordagem pressupõe que o potencial de melhoria seja superior aos problemas que a organização inevitavelmente terá.
A abordagem rápida
Uma Abordagem Cuidadosa (voltar a Diversas... )
Uma abordagem mais cuidadosa é executar mais de um
projeto piloto antes de iniciar o projeto real, usando os novos
processos e ferramentas. Use a abordagem cuidadosa quando os riscos
forem altos e quando houver muitos fatores novos. É possível usar
processos e ferramentas em vários projetos antes de lança-los para toda a
organização.
A abordagem cuidadosa
Considere usar a abordagem cuidadosa se uma ou mais das seguintes afirmativas for verdadeira:
-
Há muitas mudanças de processo e ferramentas para o pessoal internalizar.
-
Há muitos riscos.
-
Pouca capacidade para mudanças.
Uma Abordagem Distribuída (voltar a Diversas... )
A abordagem distribuída significa que você coloca o RUP
disponível para toda a organização de desenvolvimento. Dessa forma, cada
projeto de desenvolvimento de software tem a liberdade de escolher como
usará o processo. Não existe coordenação nem reutilização entre os
projetos de desenvolvimento de software.
A abordagem distribuída também pode ser vantajosa à organização das seguintes maneiras:
-
Os projetos adquirem um vocabulário comum.
-
O pessoal acostuma-se a usar o RUP como um processo comum.
-
A abordagem distribuída pode ser o primeiro passo para o uso real de processos e ferramentas.
Um Ambiente de Desenvolvimento para a Organização (voltar a Diversas... )
Se a organização decidir criar e manter um ambiente de
desenvolvimento para a organização inteira, esse procedimento deve ser
bem planejado. Para criar e manter esse ambiente, deve haver uma equipe
que consista em processos, ferramentas e infra-estrutura. Consulte Conceitos: Ambiente de Desenvolvimento, mais especificamente a seção intitulada Ambiente de Desenvolvimento Organizacional.
O planejamento de um projeto de ambiente
organizacional tem que estar sincronizado com os projetos de
desenvolvimento de software que ele suporta. A meta de um projeto de
ambiente organizacional é criar um ambiente que os projetos de
desenvolvimento de software possam usar.
Um projeto de ambiente organizacional
Recomenda-se tratar o projeto de ambiente
organizacional como qualquer projeto de desenvolvimento de software.
Siga a disciplina do RUP Gerenciamento de Projeto.
Organização do Trabalho
Alguém deve assumir a responsabilidade de implementar os
processos e ferramentas na organização inteira. Essa responsabilidade
inclui planejamento, gerenciamento e elaboração de orçamento para a
implementação do processo e das ferramentas.
Tratar a Implementação do Processo como um Projeto
A implementação de um processo de desenvolvimento de software em uma organização é uma tarefa complexa e precisa ser realizada de maneira controlada. Recomenda-se tratá-la como um projeto externo ou subprojeto do projeto de desenvolvimento de software. Defina marcos, aloque recursos e gerencie-os como faria em qualquer outro projeto.O projeto de implementação de processos divide-se em várias fases, com todos os quatro passos realizados em cada fase, até o projeto estar pronto e o processo e as ferramentas serem implantados e utilizados com sucesso, como mostra a figura abaixo.
Um projeto de implementação de processo pode dividir-se em fases.
A tabela abaixo oferece uma idéia geral de como um projeto pode ser planejado com quatro fases.
|
Finalidade | Resultados importantes após a fase |
Fase 1 | Vender o projeto de implementação de processos aos patrocinadores | Uma decisão positiva ou negativa dos patrocinadores. Para apoiar a decisão, as ferramentas podem ser demonstradas e um caso de desenvolvimento pode ser exemplificado. |
Fase 2 | Tratar de riscos importantes | Um protótipo demonstrável do ambiente de desenvolvimento de software do cliente está pronto, com ferramentas, templates, diretrizes e exemplos de casos de desenvolvimento. |
Fase 3 | Conclusão total | A conclusão do ambiente de desenvolvimento de software do cliente, inclusive integração, teste e demonstração de uso. Todas as ferramentas estão prontas para serem usadas. Templates, diretrizes e exemplos de casos de desenvolvimento estão prontos. Há um currículo de treinamento pronto e os mentores já podem iniciar o suporte a projetos reais na próxima fase. |
Fase 4 | Implementação na organização inteira | O processo e as ferramentas são implantados na organização inteira. |
Quatro fases de um projeto de implementação de processo.
Um projeto para implementar processos e ferramentas
em uma organização apresenta muitas semelhanças com um projeto de
desenvolvimento de software. Já foi até mesmo sugerido que as fases
acima se denominem Iniciação, Elaboração, Construção e Transição, como
em um projeto de desenvolvimento de software que utilize o RUP.
Entretanto, recomenda-se não usar os mesmos nomes nas fases para evitar
mal-entendidos.
Diretrizes para o Planejamento da Implementação do Ambiente
Quando definir o conteúdo e as metas para os marcos, lembre-se das seguintes diretrizes:- Tenha a idéia final sempre em mente.
- Reduza os riscos principais no início.
- Concentre-se de imediato nas áreas com os principais problemas.
- Selecione as áreas nas quais deseja obter ganhos rápidos e imediatos.
- Problemas no atual processo de desenvolvimento. Concentre-se nas áreas do processo de desenvolvimento nas quais a organização apresenta problemas no momento. Concentre-se nas áreas onde você espera obter resultados fáceis e nas quais as pessoas possam verificar vantagens imediatas. Certifique-se de que as primeiras iterações se direcionem para a área na qual você terá que trabalhar e solucionar um dos principais problemas atuais da organização.
- A necessidade atual de mudanças na organização. Se houver excesso de problemas na organização, seja com as ferramentas ou com a maneira como as pessoas trabalham, o nível de frustração será alto. Nesse caso, você pode ser mais agressivo e empregar o novo processo e as ferramentas, ou partes deles, em projetos reais.
- A atual capacidade para mudanças na organização. Se eles não estão acostumados a mudanças ou se, no momento, estão atônitos com tal possibilidade, as metas das primeiras iterações devem ser despretensiosas. Nesse caso, o principal objetivo deve ser estabelecer credibilidade e confiança no processo, reservando as mudanças mais profundas para iterações posteriores quando elas puderem ser mais facilmente acomodadas. Consulte Conceitos: Gerenciamento de Mudança Organizacional.
- O tamanho da organização. Se o processo e as ferramentas forem utilizados em uma organização de grande porte, certifique-se de que o caso de desenvolvimento e as ferramentas tenham estabilidade suficiente para serem usados por muitos desenvolvedores. Nesse caso, seja mais cuidadoso ao implementar o processo e as ferramentas de suporte durante várias iterações em um ou mais projetos de desenvolvimento de software.
- Os riscos envolvidos. Se eles forem pequenos, seja mais agressivo e comece a usar o processo e as ferramentas em novos projetos com antecedência. Se os riscos forem grandes, seja mais cuidadoso e use projetos piloto para verificar o processo e as ferramentas.
- A atitude entre as pessoas da organização. Comunique os problemas que a organização tem hoje e como ela funciona. Se as pessoas compreenderem os problemas atuais, será mais fácil aceitarem e entenderem a necessidade de mudanças. Envolva também as pessoas que não estão incluídas no setor imediatamente afetado da organização.
Implemente o processo e as ferramentas em iterações de projetos de desenvolvimento de software em projetos piloto ou em projetos reais. A finalidade é verificar o processo e as ferramentas em um ambiente o mais real possível. Considere os seguintes pontos ao selecionar iterações e projetos de desenvolvimento de software:
- Se a meta é implementar o processo e as ferramentas em um único projeto de desenvolvimento de software, prefira implementá-los nesse projeto e, em seguida, monitore e melhore o processo durante o projeto.
- Se a meta é implementar o processo e as ferramentas em muitos projetos da organização, considere implementá-los e verificá-los em iterações nas diversas fases. Nesse caso, escolha um projeto relativamente pequeno no qual seja possível aplicar o processo e as ferramentas durante todo o ciclo de vida.
- Se o RUP representa um ponto de partida significativo do seu atual processo de engenharia de software, se você precisa de uma melhor abordagem dos riscos e das vantagens decorrentes da introdução de um novo processo ou se você está em uma nova organização que não utiliza processos ou os utiliza pouco, tente seu caso de desenvolvimento em um miniprojeto ou em um projeto piloto antes de aplicá-lo a um projeto de desenvolvimento mais importante e mais crítico para a missão. Consulte Conceitos: Projeto Piloto para obter mais informações.
O uso de um novo processo, de novas ferramentas e, possivelmente, de uma nova tecnologia em um projeto de software faz a programação do projeto mais volátil. Certifique-se de alocar tempo e recursos para implementar o processo, treinar pessoal e assim por diante, durante a iteração no projeto de desenvolvimento de software, começando com a utilização do processo e das ferramentas.
Principais Motivos de Falha
É importante entender os principais motivos de falhas:
-
Falha ao implementar o processo e as ferramentas em incrementos.
-
Falta de suporte do gerenciamento.
-
Falta de aproximação dos envolvidos. Todos os envolvidos afetados pelo novo processo e pelas ferramentas devem estar próximos, o que inclui clientes, outros departamentos e subfornecedores.
-
Falta de vontade ou de capacidade de lidar com mudanças organizacionais.
A prática nos tem demonstrado que os motivos são exatamente esses que envolvem questões não-técnicas.