Inaugurando a Gerência

13 11 2010

Como post inaugural deste blog, tentaremos obter uma noção básica sobre as funções pertinentes a um gerente de Software assim como uma explicação de modelos de processos que podem ser utilizados pelo mesmo em seu ambiente de trabalho. Porém, antes de tudo, vamos analisar a definição de forma mais ampla do que apenas no âmbito computacional.

Qual é a função de um Gerente de Projetos?

“O Gerente de Projeto é um profissional que raramente participa das atividades diretas do projeto que produzem os resultados. Sua função é gerenciar o progresso do empreendimento e através das variáveis (qualidade, custo, prazo e âmbito) verificar seus desvios. Desta forma, seu objetivo geral é proporcionar que as falhas inerentes aos processos sejam minimizadas.

Um gerente de projeto tem que determinar e executar as necessidades do cliente, baseado nos seus próprios conhecimentos. A habilidade de adaptar-se aos diversos procedimentos pode lhe proporcionar um melhor gerenciamento das variáveis e desta forma uma maior satisfação do cliente.

Em campo, um gerente de projeto bem sucedido deve poder imaginar o projeto inteiro do seu começo ao seu término e desta forma assegurar que esta visão seja realizada.

Tirinha indicando algumas das atividades comuns de um gerente de software

Sabemos agora então que a gerencia de projetos não é algo exclusivo da computação, e sim uma melhoria que pode ser aplicada em diversas áreas atuantes. Qualquer tipo de produto ou serviço — edifícios, veículos, eletrônicos, software de computador, serviços financeiros, etc — pode ter sua execução supervisionada por um gerente de projeto e suas operações por um gerente de operações.Os projetos de desenvolvimento de software apresentam um desafio ainda mais complicado quando comparado à maioria dos outros tipos de projetos já citados. Além disso, estes projetos possuem as seguintes características:

  • Não são sujeitos a freqüentes mudanças;
  • É bastante raro que, quando uma parte do produto apresente algum tipo de mal-funcionamento, ocorram efeitos colaterais em outros pontos do produto que sejam de difícil diagnóstico.

Esse não é o caso na grande maioria dos projetos de software embora muitos tentem aproximar a indústria de software à da construção civil ou às indústrias de manufatura. Hoje existem até mesmo as famosas “fábricas de software”! A crença tem sido de que a construção de software é similar à construção de prédios ou de bons produtos manufaturados. Infelizmente, nada poderia ser tão distante da realidade. Não é normal na construção civil ou nas indústrias tradicionais as especificações e design serem alteradas nas fases de construção ou produção. Quando isso ocorre os estouros de orçamento são, em geral, monstruosos.

Essa “fluidez” nos requisitos é o maior desafio para o sucesso no gerenciamento de projetos de software. Gerentes que usam a construção ou a produção industrial como referência, freqüentemente subestimam os problemas que são causados para a equipe e também para os custos do projeto o congelamento prematuro dos requisitos.

Recentemente uma pesquisa com diversos gerentes seniores revelou que as questões que lhes causavam maiores preocupações eram as incertezas associadas aos requisitos dos projetos. Em defesa do bom gerenciamento, é necessário ser dito que um dos trabalhos primários de um gerente é assegurar a possibilidade de alterações controladas em um projeto, reduzindo surpresas desagradáveis. Gerentes que têm dificuldade de assegurá-las em breve estarão procurando por um novo trabalho.

Entretanto, as ferramentas e as técnicas que funcionam bem na indústria tradicional são freqüentemente inadequadas e impõem altos custos quando as coisas não vão de acordo com o previsto. No negócio de software, provavelmente as únicas coisas previsíveis são as freqüentes mudanças de requisitos e a incerteza provocada pela imaturidade de novas tecnologias. Em muitos casos, os gerentes tentam impor o “previsto” através das rigorosas metodologias que são um conjunto de processos lineares que necessitam ser feitos para honrar os cronogramas e datas. Para lidar com novas tecnologias os gerentes contratam, a peso de ouro, equipes com um perfil técnico que em pouco tempo se desatualiza. Menor atenção é dada ao treinamento e à melhoria das habilidades da equipe, tal como o planejamento do projeto, a estimativa, programação, a identificação e gerenciamento de risco, e assim por diante.

Gerência de Softwares não podem ser gerenciadas como projetos de manufatura, mudanças devem ser controladas e estudadas.

Uma outra deficiência comum nas empresas são os sistemas de gerenciamento. Embora muitas metodologias imponham rigorosos processos de gerência, isso não significa que eles sejam necessariamente bons. Em muitos casos, são muito fracos na identificação de riscos de mudança. As mudanças nos requisitos ou no design de um sistema não são bem tratadas por essas metodologias porque exigem grandes mudanças nos planejamentos originais. Esses planejamentos são freqüentemente baseados em tarefas que foram definidas e estimadas quando nem todos os pontos ainda estavam claramente compreendidos. Isso faz com que sejam introduzidas novas atividades, enquanto outras são removidas do plano original, fazendo com que o projeto real perca totalmente a similaridade do projeto original, sobre o qual foram definidos custos e prazos.

É nesse contexto que as chamadas “metodologias ágeis” se inserem. Muito se tem ouvido falar de métodos como “eXtreme Programming”, Scrum, “Feature Driven Development”, etc. Essas “metodologias ágeis” se propõem a tratar os requerimento “fluidos” e incertos de uma maneira mais adequada que as metodologias tradicionais. As rápidas e freqüentes releases de porções do software final ajudam a descobrir problemas decorrentes de novas tecnologias antes que um grande investimento tenha sido feito. Também permitem que contornos aos problemas das novas tecnologias sejam desenvolvidos mais precocemente no ciclo de desenvolvimento de um produto de software.

Embora muitos gerentes sejam mais céticos com relação a essas novas metodologias, elas funcionam em muitos casos, mas requerem atenção especial a algumas questões tais como perfil da equipe, adaptação de processos, e sistemas de controle e gestão. O perfil da equipe precisa também ser aperfeiçoado em termos do uso de métodos ágeis, bem como nas questões de estimativas, planejamento e gerenciamento de risco.

A definição de um software, o desenvolvimento, e os processos de implantação necessitam ser revistos e customizados de modo que os métodos ágeis possam ser usados com sucesso. Cada organização é diferente e tem necessidades diferentes e os processos e os métodos escolhidos devem se ajustar a essas necessidades sob o risco de comprometer o sucesso do projeto.Ainda, os relatórios gerenciais e os sistemas de controle necessitam ser aperfeiçoados e melhorados para funcionar bem com estes novos métodos. Os sistemas de controles gerenciais tradicionais não podem monitorar eficientemente e verificar o progresso dos projetos feitos usando métodos ágeis.

Vimos em nossa primeira postagem em nosso blog que a gerência de projeto do software não é sempre tão fácil como parece. As técnicas de gerência tradicionais de projeto são incapazes de adaptar-se muito bem às mudanças e aos novos riscos. Isto faz com as equipes tenham cada vez mais dificuldades para reagirem rapidamente às mudanças intrínsecas ao processo de desenvolvimento de software. Entretanto, as novas técnicas com métodos ágeis podem tornar mais fácil a vida de gerentes de projeto e equipes desde que executadas corretamente. Uma equipe qualificada e comprometida conseguirá entregar softwares melhores e mais baratos mais rapidamente.

Não percam nosso próximo post onde iremos tratar alguns modelos de processos e como estes se relacionam com a gerência dos projetos abordados!


Ações

Information

Uma resposta

13 11 2010
Mr WordPress

Hi, this is a comment.
To delete a comment, just log in, and view the posts’ comments, there you will have the option to edit or delete them.

Deixe um comentário