Issuu on Google+

Mitigando riscos durante o Ciclo de Vida de entrega de Software Agosto de 2009

Reduzindo custos dos neg贸cios: Atenuando riscos no ciclo de vida da entrega de software

Roberto Argento IBM Rational Business Development Executive Valerie Hamilton IBM Rational Solution Marketing Manager and Certified Especialista de TI s锚nior


Mitigando riscos durante o Ciclo de Vida de entrega de Software Pagina 2

Conteúdo 2 Introdução 3 Definindo riscos na entrega de software 3 Equilibrando riscos com valor 5 O custo do fracasso 6 Construindo a coisa certa: Gerenciamento dos requisitos 8 Visibilidade dos resultados do projeto e processo: Gerenciamento e medição de desempenho 10 Conclusão

Introdução Na desafiante economia atual, as empresas estão sob pressão cada vez maior para reduzir os custos gerais enquanto atenua e controla os riscos. A realidade é que muitas empresas continuam a lutar para fornecer com êxito software de qualidade no devido tempo e dentro do orçamento, que atenda às necessidades de seu mercado. Um estudo informa que, na média, 32% dos projetos não se alinham com os objetivos da companhia e que 39% dos projetos estão acima do orçamento.1 Tal estatística surpreendente mostra alguns dos problemas da entrega de software enfrentados atualmente pelas empresas. Outros estudos confirmam que as taxas de sucesso dos projetos não estão melhorando; os desafios da entrega de software continuam a afetar de forma adversa os custos dos negócios. De acordo com a Standish Group, as empresas continuam a lutar com as taxas de sucesso e as falhas de projetos. Seu mais recente Chaos Report publicado2 informa que os resultados “deste ano mostram uma acentuada redução nas taxas de sucesso dos projetos, com 32% de todos os projetos sendo bem sucedidos com a entrega no prazo, dentro do orçamento e com os recursos e as funções exigidas”. Além disso, “44% foram sofreram com entrega atrasada, acima do orçamento e/ou com menos recursos e funções que os exigidos e 24% falharam com cancelamento antes da conclusão ou entregues e nunca usados”.3 Os números são estarrecedores. Por que é tão difícil entregar software de qualidade dentro do tempo e do orçamento e que se alinhe com os objetivos dos negócios? Imagine se os recursos “desperdiçados” e os dólares gastos com falhas na entrega de software pudessem ser usados para inovar — para criar novos produtos ou para perseguir novas oportunidades de mercado. Pense no impacto positivo nos resultados dos negócios. Há muitas empresas que, atenuando riscos e tendo uma abordagem sistemática (mas não burocrática) em relação ao processo de entrega de software, alcançaram melhorias em suas taxas de sucesso levando a uma redução em seus custos de desenvolvimento e um melhor e maior impacto nos resultados de seus negócios. Neste documento, você aprenderá como o gerenciamento de requisitos e desempenho pode ajudar a reduzir riscos e diminuir custos dos negócios com: • A obtenção de consenso sobre os requisitos do projeto e a entrega de produtos de qualidade que atendam às necessidades de negócios das partes interessadas • O entendimento do impacto das mudanças em suas entregas e a capacidade de controlar e comunicar de forma precisa essas mudanças • A capacidade de analisar, monitorar e medir tendências no status do projeto durante todo o ciclo de vida do software para tomada de decisão objetiva e bem informada • A avaliação e a medição do desempenho do processo e projeto para direcionar melhorias contínuas.


Mitigando riscos durante o Ciclo de Vida de entrega de Software Pagina 3

Destaques

Definindo riscos na entrega de software Na vida um risco é uma exposição a um fracasso ou prejuízo: um fator, coisa, elemento ou direção envolvendo algum grau de perigo. Da mesma forma, em desenvolvimento de software um risco é algo que pode comprometer o sucesso de um projeto. Exemplos de possíveis fontes de risco na entrega de software estão relacionados abaixo: • Requisitos e especificações ausentes, incompletas ou se alterando • Processos de desenvolvimento e práticas manuais ou indefinidas • Teste e validação incompletos • Falta de informações das partes interessadas • Equipes fisicamente dispersas desconectadas • Interdependências no projeto e falta de colaboração na equipe • Conformidade com as regulamentações e as mudanças associadas • Tempo insuficiente ou expectativas de programação • Objetivos de negócios não claros.

Tomar decisões bem informadas avaliando de forma consciente o que pode dar errado, além da probabilidade e da severidade do impacto, está no centro da definição dos riscos na entrega de software.

Riscos são expostos e podem ser abordados através da identificação, análise, planejamento, acompanhamento, controle e comunicação do ciclo de vida da entrega de software. Equilibrando riscos com valor Risco é uma manifestação potencial da probabilidade de coisas inesperadas acontecerem ao projeto, e risco está no caminho da criação de valor. Todo projeto carrega uma quantidade de risco. Se os riscos do projeto não forem identificados e abordados, há uma chance muito real de que aparecerão em algum ponto no decorrer do projeto. Quanto mais tempo um risco ficar despercebido, mais caro será para corrigir. O risco é diretamente proporcional à incerteza nas estimativas, e as partes interessadas normalmente querem saber o quanto antes que valor o projeto pode fornecer no tempo estipulado. Em muitos casos, você reduz risco quando o valor é criado pela implementação e teste dos recursos mais críticos. O desenvolvimento direcionado pelos riscos concentra-se na identificação de áreas de alto risco e na abordagem destes logo no início da vida do projeto. O objetivo é aflorar esses problemas bem antes de se gastar uma quantidade de tempo considerável no desenvolvimento do projeto e que algum retrabalho seja necessário.


Mitigando riscos durante o Ciclo de Vida de entrega de Software Pagina 4

Destaques

O desenvolvimento direcionado por valor concentra-se na identificação dos recursos mais importantes para os clientes e empresas e na sua conclusão o mais cedo possível de modo que as partes interessadas vejam o progresso assim como forneçam comentários sobre os recursos no início e continuamente. O desenvolvimento direcionado por risco recomenda a concentração nas áreas de alto risco que são críticas para o sucesso do projeto, enquanto que o desenvolvimento direcionado por valor concentra-se nos requisitos funcionais considerados de alto valor para as partes interessadas.

A resposta ao risco requer um equilíbrio cuidadoso das prioridades concorrentes para maximizar o valor das partes interessadas.

A resposta ao risco deve ser proporcional à sua importância. No entanto, há situações onde os riscos e o valor dos negócios estão em divergência entre si. Portanto, a resposta ao risco requer um equilíbrio cuidadoso dessas prioridades concorrentes para maximizar o valor das partes interessadas. Uma abordagem iterativa direcionada por risco envolve iterações que se equilibram entre problemas de alto risco e recursos que retornam valor (consulte a figura 1).

Figura 1: Uma abordagem iterativa direcionada a risco equilibra riscos com valor.


Mitigando riscos durante o Ciclo de Vida de entrega de Software Pagina 5

Destaques

As partes interessadas normalmente têm uma ideia abstrata do que desejam como resultado final, mas não do que o software deve fazer. Os requisitos do projeto precisam estar acessíveis de modo que todos os membros da equipe entendam sua parte no projeto inteiro.

Revendo as fases do ciclo de vida do projeto (Iníciação, Elaboração, Construção e Transição) mostradas na figura 1, os riscos são normalmente maiores na fase de Iníciação, e continuam a diminuir nas fases subsequentes do ciclo de vida do projeto, à medida que os riscos são identificados e abordados. Na fase de Iníciação, a avaliação de risco inicial é executada e os principais requisitos e recursos do projeto são definidos. Na fase de Elaboração, o objetivo principal é atenuar os itens de risco, importantes e identificados por análise. É onde o projeto começa a tomar forma ,a análise de domínio do problema é feita e a arquitetura do projeto obtém sua forma básica. Essa é a fase onde há um equilíbrio entre risco e recursos que são considerados ser de alto valor para as partes interessadas. Criar valor pela redução das incertezas é a melhor maneira de reduzir custos e aumentar o sucesso do projeto. O custo do fracasso A entrega de software é uma atividade baseada em equipe. Para evitar o alto custo do fracasso, as equipes devem trabalhar juntas para atenuar e gerenciar riscos com o objetivo de se obter resultados bem sucedidos para os negócios. Para evitar os altos custos do fracasso e reduzir riscos, deve haver processos repetitivos, previsíveis e melhores práticas implementadas por todo o ciclo de vida da entrega de software para que aumente a produtividade e a qualidade. As atividades de entrega de software típicas incluem descoberta dos requisitos, planejamento, design, implementação, teste, documentação, implantação e manutenção. Com tantas atividades no ciclo de vida da entrega de software, não é surpresa que falhas aconteçam com frequência. “Descoberta dos requisitos” se refere àquelas atividades que se concentram em entender os objetivos de negócio de suas partes interessadas, que servem como ponto inicial para coleta dos requisitos do projeto. Apenas quando você entende os objetivos do negócio é que se pode começar a definir uma solução que resolverá as necessidades das partes interessadas. A fase de planejamento dentro do ciclo de vida da entrega de software envolve a importante tarefa de definir os requisitos ou a análise dos requisitos. As partes interessadas normalmente têm uma ideia abstrata do que desejam como resultado final, mas não do que o software deve fazer. Os requisitos do projeto precisam estar acessíveis de modo que todos os membros da equipe entendam sua parte no projeto inteiro e que sejam informados quando mudanças ocorrerem.


Mitigando riscos durante o Ciclo de Vida de entrega de Software Pagina 6

Destaques

Fazer mudanças em um sistema implementado é muito mais caro do que fazer certo da primeira vez. O imenso custo associado com o retrabalho no código existente é uma das principais áreas de risco no ciclo de vida da entrega de software.

A medição de resultados do projeto e processo permite melhorias de processo contínuas em todo o ciclo de vida da entrega de software, o que reduz fracassos no projeto e reduz custos dos negócios.

Requisitos ausentes são um dos principais contribuidores em atraso de programação e estouros de orçamento; não há nada pior que estar a meio caminho do final de um projeto e então perceber que uma necessidade importante de uma parte interessada não foi abordada. Requisitos incompletos, ambíguos ou mesmo contraditórios precisam ser analisados e retirados antes da definição do escopo de um projeto. A análise e o gerenciamento de requisitos é uma atividade de alta importância, pois fazer mudanças em um sistema implementado é muito mais caro que do que fazer certo da primeira vez. O imenso custo associado com o retrabalho no código existente e testes quando erros de requisitos são identificados é uma das principais áreas de risco no ciclo de vida da entrega de software. As organizações devem ter a capacidade de rever, avaliar e melhorar os processos atuais dentro de cada fase do ciclo de vida da entrega de software. Ter uma visão precisa dos dados, processos e práticas da empresa é um componente importante do sucesso. No entanto, muitas organizações sofrem de falta de visibilidade no ciclo de vida da entrega de software. Além disso, elas lutam com lacunas nos dados e medições criadas manualmente, o que criam pontos sem dados que colocam o sucesso de uma organização em risco.. Construindo a coisa certa: Gerenciamento dos requisitos Gerenciamento de requisitos é o processo de descobrir, definir, elaborar, documentar, analisar, priorizar e concordar com os requisitos e, então, controlar as mudanças durante um projeto para garantir que as entregas permaneçam alinhadas com os objetivos das partes interessadas. O gerenciamento de requisitos dessa forma ajuda a garantir que os riscos sejam minimizados, os problemas das partes interessadas sejam resolvidos e que os custos dos negócios sejam reduzidos. O que é tão difícil no gerenciamento de requisitos? As palavras podem ser ambíguas. É difícil comunicar claramente uma visão para todos os membros da equipe. É complicado mostrar relações ou dependências entre requisitos. Os requisitos vêm em diferentes formas e tamanhos. Alguns podem ser complexos, mais arriscados, mais importantes ou menos estáveis que outros, e a simples quantidade de requisitos pode ser dura de gerenciar. Mas acima de tudo, os requisitos mudam com frequência.


Mitigando riscos durante o Ciclo de Vida de entrega de Software Pagina 7

Destaques

Entender o impacto de mudanças em outros requisitos e em seu projeto e então controlar e comunicar essas mudanças para todos os membros da equipe é um dos maiores desafios na disciplina do gerenciamento dos requisitos. Está claro que fazer as coisas certas pode nos levar a um caminho de atenuação de riscos e criação de valor. Mas como vamos saber quando estamos fazendo as coisas certas? Ao analisar quatorze projetos de desenvolvimento e entrega de software em seis países da América Latina (México, Brasil, Chile, Argentina, Peru e Colômbia), em diferentes setores da economia (finanças, seguros, telecomunicações, fornecedores independentes de software, agências governamentais e energia) e cobrindo várias plataformas de tecnologia (mainframe, desenvolvimento de Java™, criação de novos produtos e manutenção de ERP), descobrimos um problema comum: a falta de gerenciamento de requisitos eficaz. Cada um dos projetos apresentou uma variedade de problemas, incluindo a incapacidade de testar ou validar a funcionalidade adequadamente, retrabalho e volatilidade devidos a mudanças constantes de recursos e funcionalidade, e altos custos de desenvolvimento. O fato é que todos os projetos investiram muito pouco tempo no planejamento e gerenciamento de seus requisitos. A conclusão dessa avaliação de projeto é que a maioria das organizações é muito boa em propor novas ideias e soluções. Mas são normalmente ineficazes em planejar e gerenciar requisitos e executar a entrega de software com riscos e custos reduzidos.

A maioria das organizações é muito boa em propor novas ideias e soluções. Mas, normalmente, são ineficazes no planejamento e gerenciamento dos requisitos.

A CIO Magazine reportou que “tanto quanto 71% dos projetos de software que fracassam assim o fazem pelo fraco gerenciamento de requisitos, tornando-se a maior causa de fracasso de projetos”.4 Especialistas em domínio como Rikki Kirzner citam a necessidade do gerenciamento de requisitos para o sucesso do projeto. Ele foi citado em um recente artigo: O resultado bem sucedido de qualquer projeto começa com a definição, criação e distribuição dos requisitos de projeto de uma forma onde todas as partes interessadas possam acessar, colaborar e contribuir para a criação dos requisitos. Embora possa parecer muito simples de explicar repetidamente, boas intenções são prejudicadas pelos recursos das ferramentas utilizadas e pelo ambiente no qual está trabalhando. Esta situação apenas agrava os problemas encontrados quando todas as partes interessadas não entendem a intenção original e os objetivos do negócio ou não conseguem ligar esses objetivos ao que a equipe está fazendo. Dispersão geográfica, dificuldades em comunicação e prioridades conflitantes também podem causar problemas.5


Mitigando riscos durante o Ciclo de Vida de entrega de Software Pagina 8

Destaques

Um dos princípios centrais do gerenciamento de requisitos é a promoção da colaboração em equipe. É mandatório tornar os requisitos acessíveis a todos da equipe, facilitando dessa maneira a colaboração e fornecendo visibilidade ao impacto da mudança. A IBM descobriu que o investimento em uma solução de gerenciamento de requisitos, como IBM Rational Requirements Composer, IBM Rational RequisitePro ou IBM Rational Doors facilita a colaboração em equipe e ajuda a implementar as melhores práticas de gerenciamento de requisitos. Por sua vez, isso reduz custos e ajuda a atenuar riscos. Rational Requirements Composer é uma solução de gerenciamento e definição de requisitos colaborativa, perfeita para equipes que desejam se concentrar na definição e precisam de gerenciamento de requisitos Ela fornece técnicas textuais e visuais para descobrir, elaborar e validar requisitos de forma colaborativa com suas partes interessadas e ajuda a fornecer soluções de qualidade que atendem seus requisitos de negócios e de produto. Rational RequisitePro e Rational Doors fornecem capacidade de rastreamento e análise de impacto que mantém os analistas, arquitetos, desenvolvedores e testadores alinhados com as necessidades e requisitos de negócios por todo o ciclo de vida da entrega de software. Visibilidade dos resultados do projeto e processo: Gerenciamento e medição de desempenho O gerenciamento e a medição do desempenho ajudam as equipes de entrega de software a tomar decisões corretas fornecendo uma visão mais aprofundada da organização. Possibilita que uma organização faça medições, monitore e analise o desempenho do projeto e do processo contra os objetivos dos negócios para definição de tendências, para identificar problemas e para conduzir melhoria contínua do processo. Quando dados são coletados manualmente, quando vêm de fontes diferentes que possa não se alinhar ou onde há uma incapacidade de coletar informações de várias equipes (criando assim silos de dados), é quase impossível tomar as decisões corretas em uma organização. Torna-se difícil reagir a mudanças organizacionais ou de mercado e medir a eficiência dos processos e práticas para melhorá-los. E, com certeza, essa ineficiência pode impactar diretamente os custos e riscos dos negócios.


Mitigando riscos durante o Ciclo de Vida de entrega de Software Pagina 9

Destaques Não é possível melhorar o que não se pode medir. Informações em tempo real em uma única exibição de vários projetos, produtos e locais de atuação ajudam as equipes de projeto a rever, avaliar e melhorar os processos atuais.

Medir a eficiência organizacional melhora os processos e práticas, o que não apenas aumenta a eficiência e velocidade, mas permite detecção rápida dos problemas.

Elevar a visibilidade em uma organização tendo informações em tempo real em uma única exibição por vários projetos, produtos e locais de atuação ajudam as equipes de projeto a rever, avaliar e melhorar processos atuais dentro de cada fase do ciclo de vida da entrega de software. Ter acesso aos dados corretos na hora certa ajuda as organizações a tomar decisões objetivas e bem informadas. Elas são capazes de medir a eficiência organizacional para melhorar processos e práticas, o que não apenas aumenta a eficiência e velocidade, mas também permite detecção rápida dos problemas e monitoramento contínuo de status para custos e riscos reduzidos. IBM Rational Insight, uma solução de gerenciamento e medição de desempenho, permite que as organizações façam medições, monitorem, analisem e definam tendências de desempenho de projetos e processos além de continuamente melhorar resultados organizacionais por meio de melhorias. Elimina tempo ineficiente gasto com coleta de dados manuais por meio de coleta automática de dados apresentados em uma única exibição. Rational Insight também ajuda a suportar o IBM Measured Capability Improvement Framework (conhecido como MCIF) para melhoria do processo e implantação de melhores práticas. Isso alinha orientação com medição de desempenho para melhorias mais rápidas em uma organização, diminuindo então os custos e elevando as habilidades da equipe.


Mitigando riscos durante o Ciclo de Vida de entrega de Software Pagina 10

Destaques

Líderes bem sucedidos aproveitarão a inovação para ajudá-los a capturar oportunidades de negócios, gerenciar de acordo com objetivos e executar com custos e riscos reduzidos.

Conclusão Reduzir custos de negócios atenuando riscos no ciclo de vida da entrega de software não é simplesmente um desejo entre as empresas atualmente. Durante estes tempos desafiantes na economia, é imperativo melhorar a taxa de sucesso dos projetos com custos reduzidos. Melhorar a taxa de sucesso dos projetos requer que as equipes se concentrem nos resultados dos negócios, tornem-se tão produtivas quanto possível e atenuem riscos com ferramentas e técnicas comprovadas. Isto requer uma combinação correta de informação, colaboração e automação — todas na hora certa. Para conduzir a transformação dos negócios, as companhias precisam de maior agilidade e tempo de resposta de suas equipes. Elas exigem maior diferenciação em seus produtos e serviços a fim de ultrapassar a concorrência e aumentar lucros. O gerenciamento de requisitos ajuda a alcançar um consenso entre as partes interessadas. Ele se concentra na capacidade de fornecer soluções de qualidade que alinham entregas de projetos com a necessidade de negócios das partes interessadas. O gerenciamento e a definição do desempenho ajudam a monitorar, analisar e definir tendências do projeto, recursos e resultados do projeto para conduzir a execução de projetos e processos com resultados consistentes e previsíveis. Fazer a coisa certa significa ser capaz de: • Reduzir riscos pelo ciclo de vida da entrega de software por meio de colaboração de equipe para esclarecer problemas de negócios atuais, aumentar a produtividade individual e de equipe, comprimir ciclos de desenvolvimento e entregar rapidamente software de alta qualidade. • Tomar melhores decisões baseadas em informações em tempo real e precisas e no consenso entre as partes interessadas • Conduzir entrega de projetos mais rápidas fornecendo colaboração, histórico e contexto de requisitos que os membros da equipe precisam para reduzir retrabalho e permitir reutilização eficiente dos artefatos de requisitos para projetos futuros • Iterar rapidamente analisando e gerenciando a mudança para um contínuo alinhamento com as prioridades dos negócios.


Para mais informações, visite: rational.com.br

IBM Brasil Ltda. Rua Tutóia, 1157 CEP 04007-900 São Paulo – Brasil

ibm.com /developerworks/blogs/page/rationalbrasil O site da IBM pode ser encontrado em: ibm.com

Para mais informações sobre Treinamentos IBM Rational, acesse: ibm.com /training/br

Notas finais 1. IDC Whitepaper: How Project and Portfolio Management Solutions Are Delivering Value to Organizations, setembro de 2008 2. Standish Group Chaos Report, CHAOS Resumo 2009 3. “The Standish Group” – http://www.standishgroup.com/newsroom/chaos_2009.php 4. Christopher Lindquist, “Fixing the Requirements Mess,” na CIO Magazine, 15 de novembro de 2005 5. Rikki Kirzner, “Requirements Management: A Core Part of the Development Lifecycle,” DevX.com, 8 de agosto de 2008, em www.devx.com/ibm/Article/38819/4047

IBM, o logotipo IBM, ibm.com, Rational, IBM Rational Requirements Composer, IBM Rational RequisitePro, IBM Rational Insight e IBM Measured Capability Improvement Framework são marcas registradas da International Business Machines Corporation nos Estados Unidos da América, outros países ou ambos. Outro nome de empresa, produto, ou serviço podem ser marcas comerciais da IBM ou outras empresas. Java e todas as marcas comerciais baseadas em Java, são marcas comerciais da Sun Microsystems, Inc. nos Estados Unidos, em outros países, ou em ambos. Uma lista atualizada de marcas registradas da IBM está disponível na Web em “Copyright and trademark information” em www.ibm.com/legal/copytrade.shtml Os dados contidos neste documento são fornecidos somente para fins informativos. Apesar dos esforços realizados para verificar a completude e precisão da informação contida nesse documento, ela é fornecida “no estado em que se encontra” sem qualquer garantia de qualquer tipo, expressada ou implícita.

RAW14172-BRPT-00


Atenuando risco de projetos