Prévia do material em texto
Engenharia de Software Aula 05 Gerência de projetos Objetivos Específicos • Entender as principais tarefas de um gerente de projetos no ciclo de vida de desenvolvimento e os fatores que influenciam o trabalho em equipe, comunicação, organização e composição da mesma. Temas 1 Gerência de projetos de software 2 Planejamento de projeto Considerações finais Referências Professora Ana Cláudia Rossi Senac São Paulo - Todos os Direitos Reservados Engenharia de Software 2 Introdução Vamos começar a nossa aula de Gerência de Projetos! O objetivo desta aula é conhecer a área de gerenciamento de projetos de software, suas principais atividades e importância para o sucesso de um projeto de software. Portanto, ao terminar esta aula você deverá ser capaz de: • conhecer as principais tarefas de um gerente de projeto; • compreender o conceito de risco e ter noções de como realizar o gerenciamento de riscos; • entender os fatores que influenciam a motivação das equipes de software e o impacto que isso tem nos projetos de software; • entender os aspectos envolvidos no trabalho em equipe; • conhecer algumas noções de planejamento de projeto de software. Vamos começar discutindo o que é gerência de projetos, suas atividades e importância. 1 Gerência de projetos de software Um dos trabalhos do engenheiro de software é participar de projetos de desenvolvimento de um produto de software ou de um serviço. Mas o que é um projeto? Segundo o PMBOK (2014), projeto é um esforço temporário empreendido para criar um produto, serviço ou resultado exclusivo. Neste contexto, o termo temporário significa que o projeto tem uma duração definida. Ou seja, um projeto tem início e fim bem definidos. Ainda de acordo com a definição, é importante ressaltar também que o termo esforço, no contexto de projeto, refere-se aos recursos humanos e materiais empregados, durante o período, que são utilizados para o desenvolvimento do produto ou serviço e atingir o resultado. Esses recursos devem ser coordenados e administrados, para que os objetivos e resultados esperados pelo projeto sejam atingidos dentro do orçamento e no tempo previsto. As características de um projeto são as seguintes (PMBOK, 2014): • objetivo: o projeto tem um objetivo definido no início e que deve ser alcançado ao final; • ciclo de vida definido: o projeto tem um ciclo de vida que envolve as seguintes etapas: iniciação, planejamento, execução, controle e encerramento; • complexidade: um projeto pode existir em diferentes níveis de complexidade, do mais simples ao mais complexo; Senac São Paulo - Todos os Direitos Reservados Engenharia de Software 3 • singular: produz um produto, serviço ou resultado único; • riscos: a execução de um projeto envolve riscos que podem prejudicar o atingimento de seu objetivo e afetar o resultado; • recursos limitados: o projeto envolve recursos limitados de tempo, custo, materiais, equipamentos e pessoas. Dessa forma, podemos destacar que os fatores essenciais para o sucesso de um projeto são (SOMMERVILLE, 2011): • acordo entre a equipe de projeto, o cliente e a gerência com relação aos objetivos do projeto; • um plano que mostre o caminho geral e responsabilidades claras e que será usado para medir o progresso durante o projeto; • comunicação constante e efetiva entre todos os envolvidos no projeto; • escopo controlado; • gerência apoiada. Assim, é necessária a gerência de projeto, definida como a aplicação de conhecimento, ferramentas e técnicas para realizar as atividades que visam atender aos critérios de sucesso de um projeto e, para isso, é necessário atingir as seguintes metas: dentro do prazo e do custo previsto, entregar um software que atenda às expectativas do cliente e manter a equipe de desenvolvimento motivada. É muito importante que o gerente de projeto conheça e tenha domínio de métodos, técnicas e ferramentas que permitam um melhor planejamento e controle do projeto. 1.1 Atribuições e responsabilidades de um gerente de projeto As atribuições e responsabilidades de um gerente de projeto são muitas, mas, podemos destacar algumas (SOMMERVILLE, 2011): • elaboração de propostas: essa é uma das primeiras tarefas de gerenciamento de projetos. A proposta deve descrever objetivo, escopo, restrições e como o projeto deve ser realizado. Pode haver uma previsão de entrega inicial, estimativa de custo e um cronograma. É uma etapa muito importante e a proposta inicial é vital para a aceitação do projeto. Não existe receita de bolo, essa habilidade é adquirida através da prática e experiência em gerência de projetos; • planejamento de projetos: o plano de projeto é um esboço de um desejo futuro e os meios para alcançá-lo, para isso, determina um conjunto de métodos e estratégias Senac São Paulo - Todos os Direitos Reservados Engenharia de Software 4 adotadas para definir: O QUÊ, COMO, QUANDO e DE ONDE. O gerente de projeto é responsável por estabelecer com antecedência as ações a serem executadas, estimar recursos a serem empregados e definir as correspondentes atribuições de responsabilidades para que sejam alcançados os objetivos do projeto. O gerente de projeto também deve controlar e monitorar a execução do plano de projeto, acompanhando o progresso do projeto e tomando ações corretivas caso necessário; • gerenciamento de riscos: compreende processos relativos à identificação, análise e respostas para os riscos envolvidos em um projeto. Para isso, tem como objetivo maximizar os resultados dos eventos positivos e minimizar as consequências dos eventos negativos (ou adversos); • gerenciamento de pessoas: projetos envolvem pessoas, que devem ser gerenciadas. O gerente de projeto deve ser capaz de formar uma equipe de acordo com as características e necessidades do projeto e, também, estabelecer os mecanismos de trabalho em equipe para obter eficiência da mesma; • gerenciamento da comunicação: inclui os processos requeridos para garantir a geração, coleta, disseminação e armazenamento das informações do projeto, de forma apropriada, no momento adequado e para a pessoa certa. Essas são algumas atribuições de um gerente de projeto, mas existem muitas outras. Vamos detalhar mais alguns desses conceitos, que são gerenciamento de riscos, gerenciamento de pessoas e planejamento de projeto. Para saber mais sobre as áreas que fazem parte da gerência de projetos, acesse a Midiateca. 1.2 Gerenciamento de riscos Em um projeto existem muitas fontes de incertezas e imprevistos, uma gestão ruim dessas incertezas e imprevistos pode gerar problemas, como: provocar sucessivas mudanças nas metas do projeto, anular todo o esforço de planejamento, interferir nas relações contratuais e interpessoais, prejudicar a reputação do gerente e causar a perda de controle. Isto é, a não gestão do projeto e afetar o sucesso do projeto. Assim, o gerente de projeto tem a tarefa de evitar que essas incertezas e esses imprevistos sejam uma fonte de risco ao projeto e, dessa maneira, não afetem a qualidade do produto do projeto, o prazo e o orçamento. Existem três categorias que são relacionadas a isso (SOMMERVILLE, 2011): Senac São Paulo - Todos os Direitos Reservados Engenharia de Software 5 • riscos de projeto: riscos que afetam o cronograma ou os recursos do projeto, por exemplo, a perda de um projetista experiente na equipe; • riscos de produto: riscos que afetam a qualidade ou o desempenho do software que está sendo desenvolvido, por exemplo, é a falha de um componente de software comprado que apresente um desempenho abaixo do esperado, o que pode comprometer o desempenho de todo o software; • riscos de negócio: riscos que afetam a organização que desenvolve ou adquire o software, por exemplo, um concorrente que introduz um novo produto para competir com o que está sendo desenvolvido no seu projeto, portanto, esse é um risco empresarial. Desta forma, o gerenciamento de riscos é um processo de extrema importância para garantiro sucesso de um projeto. Para isso, o gerenciamento de riscos é um meio pelo qual a incerteza é sistematicamente gerenciada para aumentar a probabilidade do projeto cumprir os seus objetivos. A figura 1 apresenta uma esquematização da gerência de riscos. Figura 1 - Processo de gerência de riscos Fonte: Sommerville (2011, p. 417). O gerenciamento de riscos é composto pelas seguintes fases, que são (SOMMERVILLE, 2011): • identificação de risco: identificação das possíveis fontes de risco de projeto, de produto e de negócio. Podem ser utilizadas informações históricas de projetos anteriores ou um catálogo de riscos comuns, de acordo com o tipo de projeto; • análise de risco: avaliar a probabilidade e as consequências de cada um dos riscos identificados; • planejamento de risco: planejar uma resposta ao risco (plano de contingência), evitando ou minimizando seus efeitos sobre o projeto; Senac São Paulo - Todos os Direitos Reservados Engenharia de Software 6 • monitoramento de riscos: avaliar regularmente os riscos e seus planos para atenuação do risco e atualizar sempre quando um novo risco for identificado ou novas informações sobre riscos já identificados surgirem. 1.3 Gerenciamento de pessoas No desenvolvimento do software as habilidades e competências dos membros da equipe são um fator muito importante no sucesso de um projeto. Cada vez mais os profissionais que atuam na área de engenharia de software necessitam de uma formação multi e interdisciplinar para atuar no mercado de desenvolvimento de software com mais qualidade e eficiência. A formação necessária para um profissional atuar na indústria de software vai além da formação tecnológica, envolve também, muitas vezes, um perfil mais ou menos técnico, alguém com habilidades de liderança, ou comunicativo, ou até mesmo uma pessoa com capacidade de inovar. Desta forma, o papel do gerente de projeto é montar equipes de acordo com as características do projeto, como também, motivar, desenvolver habilidades e capacitar os membros da equipe de acordo com as necessidades do projeto. Entretanto, se você almeja ser um bom gerente de projeto é importante desenvolver algumas habilidades e competências, tais como: consistência, respeito, liderança, motivação, inclusão e honestidade. A eficiência de um grupo de desenvolvimento de software é influenciada pelas pessoas que fazem parte dela, pela forma como está organizada e pelos mecanismos que estabelecem o canal de comunicação entre a equipe e com os demais envolvidos no projeto. Já as pessoas são motivadas a trabalhar no projeto por terem boa interação com os demais membros da equipe, pelo reconhecimento das suas habilidades e competências pela gerência e pelos membros da equipe e, também, pelas oportunidades de desenvolvimento pessoal (SOMMERVILLE, 2011). O People CMM é um guia para desenvolver práticas chaves em pessoas de equipes de software. Para saber mais sobre ele, acesse a Midiateca. 2 Planejamento de projeto O planejamento é um esboço de um desejo futuro e os meios para alcançá-lo. Envolve um conjunto de métodos e estratégias adotadas para definir: o quê? Como? Quando? e De onde? Senac São Paulo - Todos os Direitos Reservados Engenharia de Software 7 Para isso, deve ser estabelecido um conjunto de atividades inter-relacionadas para se chegar aos resultados desejados e, também, estabelecer com antecedência as ações a serem executadas, estimar tempo e recursos a serem empregados e definir as correspondentes atribuições de responsabilidades para que sejam alcançados os objetivos do projeto. O planejamento envolve as seguintes atividades: • criar a definição de projeto: propósito, escopo, resultados e definir as responsabilidades da equipe; • construir uma estrutura de desmembramento de trabalho (EDS ou WBS – Work Breakdown Structure); • identificar as relações entre as tarefas: diagrama de atividades que estabelece a relação de tarefas predecessoras e antecessoras; • fazer estimativas dos pacotes de trabalho: duração de cada tarefa; • calcular o cronograma inicial: obtido a partir da sequência de execução das tarefas e da duração de cada tarefa; • atribuir e nivelar os recursos: fazer ajustes necessários depois da atribuição dos recursos para uma distribuição uniforme deles, com o intuito de evitar sobrecarga de recursos. A figura 2 apresenta o processo de planejamento de projeto, incorporando atividades de gerência de riscos e, também, as atividades de controle e monitoramento da execução do projeto. Figura 2 - Processo de planejamento de projeto Fonte: Sommerville (2011, p. 436). Senac São Paulo - Todos os Direitos Reservados Engenharia de Software 8 2.1 Cronograma do projeto Nessa fase é elaborado o cronograma do projeto. Um cronograma é uma ferramenta de gestão das atividades do projeto, que pode ser apresentada na forma de uma tabela. Essa tabela, além de apresentar as fases e as atividades, também deve incluir outras informações, tais como: duração das atividades, data de início e fim, tarefas predecessoras e sucessoras, recursos associados à atividade (pessoa ou material), custo e outras informações. Pode acompanhar o cronograma uma representação gráfica conhecida como Gráfico de Gant, que permite visualizar a duração das atividades e a sequência de execução em uma linha de tempo. Na figura 3 podemos observar um exemplo de lista de atividades de um projeto de software, representada em forma de tabela e no formato gráfico (Gráfico de Gant). Figura 3 - Exemplo de um cronograma de projeto de um e-commerce Fonte: elaborado pela autora. Podemos observar neste cronograma as fases do ciclo de vida em cascata e as respectivas atividades de cada fase. Cada atividade produz um entregável, assim, fica mais fácil estimar o tempo de duração e, também, associar um recurso para realizar essas atividades. Outro ponto a ser observado é o encadeamento das atividades. Algumas têm dependência do produto gerado por outras atividades e, dessa maneira, é estabelecida uma relação de precedência. Entretanto, outras atividades não têm essas dependências, podendo ser executadas em paralelo. O cronograma é uma ferramenta muito importante do planejamento do projeto e elaborá-lo é uma das atribuições do gerente de projeto. Senac São Paulo - Todos os Direitos Reservados Engenharia de Software 9 Considerações finais O gerenciamento de projetos de software é um conjunto de processos críticos e fundamentais para o sucesso do desenvolvimento de um software, assim, o papel de um bom gerente de projetos é essencial. Um projeto de sucesso de software é aquele que consegue atender às expectativas do cliente com relação ao prazo e custo, como também, com relação às expectativas pelo produto de software desenvolvido e o uso dos recursos de forma adequada. Como consequência disso, um gerente de projeto é um profissional que acumula experiência de projetos e deve ter habilidades e conhecimentos técnicos para ser capaz de estabelecer uma estratégia com o objetivo de atingir esses resultados. As atividades da gerência de projetos devem acompanhar todo o ciclo de vida do software, desde a concepção até a finalização do produto. Como pode ser observado na figura 4. Figura 4 - Interação entre o gerenciamento e o processo de desenvolvimento de software Fonte: adaptado de Hirama (2012, p. 53). Os processos de gerenciamento de projetos devem cobrir todo ciclo de vida de desenvolvimento de software, definindo, planejando, controlando e monitorando todas as atividades, produtos gerados e recursos envolvidos no projeto de software. Referências HIRAMA, K. Engenharia de software: qualidade e produtividade com tecnologia. Rio de Janeiro: Editora Campus, 2012. PROJECT MANAGEMENT INSTITUTE (PMI). Um guia do conjunto de conhecimentos em gerenciamentos de projetos: Guia PMBOK. 5. ed. 2014. SOMMERVILLE, I. Engenharia de software. 9. ed. São Paulo: Pearson, 2011. ENG_SOFT_05_PDF_2014