Por André Furtado e colaboradores do Centro de Inovação Microsoft de Recife
Introdução
Este artigo tem por objetivo apresentar as principais características da metodologia Pro.NET, resultante do trabalho realizado no projeto "Pro.NET - PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PARA PLATAFORMA .NET". O projeto foi conduzido pelo Centro de Inovação Microsoft de Recife, que conta com a participação do Centro de Informática (CIn) da Universidade Federal de Pernambuco (UFPE), o Centro de Estudos e Sistemas Avançados do Recife (CESAR), a Empresa de Soluções para o Processo de Construções de Software Qualiti, o complexo tecnológico Porto Digital e a Empresa de Fomento a Informática do Estado de Pernambuco (FISEPE) como parceiros e recebe o apoio da Financiadora de Estudos e Pesquisas (FINEP), Microsoft e HP Brasil.
Objetivo
O objetivo da Pro.NET é estabelecer uma metodologia que viabilize baixo custo, alta qualidade e agilidade no desenvolvimento de projetos que utilizem a plataforma .NET.
Motivação
O mercado de desenvolvimento de software, para ser competitivo, necessita cada vez mais de um conjunto de ferramentas (metodologias, linguagens, ambientes de desenvolvimento, etc.) que o faça produzir software, atendendo a três importantes variáveis: baixo custo, alta qualidade e agilidade. Aliado a esse contexto, o mercado de desenvolvimento de software tem uma demanda cada vez mais crescente de dominar e utilizar tecnologias e ferramentas, tais como MSF (Microsoft Solutions Framework), .NET, C#, VB.NET, MS Project, Visual Studio, eXtreme Programming, Rational Unified Process, PMBOK (Project Management Body of Knowledge) do PMI (Project Management Institute), etc.
O Microsoft Solutions Framework (MSF) foi criado em 1994 pela Microsoft Consulting Services (MCS), com o objetivo de aumentar sua taxa de sucesso no desenvolvimento de projetos em soluções de tecnologia. O MSF é baseado em boas práticas utilizadas em projetos bem sucedidos de soluções de tecnologia. Essa necessidade deu-se pela razão da grande quantidade de projetos que não obtiveram resultados satisfatórios. O MSF é um conjunto de práticas para planejar, construir e implantar soluções de Tecnologia da Informação. Ao contrário de uma metodologia, o MSF é um framework flexível e escalável, que atende às necessidades de uma organização ou time de qualquer tamanho. O MSF contém um conjunto de princípios, modelos e disciplinas para gerenciar pessoas, processos e elementos tecnológicos que a maioria dos projetos enfrenta. Vale destacar sua reputação de ser o framework utilizado pela maior empresa de desenvolvimento de software do mundo.
Sendo a Plataforma .NET uma tecnologia idealizada pela Microsoft, é interessante que os usuários da plataforma utilizem os princípios do MSF, pois a própria Plataforma foi desenvolvida utilizando esse framework. Neste contexto, vale ressaltar que o MSF utiliza a "linguagem Microsoft". Isso quer dizer que alguns termos utilizados na documentação da Plataforma .NET também são utilizados pelo MSF.
Tecnologias-alvo
A Pro.NET é uma metodologia direcionada para a Plataforma .NET e desenvolvida com base no MSF para estabelecer um processo de desenvolvimento altamente produtivo. O fato do MSF ser um framework flexível e escalável permitiu sua extensão para a criação da metodologia Pro.NET.
Ao contrário de grande parte dos processos de desenvolvimento existentes atualmente no mercado, a Pro.NET direciona a tecnologia a ser utilizada. O desenvolvimento da metodologia considerou a necessidade de um grupo específico de projetos de Tecnologia da Informação: os que utilizarão como base tecnológica a Plataforma .NET.
Apesar dessa característica, a Pro.NET pode ser utilizada em qualquer projeto de desenvolvimento de software. A maior parte da customização para a tecnologia-alvo está nos artefatos e guias, existindo uma independência nos processos e fluxos das atividades.
De que a Pro.NET não trata?
A Pro.NET não aborda os seguintes tópicos:
- Processo de operação de uma solução depois da implantação.
- Gestão de pessoas: contratação, acompanhamento etc.
- Gestão de orçamentos: definição, alocação, etc.
- Gestão de contratos com fornecedores, clientes e empresas subcontratadas.
- Processo de instanciação da Pro.NET para a realidade de uma organização ou projeto.
As próximas seções deste documento apresentam a estrutura da Pro.NET, o detalhamento do Modelo de Processo e de Equipe, comparação da Pro.NET com o MSF, glossário e a bibliografia utilizada.
Estrutura da Pro.NET
Esta seção apresenta brevemente as duas partes que compõem a estrutura da metodologia Pro.NET: o Modelo de Equipe e o Modelo de Processo.
O Modelo de Equipe descreve como estruturar a equipe e suas responsabilidades para atingir sucesso do projeto. Esse modelo utiliza o conceito de papéis para dividir as responsabilidades entre os membros do projeto. Além disso, apresenta guias de como a equipe deve agir e se relacionar. A seção Modelo de Equipe apresenta mais informações sobre esse tópico.
O Modelo de Processo descreve processos e métodos a serem realizados pelo time do projeto para planejar, desenvolver e implantar soluções de tecnologia da informação.
O modelo de ciclo de vida de desenvolvimento de software da Pro.NET combina dois outros: cascata e espiral. Esse novo modelo define fases a serem seguidas em seqüência, como o modelo cascata, e que devem ser executadas várias vezes no mesmo projeto, definindo as iterações do modelo espiral. O final de cada fase é um marco e durante cada fase ocorrem marcos internos.
Cada iteração possui sua fase de Visão, Planejamento, Desenvolvimento, Estabilização e Implantação. O desenvolvimento deve seguir iterações de curto tempo, para acomodar mudanças dos requisitos da solução. A idéia é desenvolver o projeto de modo iterativo e incremental. A seção Modelo de Processo apresenta maiores informações sobre esse tópico.
Modelo de Equipe
O Modelo de Equipe da Pro.NET é inteiramente baseado no Team Model do MSF, fundamentando-se nos seguintes princípios:
- Estabelecer uma visão compartilhada do projeto: essa visão permite esclarecer os objetivos e traz à luz conflitos e asserções erradas para que os mesmos possam ser resolvidos. Uma visão compartilhada é uma maneira de medir o sucesso do projeto.
- Focar no valor agregado ao negócio do cliente: a equipe deve estar atenta ao que é realmente importante para o negócio do cliente. A tecnologia é utilizada como meio e não como foco.
- Permanecer ágil e esperar mudanças: todos os membros da equipe devem estar cientes de que mudanças ocorrerão e modificarão seu trabalho. Deve ser estimulada a prática de revisões e sugestões no trabalho realizado por outros membros.
- Incentivar comunicação aberta: a comunicação entre os integrantes deve ser estimulada e coordenada. Isso reduz os enganos provenientes da falta de informação. Se precisarem existir informações confidenciais, a equipe deve estar ciente de que existe o sigilo e que ele contribui para o sucesso do projeto.
- Compartilhar responsabilidade: cada membro da equipe é ciente das suas atribuições e divide a responsabilidade pelo sucesso do projeto.
- Dar a liberdade necessária e confiar nos membros da equipe: isso significa entregar aos membros da equipe a autoridade e os recursos necessários para preencher as responsabilidades associadas com seus papéis.
A equipe deve ser organizada como uma Equipe de Colaboradores (Team of Peers), isto é, cada papel da equipe é único, valioso e igualmente valorizado. Esse conceito está representado na Figura 1. Como ilustra a figura, os papéis do Modelo de Equipe são: Gerente de Produto, Desenvolvedor, Analista de Testes, Gerente de Release, Analista de Usuário e Gerente de Projeto.
Figura 1: Papéis da Equipe de Colaboradores
Fonte: referência [R2]