Guia Completo: Gerência de Projetos e Modelos de Software

Classificado em Tecnologia

Escrito em em português com um tamanho de 13,4 KB

Gerência de Projetos

O Que É um Projeto?

É um esforço temporário para criar um produto, serviço ou resultado não repetitivo com consequências lógicas. Série de atividades e tarefas com um objetivo específico.

Características de um Projeto

  • Temporário: Início e término definidos, não significa curta duração, mas sim um resultado duradouro.
  • Exclusividade: A repetição não muda a unicidade do projeto.
  • Elaboração Progressiva: Desenvolvimento em etapas: início abrangente, detalhamento durante a execução.

O Que um Projeto Pode Criar?

  • Produto que pode ser um componente de outros.
  • Capacidade de realizar um serviço.
  • Resultados como um documento.

Tipos de Gerenciamento

  • Gerenciamento de Projetos

    Desenvolve e implementa planos para o alcance de um escopo específico.

  • Gerenciamento de Programas

    Harmoniza os componentes de seus projetos e controla as interdependências a fim de obter os benefícios especificados.

  • Gerenciamento de Portfólio

    Alinha-se com as estratégias organizacionais, selecionando os programas ou projetos certos, priorizando o trabalho e proporcionando os recursos necessários.

Gestão de Projetos

  • O Gerenciamento de Projeto Inclui

    Identificar os requisitos, adaptação, equilíbrio com as restrições do projeto.

  • Benefícios de Gerenciar Projetos

    Permite rápidas respostas às mudanças, maior produtividade, reduz as perdas.

O Papel dos Gerentes de Projetos

  • Liderança

    Concentração dos esforços de um grupo de pessoas na direção de um objetivo comum, para trabalhar uma equipe, respeito e confiança.

  • Desenvolvimento da Equipe

    Processo de ajudar um grupo de indivíduos a trabalhar juntos, com o líder, com as partes interessadas externas e com a organização. Discussão dos problemas da equipe com questões sem culpar indivíduos.

  • Motivação

    O sucesso depende do comprometimento da equipe do projeto, criação de um ambiente que atenda aos objetivos do projeto e ofereça satisfação.

  • Comunicação

    Comunicação eficaz dentro da equipe do projeto e entre o gerente do projeto, os membros da equipe e todas as partes interessadas externas. Conhecer os estilos de comunicação das questões culturais, relacionamento, personalidades e contexto da situação.

  • Influência

    Liderar pelo exemplo e cumprir os compromissos, estabelecendo como uma decisão é tomada.

  • Negociação

    Diferenciar entre desejos e necessidades, conceder valor, ambas as partes devem se sentir vitoriosas, escutar com atenção e comunicar-se de maneira clara.

  • Estabelecimento de Confiança

    Passar tempo diretamente envolvido com a equipe. Não reter as informações, olhar para além dos seus próprios interesses.

  • Gerenciamento de Conflitos

    O conflito pode produzir resultados disfuncionais ou ajudar a equipe a chegar a uma solução melhor. O gerenciamento de conflitos inclui o estabelecimento da confiança e engajar-se na busca de uma solução prática para a situação que está criando o conflito.

  • Coaching

    Desenvolvimento da equipe do projeto para que alcance níveis mais altos de competências e desempenho. Desenvolver ou aprimorar suas habilidades, ou para criar novas competências. O coaching difere do aconselhamento.

Estruturas Organizacionais

  • Estrutura Funcional ou Linear

    A organização funcional, em seu método clássico, pode ser definida como uma estrutura hierárquica com nível superior de afinidade bem dirigido. Cada nível superior é agrupado, projetos de especialidade, como por exemplo: tecnologia, recursos humanos, entre outros. Neste tipo de organização, cada departamento tem sua parte no projeto, ou seja, não há integração do departamento com outro departamento.

  • Estrutura Matricial Fraca

    Mantém boa parte das características de uma organização funcional. O papel do gerente de projetos tende mais para o de coordenador de comunicação. Não possui uma autonomia mínima para tomada de decisões e se reporta a um gerente de nível hierárquico superior.

  • Estrutura Matricial Balanceada

    Reconhece a necessidade de haver um gerente de projeto, porém não dá ao gerente de projetos autoridade total sobre o projeto e seus financeiros.

  • Estrutura Matricial Forte

    Apresenta grande parte de características de uma organização de projetos. O gerente de projetos possui autonomia para tomada de decisões e tanto o gerente de projetos quanto a equipe administrativa são alocados em tempo integral para o gerenciamento de projeto.

Campos de Atuação de Softwares

Atualmente, sete grandes categorias de softwares apresentam desafios contínuos para os engenheiros de software.

  • Software de Sistema

    Conjunto de programas feito para atender a outros programas. Certos softwares de sistema (por exemplo, compiladores, editores e utilitários para gerenciamento de arquivos) processam estruturas de informação complexas, porém determinadas.

  • Software de Aplicação

    Programas independentes que solucionam uma necessidade específica de negócio. Aplicações nessa área processam dados comerciais ou técnicos de uma forma que facilite operações comerciais ou tomadas de decisões administrativas/técnicas.

  • Software de Engenharia/Científico

    Uma ampla variedade de programas de cálculo em massa que abrangem astronomia, vulcanologia, análise de estresse automático, dinâmica orbital, projeto auxiliado por computador, biologia molecular, análise genética e meteorologia, entre outros.

  • Software Embarcado

    Residente num produto ou sistema e utilizado para implementar e controlar características e funções para o usuário e para o próprio sistema. Exemplo: executa funções limitadas e específicas de um controle do painel de um forno de micro-ondas.

  • Software para Linha de Produtos

    Projetado para prover capacidade específica de utilização por muitos clientes diferentes. Software para linha de produtos pode se concentrar em um mercado hermético e limitado (por exemplo, produtos de controle de inventário).

  • Aplicações Web e Aplicativos Móveis

    Esta categoria de software voltada às redes, abrangendo uma ampla variedade de aplicações, contemplando aplicativos voltados para navegadores e software residente em dispositivo móvel.

  • Software de Inteligência Artificial

    Faz uso de algoritmos não numéricos para solucionar problemas complexos que não são possíveis de computação de análise direta. Aplicações nessa área possuem robótica, sistemas especialistas, reconhecimento de padrões (de imagem e de voz), redes neurais e artificiais, prova de teoremas e jogos.

Web Apps

Nos primórdios da World Wide Web (por volta de 1990 a 1995), os sites eram formados por nada mais do que um conjunto de arquivos hiperativos linkados e que apresentavam informações usando texto e gráficos limitados. Com o tempo, o crescimento da linguagem HTML via ferramentas de desenvolvimento (por exemplo, XML e Java).

Aplicativos Móveis

O termo aplicativo evoluiu para surgir software projetado especificamente para residir em uma plataforma móvel (por exemplo, iOS, Android ou Windows Mobile). Na maioria dos casos, os aplicativos móveis contêm uma interface de usuário que tira proveito de mecanismos de interação exclusivos fornecidos pela plataforma móvel, da interoperabilidade com recursos baseados na web que dão acesso a uma grande variedade de informações relevantes ao aplicativo e de capacidades de processamento local que coletam, analisam e formatam as informações de forma conveniente para a plataforma.

Requisitos Não Funcionais

Pode ser descrito como um atributo de qualidade de desempenho, de segurança ou como uma restrição geral em um sistema. Normalmente, estes são listados separadamente, dentro da especificação do software.

Levantamento de Requisitos

Também chamado de elicitação de requisitos, combina elementos de solução de problemas, elaboração e negociação e especificação. Tem como objetivo identificar diferentes abordagens e especificar um conjunto preliminar de requisitos de solução, em uma atmosfera que seja propícia a alcançar a meta.

Organização Projetizada

Ao contrário da organização funcional, ou hierárquica, a organização projetizada é voltada para a execução de projetos. Neste tipo de organização, o gerente de projetos possui alto nível de independência e autoridade. Os membros da equipe frequentemente trabalham juntos e a maior parte dos funcionários da organização está envolvida no trabalho do projeto.

O Modelo Cascata

  • Modelo mais antigo e o mais amplamente usado da engenharia de software.
  • Modelado em função do ciclo da engenharia convencional.
  • Requer uma abordagem sistemática, sequencial ao desenvolvimento de software.
  • O resultado de uma fase se constitui na entrada da outra.

Problemas com o Modelo Cascata

  • Projetos reais raramente seguem o fluxo sequencial que o modelo propõe.
  • Logo no início é difícil estabelecer explicitamente todos os requisitos. No começo dos projetos sempre existe uma incerteza natural.
  • O cliente deve ter paciência. Uma versão executável do software só fica disponível numa etapa avançada do desenvolvimento.

O Modelo de Prototipação

  • O objetivo é entender os requisitos do usuário e, assim, obter uma melhor definição dos requisitos do sistema.
  • Possibilita que o desenvolvedor crie um modelo (protótipo) do software que deve ser construído.
  • Apropriado para quando o cliente não definiu detalhadamente os requisitos.

Problemas com a Prototipação

  • O cliente não sabe que o software que ele vê não considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo.
  • O desenvolvedor frequentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo.

O Modelo RAD

  • RAD (Rapid Application Development) é um modelo sequencial linear que enfatiza um ciclo de desenvolvimento extremamente curto.
  • O desenvolvimento rápido é obtido usando uma abordagem de construção baseada em componentes.

Características do Modelo RAD

  • Os requisitos devem ser bem entendidos e o alcance do projeto restrito.
  • O modelo RAD é usado principalmente para aplicações de sistema de informação.
  • Cada função principal pode ser direcionada para uma equipe RAD separada e então integrada para formar o todo.

Desvantagens do Modelo RAD

  • Exige recursos humanos suficientes para todas as equipes.
  • Exige que desenvolvedores e clientes estejam comprometidos com as atividades de “ritmo acelerado” a fim de terminar o projeto num prazo curto.
  • Nem todos os tipos de aplicação são apropriadas para o RAD.
  • Deve ser possível a modularização efetiva da aplicação.
  • Se alto desempenho é uma característica e o desempenho é obtido sintonizando as interfaces dos componentes do sistema, a abordagem RAD pode não funcionar.

O Modelo Incremental

  • O modelo incremental combina elementos do modelo cascata (aplicado repetidamente) com a filosofia iterativa da prototipação.
  • O objetivo é trabalhar junto do usuário para descobrir seus requisitos, de maneira incremental, até que o produto final seja obtido.

Características e Vantagens do Modelo Incremental

  • A versão inicial é frequentemente o núcleo do produto (a parte mais importante).
  • A evolução acontece quando novas características são adicionadas à medida que são sugeridas pelo usuário.
  • Este modelo é importante quando é difícil estabelecer a priori uma especificação detalhada dos requisitos.
  • O modelo incremental é mais apropriado para sistemas pequenos.
  • As novas versões podem ser planejadas de modo que os riscos técnicos possam ser administrados (ex: disponibilidade de determinado hardware).

O Modelo Espiral

  • O modelo espiral acopla a natureza iterativa da prototipação com os aspectos controlados e sistemáticos do modelo cascata.
  • O modelo espiral é dividido em uma série de atividades de trabalho ou regiões de tarefa.
  • Existem tipicamente de 3 a 6 regiões de tarefa.

Benefícios e Características do Modelo Espiral

  • Engloba as melhores características do ciclo de vida clássico e da prototipação, adicionando um novo elemento: a análise de risco.
  • Segue a abordagem de passos sistemáticos do ciclo de vida clássico, incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real.
  • Usa a prototipação, em qualquer etapa da evolução do produto, como mecanismo de redução de riscos.

Entradas relacionadas: