Você está na página 1de 20

1 Introdução à Projetos de Software

Luciano Rodrigo Ferreira

Introdução
Neste capítulo, iremos abordar os principais conceitos de Projetos de Software, de forma a
conscientizar os profissionais de tecnologia sobre a importância da prática de construção de
Projetos, desde o início da concepção de um software.

Desde o início da prática de programação, a documentação dos algoritmos criados sempre


foi objeto de estudo e discussão. Com o surgimento dos sistemas que utilizam a orientação
a objetos, as dificuldades continuaram existindo, ocasionando assim, uma grande
quantidade de notações que buscavam uma padronização, mas que, na maioria das vezes,
não se mostravam eficazes e abrangentes para todo tipo de aplicação que fosse criada.

O processo de desenvolvimento de um Projeto de Software consiste na aplicação de um


conjunto de técnicas e princípios que, de certo modo, irão definir um sistema com detalhes
suficientes para que seja realizado fisicamente.

Um projetista de software deve produzir um modelo de representação que seja completo e


que tenha reais condições de ser implementado, mediante os requisitos apresentados.

Cada metodologia, utilizada no passado, possuía seus próprios conceitos, gráficos e


terminologias, o que acabou por causar grande confusão, principalmente no caso da
orientação a objetos e na criação de modelos de qualidade que buscam evoluir e exigem
manutenção à medida que vão crescendo como aplicação.

A criação de um Projeto de Software também envolve a capacidade de abstração, que é


necessária para cada módulo que será desenvolvido dentro do sistema que se propõe
desenvolver.

A arte de projetar softwares está inserida no ciclo de vida do software por meio do processo
de desenvolvimento, pois ao desenvolver processos, tarefas, rotinas, procedimentos, várias
fases são criadas e necessitam ser documentadas, tais fases são conhecidas como
Requisitos, Projeto e Implementação.

Sendo assim, no ciclo de vida do software, a parte de projetos recebe os dados levantados
através dos requisitos para que possa ser gerado um modelo de atividade para
implementação ou codificação do sistema.

Em 1994, surgiu um método que buscava a unificação das técnicas e procedimentos


utilizados até então para criação de projetos de software, afinal, como cada metodologia
buscava uma representação diferente, tornava-se muito difícil a compreensão dos projetos
que, por ora, utilizavam gráficos e linguagens próprias de representação.

Desta forma surgiu a UML – Unified Modeling Language ou Linguagem de Modelagem


Unificada, que só em 2000, foi realmente reconhecida pelo OMG (Object Management
Group), um consórcio internacional de empresas que define e ratifica padrões na área de
Orientação a Objetos.
A UML é uma linguagem de modelagem que permite representar um sistema de forma
padronizada, facilitando a compreensão e a implementação, não é considerada uma
metodologia, pois não define passos em sequência e sim diagramas que juntamente com
notações podem trazer visões em diferentes momentos do desenvolvimento de um software.

A linguagem UML foi desenvolvida por Grady Booch, James Rumbaugh, e Ivar Jacobson,
que são conhecidos por possuírem um extenso conhecimento na área de modelagem
orientada a objetos, já que as três mais conceituadas metodologias de modelagem (Método
Booch, OMT e OOSE/Objectory) foram eles que desenvolveram. A UML trata-se de uma
junção do que havia de melhor nestas três metodologias, porém, foram incluídos novos
conceitos e visões.

Neste livro, iremos conhecer melhor os diagramas utilizados na linguagem UML e como
cada um deles pode ser utilizado em visões diferentes de cada módulo de um sistema,
facilitando a compreensão e a evolução do sistema.

Objetivos
Ao final dos estudos deste capítulo, esperamos que você seja capaz de:

• explicar a importância de um Projeto de Software;


• apresentar as necessidades de se desenvolver um Projeto antes do produto final;
• explicar as diferentes visões de cada etapa ou módulo de um sistema;
• mostrar as fases do desenvolvimento de um sistema em UML
• explicar a importância da documentação no desenvolvimento de um sistema;

Esquema

1.1 – O que é um Projeto de Software

Em um projeto, decide-se como um determinado problema será resolvido, primeiro em um


nível mais alto de abstração e posteriormente em níveis cada vez mais detalhados (Figura
1).
Figura 1 – Elaborando o projeto

Fonte: Getty Images. Acervo Uniube.

Considerando um Projeto de Software estruturado, podemos afirmar que há uma constante


comunicação, clara e efetiva em que a troca de informações é fundamental, não só entre as
pessoas que compõem a equipe de desenvolvimento, mas de todos os Stakeholders.

Atualmente, diversas tecnologias estão disponíveis para utilização em Projetos de Software


e o mercado dispõe de várias metodologias, que vão se renovando ao longo do tempo,
sendo assim, o profissional de Projetos trabalha sempre com dinamismo em suas entregas,
sempre buscando concluir fases como:

• Diagnóstico: Fase de conhecimento da existência de uma necessidade do cliente.


Geralmente, acontece em reuniões, em que se apresenta um briefing do projeto. É,
neste momento, que os envolvidos conhecerão o que realmente o cliente precisa e
quanto está disposto a investir em tempo e capital.

• Levantamento de Requisitos: Momento de definição sobre os requisitos funcionais


e não funcionais do sistema a ser desenvolvido. É importante a participação de todos
os envolvidos no projeto, desde os desenvolvedores até os usuários, para que se
possa chegar aos mínimos detalhes do produto que será desenvolvido como solução
para o cliente.

Nesta fase, cada peculiaridade sobre o sistema pode fazer diferença, telas, campos,
registros, informações importantes que irão compor o sistema que será desenvolvido.
• Avaliação de viabilidade: É, nesse momento, que se deve decidir assumir ou não a
responsabilidade de desenvolver o projeto conforme as necessidades do cliente.
Para isso, é importante considerar as duas fases anteriores, analisando por exemplo,
se já existe alguma solução para o problema, quais ferramentas de desenvolvimento
possuem potencial para utilização, se algum projeto anterior pode servir de apoio ou
até mesmo atender, em partes, o projeto atual, e ainda, quanto será necessário
investir em mão de obra e recursos tecnológicos

• Documentação: A documentação é um processo muito importante em qualquer tipo


de projeto, pois é através dela que as equipes vão se guiar durante a realização do
projeto. Talvez pelo fato de ser burocrático, muitas vezes este processo é
menosprezado ou não recebe a atenção necessária, mas o principal objetivo é que
possa servir de ferramenta para garantir a clareza dos processos e da comunicação
entre as etapas de um projeto.

Além de servir como um manual de desenvolvimento, caso aconteça alguma dúvida


durante o processo, todos poderão consultar a documentação, onde as informações
mais importantes estarão disponíveis independente da fase em que o projeto se
encontra.

A documentação é uma fase que sofre novas implementações e alterações durante


todo o processo, uma vez que todos os passos do projeto devem ser documentados
e explicados.

• Desenvolvimento: É neste momento em que se define as metodologias da gestão


do projeto, atualmente as metodologias ágeis são as mais utilizadas, pois garantem
rapidez, transparência, possibilidade de inspeção e melhor adaptação e flexibilidade
durante o desenvolvimento do projeto.

Dentre os métodos ágeis, podemos citar o SCRUM, que é adotado por várias
empresas, e é durante esta etapa que o software será codificado, escrito, criado,
desenvolvido de fato.

• Testagem: Durante a fase de testes, o código é testado internamente e todas as


situações são simuladas para que possíveis problemas sejam corrigidos antes que o
sistema seja efetivamente instalado e disponibilizado ao cliente.

O profissional que realiza os testes do sistema deve conhecer todas as suas


funcionalidades e se colocar basicamente no lugar do cliente em relação às suas
expectativas.

Caso, durante os testes, se identifique a necessidade de alterações, é imprescindível


que se faça rotineiramente cópias de segurança de cada versão do sistema e que
haja suporte para uma eventual recuperação de dados.

Atualmente, a importância dos projetos de software estão cada vez mais em evidência.
Devido às necessidades de armazenamento e segurança de dados, estes fatores são
considerados estratégicos para que uma empresa possa ser reconhecida como confiável.

Mas é preciso considerar que antes de qualquer decisão que envolva estratégias de
desenvolvimento de software é necessário compreender os reais objetivos da empresa com
a nova solução.

Para isso, a gestão de projetos de software se apoia em três pilares básicos:


• Foco no cliente;
• Equipe produtiva e colaborativa;
• Administração de recursos (tempo, pessoas e finanças);

É necessário também considerar que a fundamentação do software deve ser flexível,


possibilitando plataformas diferentes, então, deve-se considerar a adoção de
desenvolvimento orientado conforme a arquitetura, para que as funcionalidades e restrições
possam ser tratadas.

1.2 – Arquitetura de Software

A arquitetura de software diz respeito à organização das partes de um sistema de forma


estrutural, principalmente, em relação às funções que cada uma dessas partes
desempenha.

Ao escolher uma arquitetura, aspectos como a performance, qualidade, condições de


manutenção e escalabilidade devem ser considerados, pois, tais aspectos e as decisões
tomadas referente a eles, vão gerar um grande impacto no sucesso ou fracasso de um
projeto, principalmente em projetos de longo prazo.

Atualmente, diversos padrões são utilizados para desenvolver projetos de software e, na


maioria das vezes, os projetos acabam envolvendo uma variedade de estilos ou arquiteturas
diferentes, que são obtidas entre as combinações desses mesmos padrões.

Durante o desenvolvimento de um software, a sua complexidade e o seu tamanho sofrem


constantes mudanças, até mesmo isso deve estar previsto no projeto, além de considerar
questões que envolvam protocolos de comunicação, atribuições de funcionalidades de cada
parte da estrutura de controle.

Os melhores exemplos são os sistemas desenvolvidos para web, em que são necessárias
diversas camadas para distinguir um leque de possibilidades e componentes, além de
possíveis estruturas intermediárias que possam existir, como por exemplo, a necessidade
de um plug-in para executar determinada aplicação em um “browser”.

Ao se desenvolver uma aplicação para Internet, o profissional deve estar atento para um
código bem estruturado e organizado, que seja de fácil compreensão, a criação e utilização
de interfaces bem definidas com componentes e funcionalidades já consolidados e testados,
que permitam a reutilização do código e a melhoria do software, bem como a sua
assistência, já prevendo futuras intervenções.
1.2.1 – Benefícios da Arquitetura de Software

A concepção de um software pode ser admitida considerando que ele será dividido em
partes, assim como todo tipo de sistema, que une várias partes ou componentes com intuito
de completar um objeto maior. Dessa forma, as partes oferecem suas funcionalidades para
completar um conjunto de recursos do sistema, assim como ocorre no sistema nervoso, no
sistema digestório do corpo humano, no sistema solar, no sistema governamental, entre
outros.

Considerando as questões computacionais, os sistemas modernos costumam ser grandes e


complexos; uma arquitetura de software bem projetada pode deixar claro como um sistema
funciona, dividindo suas partes e reduzindo assim a sua complexidade.

Quando uma estrutura é bem definida e conhecemos bem a arquitetura utilizada na


construção de um sistema, podemos visualizar melhor as pessoas que poderão interagir,
colaborar ou desenvolver a evolução do sistema. Assim, encontrar o profissional correto
para uma equipe de desenvolvimento fica mais fácil quando conhecemos a arquitetura do
software em questão.

A arquitetura de software vai além das questões técnicas, ela permite uma visão futurista em
relação do software ou sistema, possibilitando considerar investimentos, custos, restrições,
agendas, riscos e a habilidade da equipe em entrega do produto.

Um princípio muito importante e que se destaca como um grande benefício na utilização da


arquitetura de software em um projeto, é o fato de que os possíveis erros, os mais caros e
mais catastróficos que poderiam acontecer, podem ser evitados, diante de um planejamento
e um projeto de arquitetura bem-feito. Além disso, quando essa arquitetura proporciona
facilidade para suportar mudanças, acaba gerando mais agilidade nos processos de
correção.

Diante de todas essas considerações, podemos destacar alguns pontos mais específicos
que beneficiam diretamente a construção de um sistema por meio de um projeto de software
que contemple uma arquitetura adequada. São eles:

• Performance: Softwares que não são estruturados podem causar grandes


problemas de desempenho, principalmente quando envolvem áreas que
imprevisivelmente podem necessitar de mais capacidade, seja de processamento,
seja de armazenamento ou qualquer outro tipo de recurso que não foi projetado,
pode, inclusive, demandar muito mais trabalho em relação à manutenção, o que
poderá causar atrasos nas tarefas da empresa.

Portanto, é imprescindível contar com uma arquitetura bem definida, pois ela
permitirá que as tarefas sejam realizadas de forma prática e ágil, possibilitando a
expansão do sistema e do volume de dados envolvidos.

• Escalabilidade: É uma preocupação constante das instituições. A escalabilidade


está ligada diretamente ao crescimento das empresas, por este motivo, é um fator
importantíssimo no projeto de um software, principalmente devido à grande
dependência dos recursos digitais existentes no mercado atualmente.

A escalabilidade deve ser prevista para que aconteça de forma rápida, para facilitar
processos e evitar atrasos e possíveis “bugs” após a implementação.

• Flexibilidade: é a capacidade de se adaptar. Esse é um desafio que deve estar


presente desde o início de um projeto de software, pois, devido à evolução dos
sistemas e a constante mudança de tecnologias mais modernas, em muitos
momentos as empresas se deparam com momentos de mudança, migração ou
atualização de sistemas.

Neste momento, é necessário que o projeto tenha passado por uma arquitetura que
permita ao software se adaptar conforme às necessidades da empresa e evolução
tecnológica do mercado.

• Redução de riscos: O maior motivo que nos leva a criar projetos é a possibilidade
de evitar erros, gerando insatisfação, dificuldades de manutenção, altos custos e
insegurança em relação aos dados, portanto, uma das principais vantagens da
utilização de uma arquitetura de software adequada é redução de todo tipo de risco
possível.

A implementação da arquitetura de software nos permite compreender melhor os


fundamentos do software e quais suas funcionalidades, além de manter o foco no
domínio do aplicativo, pois, esse é o real valor que uma empresa de tecnologia pode
entregar aos seus clientes, a importância da arquitetura de software consiste em
permitir uma criação de sistemas preditivos e organizados logicamente.

1.3 – Por que fazer um projeto de Software?

A implementação de um projeto de software, nos processos de uma organização


empresarial, proporciona inúmeras vantagens. Com certeza, um dos maiores destaques
estão os ganhos com relação ao tempo, e como dizem por aí: “tempo é dinheiro!”.

Por isso, a gestão de um projeto de software busca organizar o processo de


desenvolvimento deste software, e tem relação direta com o tempo, custo e escopo do
projeto, possibilitando ainda:

• Prever o orçamento e mantê-lo;


• Contratar o número correto de colaboradores;
• Estabelecer prazos e trabalhar para cumpri-los;
• Determinar cada etapa do desenvolvimento.

Para tornar estes pontos realidade é imprescindível o uso de metodologias ágeis e a


utilização de softwares de gestão, ferramentas que, em conjunto, vão possibilitar uma visão
geral do processo e permitirão corrigir etapas, acrescentar novos módulos ou então reduzi-
los.
Importante!

O arquiteto de softwares é o responsável direto em analisar os impactos das suas


decisões de projetos, e então, estabelecer um compromisso entre requisitos de
qualidade, não menosprezando as necessidades dos usuários e suas expectativas,
bem como, o software e os objetivos do negócio.

Segundo Guia PMBOK (2017, p. 4), produzido pelo Project Management Institute, “projeto é
um esforço temporário empreendido para criar um produto, serviço ou resultado único”.
Desta forma, podemos dizer que um projeto de software é uma tarefa específica que possui
começo, meio e fim, ou seja, não se trata de uma atividade ou rotina fixa dentro de uma
empresa.

1.3.1 – Metodologias Ágeis

O gerenciamento de um projeto de software envolve a capacidade de administrar alguns


limites como: tempo, custos e qualidade.

Essa gestão do tempo, do custo e da qualidade deve ser feita através de ferramentas que
possibilitem tal acompanhamento, como por exemplo:

• Scrum: É uma ferramenta de gerenciamento de projetos, que divide os períodos de


trabalho com tempo limitado para o ciclo de desenvolvimento, os chamados “sprints”,
que geralmente duram uma semana.

Os gerentes de projeto são responsáveis pelo planejamento de quais iniciativas


serão executadas nas sprints. Reuniões diárias, também conhecidas como daily, são
realizadas para checar com a equipe o andamento do projeto.

• Kanban: Não existe um prazo definido para conclusão de cada item, mas, é
considerada a prioridade de cada item, para que haja organização e sequência de
execução, geralmente é utilizado um quadro Kanban.

Neste quadro, organizado em colunas, os gerentes informam o “status” de cada item


a ser trabalhado, inclusive são consideradas as tarefas pendentes, que estão em
andamento ou que já foram encerradas.

Podemos resumir o Kanban como um método para gerenciar a criação de produtos,


com a visão de entrega contínua, sem sobrecarregar as equipes de
desenvolvimento. Ele deve ser um aprimoramento dos processos organizacionais
existentes para melhoria contínua, sem alterar totalmente os sistemas existentes da
organização.

Ele é composto por checklists, sendo considerado umas das metodologias ágeis que
estão em ascensão no momento, justamente, pelo poder de adaptação para
qualquer tipo de negócio. Sua representação acontece através de um quadro
dividido da seguinte forma:

a) To Do – Atividades que precisam ser realizadas;


b) Doing – Atividades que estão sendo realizadas no momento;
c) Done – Atividades já finalizadas, avaliadas e aprovadas.

O Kanban mantém um ritmo de produção que evita gargalos e atrasos nos


processos.

• Lean: Utilizado por muitas startups, é indicado para projetos menores e bem
objetivos, e busca identificar e eliminar os desperdícios dentro da organização ou
durante a realização de algum projeto.

O foco é sempre a redução de custos e a redução da complexidade das tarefas. O


resultado, consequentemente, é o aumento da produtividade, por meio de um
melhoramento das entregas, e, também, um melhor compartilhamento de
informações do sistema.

Geralmente, o método Lean é indicado para o processo de validação de ideias e


hipóteses, obedecendo três passos básicos, que são:

Dentre várias ferramentas podemos citar também a metodologia Smart, que tem como
características trabalhar com metas menores para que os objetivos sejam mais facilmente
alcançados. Vejamos as características da metodologia Smart:

• Smart: A metodologia Smart é uma excelente alternativa para projetos que


necessitam de objetos realistas, é baseada em cinco princípios cujas iniciais formam
seu nome, observe:

S – Specific, determina que a sua meta deve ser bem específica e deve atingir um
onto de cada vez, com o objetivo de diminuir riscos de interpretações equivocadas;

M – Measurable, significa que a meta deve ser mensurável, buscando números


exatos que possam comprovar a eficiência do processo;

A – Attainable, representa o desafio, as metas devem desafiar o time e ao mesmo


tempo permitir que sejam alcançáveis.

R – Relevant, diz respeito ao grau de importância ou, relevância de uma meta a ser
alcançada, se uma meta é bastante relevante a equipe envolvida ficará ainda mais
motivada em realiza-la.

T – Time Based, Toda e qualquer meta deve ser concebida mediante um prazo para
sua realização, caso contrário se não será possível definir números e alcançar os
objetivos.
Considerando ainda as metodologias ativas, é necessário levar em conta alguns pontos
relevantes para que se possa atingir melhores resultados. Como exemplo, temos a criação
de uma periodicidade e a avaliação delas, pois, mudanças de planos fazem parte do
caminho até o sucesso e quanto mais rápido uma mudança, considerada necessária, possa
ser identificada, melhor será para todo o projeto. Recomenda-se:

• 1 – Sempre monitorar o desempenho das ações


• 2 – Manter todo o time comprometido e envolvido com o projeto
• 3 – Buscar apresentar os resultados e valorizar o trabalho realizado

É comum o debate dentro da engenharia de software sobre a necessidade de


documentação de um sistema. Tal fato é proveniente do real objetivo de um software, que
tem como função atender as necessidades do usuário, diante desta visão, a documentação
não agrega valor ao usuário final, pois, para ele, não interessa os detalhes internos de como
um software foi concebido, apenas a maneira de utilizá-lo e se ele lhe é útil.

Ampliando o conhecimento!

O sucesso de um projeto de software está ligado diretamente à sua capacidade de


atendimento às necessidades do usuário. O sucesso de uma empresa de software é
dependente da sua capacidade de produção do produto de software, em um prazo e
custos eficazes.
Segundo Pressman (2016), o software pode ser definido como:
• Instruções que, quando executadas, proveem pretendidas funções e
performance;
• Estrutura de dados que permitem aos programas manipular adequadamente as
informações;
• Informações descritivas em meios virtuais ou físicos que explanam a operação
e o uso dos programas.

Em todo projeto de software, o objetivo final é a satisfação do cliente relacionada ao


resultado que o sistema criado pode lhe oferecer. Associada à essa satisfação, é
possível acrescentar processos, técnicas e métodos que o cliente não utilizava e, a
partir da implementação do software, foram a ele apresentados. Por isso, é
importante, além de solucionar o que o cliente espera, surpreendê-lo com melhorias,
pois desperta a sua confiança para com quem desenvolve o software.

Ampliando o conhecimento!
1.3.2 – Softwares de Gerenciamento de Projetos

Atualmente, a tecnologia tem colaborado com o gerenciamento de projetos por meio de


softwares específicos para gestão, pois, controles manuais, planilhas, anotações, desenhos,
organogramas e diagramas se tornam lentos e demorados. Faz-se necessário o uso de
softwares que possam colaborar não só de forma gráfica, mas na gerência de situações,
proporcionando maiores assertivas nas tomadas de decisão.

Várias ferramentas são capazes de proporcionar uma visão geral e completa de um projeto.
Com apenas um clique, funções que abrangem desde o controle orçamentário até os prazos
de produção e entrega são cada vez mais comuns ente as empresas.

Um bom software de gerenciamento de projetos deve contemplar algumas funcionalidades


fundamentais para o bom desenvolvimento dos trabalhos, dentre as quais podemos citar:

• Painel de Tarefas: O software deve possuir um ambiente em que seja possível os


colaboradores administrarem as tarefas que estão em execução e as mesmas
possam ser visualizadas pela equipe.

• Cronogramas: A ferramenta deve permitir o uso de calendários e gráficos de


Gantt, pois assim será possível visualizar a tarefa dentro de um projeto como um
todo, inclusive com os prazos a serem cumpridos.

• Compartilhamento de arquivos: Dentre os principais recursos da atualidade, o


compartilhamento de arquivos já é considerado imprescindível quando o assunto é a
criação de projetos, pois, compartilhando é possível economizar tempo em busca de
informações importantes para todos envolvidos no projeto.

• Comunicação: Um bom software de gestão de projetos deve contemplar um


ambiente que seja possível a comunicação entre os profissionais que atuam
diretamente no projeto, afinal, estar alinhado com a equipe facilita a busca por
soluções rápidas diante dos problemas que, porventura, possam surgir.

• Relatórios: Sem a opção de relatórios, é praticamente impossível tomar decisões.


Normalmente, é baseando-se nos relatórios do sistema que o acompanhamento dos
custos, prazos e etc. se torna possível. Com acesso aos relatórios, um gestor pode
agir, de forma mais assertiva, quando perceber que um projeto não está progredindo
como esperado e verificar se todas as tarefas estão sendo executadas em tempo
hábil.

É possível encontrar no mercado diversos sistemas de gestão de projetos e considerando


as funcionalidades elencadas, podemos citar alguns softwares de gerenciamento de
projetos mais conhecidos:

• Microsoft Project: Desenvolvido pela Microsoft, foi lançado em 1985, o que o torna
uma das ferramentas mais antigas do mercado. Interativo, prático e, de certa forma
muito completo em relação aos recursos de gestão de projetos, tem um visual
aproximado com o Excel o que facilita um pouco o uso de quem já tem familiaridade
com planilhas.
O Microsoft Project, utiliza vários tipos de gráficos, dentre eles o de Gantt, que permite
organizar o cronograma do projeto e atribuir tarefas para cada colaborador envolvido, além
de gerar diversos tipos de relatórios de apoio à decisão, como custos, materiais etc.

• Operand: O Software foi desenvolvido com o objetivo de atender equipes criativas,


possui diversas funcionalidades utilizadas na gestão de projetos, tarefas e equipes de
agências de publicidade e Marketing Digital, o sistema ainda permite:

• Otimizar a produtividade ao gerenciar as atividades da sua equipe;


• Melhorar a qualidade das suas entregas;
• Manter o fluxo de processos organizado e visível para o time;
• Hospedar arquivos de diferentes formatos;
• Centralizar a comunicação em uma única plataforma;
• Acompanhar as entregas dos jobs no feed;
• Ter acesso a uma visão 360° dos projetos no dashboard.

O sistema conta também com todos os recursos necessários para gestão de projetos, como:

• Criação de job e tarefas com prazos e responsáveis;


• Apontamento de horas no timesheet;
• Acompanhamento dos projetos em tempo real.
• Várias pautas para o gestor acompanhar o desenvolvimento da tarefa.
• Medir a produtividade da equipe.
• Medir taxa de rentabilidade e o retrabalho.
• Analisar o fluxo de caixa da agência.

• GanttPro: Software baseado em gráficos de Gantt. Ele funciona de forma online e


permite gerenciar projetos com visualização de processos, criação e atribuição de
tarefas para os membros de uma equipe em que permite, também, a criação de prazos
e o acompanhamento das atividades concluídas conforme cronograma pré-
estabelecido.

Umas das vantagens é o compartilhamento de gráficos de Gantt, criados pela equipe e


pelos clientes com permissões de edição e visualização.

Além de ser um software livre, o software atua conforme as metodologias ágeis, em que é
possível por exemplo:

• Agendar tarefas com prioridades;


• Distribuir tarefas entre os membros de uma equipe;
• Analisar trajetórias críticas para acelerar o projeto e as entregas;
• Rastrear o progresso atual para saber o estágio de implementação de um
projeto.

• Trello: Foi construído baseado nos princípios de gestão Kanban japonês, oferece
recursos de monitoramento consistente de todas as fases de produção.

O Trello é muito recomendado para projetos em estilo padrão, em que se torna conveniente
as premissas e comandos de atribuições individuais.
Composta por diferentes placas, a interface representa projetos ou processos na empresa,
em que há listas de tarefas, cartões com descrições, comentários, arquivos, etiquetas de
cores e prazos.

O software Trello possui ainda uma versão gratuita, com algumas restrições, mas, caso haja
necessidade uma empresa pode pagar para ter acesso a todos os recursos que inclui
também upload de grandes arquivos.

Importante!

São vários os softwares disponíveis para gestão de projetos, muitos gratuitos e muitos
outros com custo de licenças. É necessário testar e encontrar aquele cujas
características são melhores e de fácil implementação para os seus projetos. O fato é
que não há como acompanhar projetos de forma eficiente, sem uma ferramenta
tecnológica como um software desse tipo.

1.4 – Implementação de um Software de Gerenciamento de Projetos?

Não só os softwares desenvolvidos por empresas especializadas possuem problemas de


implementação, muitas vezes, até mesmo os softwares de gerenciamento de projetos de
outros softwares também dão trabalho ao serem implementados. Faz parte da área de T.I.
inúmeras situações que podem comprometer a implementação de um software e não seria
diferente com os softwares de produção e gerenciamento de projetos.

Considerando os principais obstáculos que podem surgir na implementação de um software


de gerenciamento de projetos podemos citar:

• Falta de planejamento.
• Treinamento malfeito com os usuários.
• Subestimar a contratação de uma consultoria.
• Falta de interesse do usuário em utilizar o software.
• Falta de capacitação em gerência de projetos.
• Funcionalidades que não condizem com a necessidade da empresa.
• O software não está entre os melhores do mercado.

1.4.1 Falta de planejamento

O planejamento não deve incluir somente as questões técnicas. Elas são importantes, mas
é preciso também avaliar o cenário como todo, a introdução de ferramentas tecnológicas em
uma grande empresa envolve, por exemplo, questões financeiras, questões de segurança e
planos para superar as dificuldades que, porventura, surgirão.

Para evitar eventuais problemas de planejamento, é recomendável que se faça reuniões


com todos os envolvidos no projeto e que cada passo seja documentado, para que as
responsabilidades de cada um dos envolvidos sejam esclarecidas e os objetivos sejam
alcançados dentro do tempo estipulado pelo projeto.

1.4.2 Treinamento malfeito com os usuários

Toda mudança ou implementação nova de uma ferramenta tecnológica apresenta


funcionalidades complexas e muitas delas são novidades para a equipe que irá utilizar o
software. Caso não haja um bom treinamento, algum recurso pode ser utilizado de forma
errada ou ainda pior, não ser utilizado por falta de conhecimento do usuário.

O ideal é que existam treinamentos periódicos, a fim de capacitar novos funcionários e


atualizar os que já conhecem o sistema, mas não de alguma funcionalidade que porventura
tenha sido implementada recentemente.

Atualmente, com os diversos recursos de vídeos na Internet, as empresas têm feito uso
dessas tecnologias para treinar seus usuários através de vídeo aulas, do tipo passo a
passo, sobre os mais variados assuntos, mas o treinamento também pode ser realizado por
uma empresa de consultoria especializada para ajudar tanto em um processo de
implementação, quanto no treinamento de novos recursos.

1.4.3 Subestimar a contratação de uma consultoria

Considerando o tamanho de uma grande empresa, a contratação de uma consultoria muitas


vezes é o mais indicado, empresas muito grandes envolvem muitas pessoas, processos e
projetos. Tudo deve estar afinado com o tempo de resposta de cada equipe, a solução é o
treinamento por parte de pessoas especializadas, no caso, dos consultores.

A tarefa de um consultor é fazer com que os gestores vençam os obstáculos que uma
implementação de software pode vir a encontrar. Eles demonstram caminhos mais práticos
e mais rápidos em soluções que poderiam levar dias, além de colaborar no processo de
treinamento, ensinando os usuários a utilizar determinado software de maneira mais
proveitosa e inteligente.

1.4.4 Falta de interesse do usuário ao utilizar o software

As diversas reuniões, o levantamento de requisitos, a escolha de um software para


gerenciar os projetos, todas essas etapas devem ser tomadas de decisões em conjunto com
os envolvidos com a área de projetos. Afinal, de que vale tanto esforço para implementar
uma solução de gestão, se a equipe relutar em utilizá-la?

Deve-se preservar a premissa de que a comunicação e a organização dos projetos são


prioridades e isso pode falhar, caso a equipe não esteja realmente convencida da
necessidade do software de gestão e seus benefícios.

Não basta simplesmente implementar o software e forçar sua utilização, é necessário


explicar o porquê de cada etapa da implementação e convencer a equipe de que é
primordial a sua utilização. Para isso, talvez o ideal seja a implementação em fases, o que
diminui os traumas do processo e a rejeição das mudanças.
1.4.5 Falta capacitação em gerência de projetos:

Um bom software de gerenciamento de projetos, por si só, não resolve os problemas e não
conclui etapas de um projeto sozinho. Para que a gestão ocorra de forma eficiente, é
necessário que a gerência de projetos e a equipe de projetos sejam capacitadas e estejam
afiadas em relação às potencialidades e funcionalidades do sistema.

Uma equipe pode até estar afiada com as novas tecnologias, mas para comandá-la é
preciso alguém que tenha algo mais a oferecer. Então, busque um gerente de projetos que
tem algo a colaborar com a equipe, que tenha o controle da situação e que conheça
plenamente o problema e o software sugerido com solução. Assim, todos vão respeitar o
gerente e confiar no trabalho proposto por ele ao invés de procurar problemas sem apontar
soluções.

1.4.6 Funcionalidades que não condizem com a necessidade da empresa

Muitos softwares são desenvolvidos, baseados em requisitos de empresas de um mesmo


seguimento. É comum que um software, já implementado em uma empresa, sirva de
exemplo para outra, mas a verdade é que cada organização tem os seus métodos e, muitas
vezes, um software que atende uma empresa, pode não atender de forma satisfatória uma
outra empresa, mesmo as duas fazendo parte do mesmo seguimento.

Sendo assim, é comum encontrar funcionalidades desenvolvidas para atender às


necessidades de um cliente, mas que para outro não faz o menor sentido. O risco nesse
caso é que o software caia em desuso por não corresponder às expectativas do cliente, não
sendo aderente aos procedimentos realizados na empresa e até mesmo devido à
complexidade que pode existir.

Uma possível solução para este tipo de problema é realizar uma vasta pesquisa, buscando
softwares que melhor se encaixam à realidade dos processos da empresa. No caso de
grandes empresas, muitas buscam desenvolver o seu próprio software, mas isso custa caro
e nem toda empresa pode se dar o luxo de ter algo personalizado. Então, o melhor é assistir
apresentações, visitar empresas que já utilizam o software e realizar testes antes de partir
para o processo de implantação definitiva de uma solução de gestão.

1.4.7 O software não está entre os melhores do mercado

Durante a implementação ou até mesmo ao longo do tempo de utilização de um software,


problemas podem acontecer, e geralmente o primeiro ponto é acusar o software de alguma
falha ou restrição. Diante da incompreensão dos usuários de como um determinado
processo funciona, muitas vezes esses acabam em acusação ao software, sem razão. É
fato que realmente problemas com o software podem acontecer, por isso é tão importante
fazer a escolha certa com ferramentas de excelência que permitam, até mesmo em
momentos críticos, a transição e a reestruturação de forma a contornar um problema não
previsto antes.

Atualmente, as metodologias ágeis estão em alta e os softwares que seguem esses padrões
têm se despontado no mercado em relação aos demais. É necessário que visualmente o
software seja agradável e de fácil interação o que não desobriga a eficiência em gerir
projetos.
Muitas das soluções de mercado em relação aos softwares de gestão de projetos oferecem
recursos em painéis que permitem um melhor acompanhamento dos processos,
colaborando assim, com a tomada de decisão.

1.5 – Por que projetos de Software falham?

O gerenciamento de projetos é questão de sobrevivência diante da concorrência.


Obviamente, se você cria projetos e não utiliza alguma ferramenta que permita realizar suas
análises com rapidez e eficiência, um concorrente seu estará sempre à sua frente. Por isso,
as questões tecnológicas são importantes, pois além da precisão, a previsibilidade e a
agilidade farão o diferencial no seu dia a dia.

O fracasso pode estar ligado não só à capacidade de realização do projeto, mas também,
ao tempo em que se leva para atingir cada objetivo ou tarefa; a demora pode ocasionar
perdas, prejuízos e consequentemente inviabilizar o projeto.

Segundo Fergus O’Connel, na obra How to Run Successful High-Tech Project-Based


Organizations (ARTECH HOUSE, 1999), podemos considerar alguns aspectos mais
relevantes que são apontados como os principais motivos que podem levar um projeto ao
fracasso. São eles:

1. Os objetivos do projeto não são bem definidos e/ou os envolvidos não são
identificados;
2. Os objetivos do projeto são definidos de forma apropriada, mas as mudanças não
são controladas de forma apropriada;
3. O projeto não é planejado de forma apropriada;
4. O projeto não é gerenciado de forma apropriada;
5. O projeto é planejado de forma apropriada, porém seus recursos não são
gerenciados;
6. Não são criados planos de contingência;
7. As expectativas dos envolvidos com relação ao projeto não são gerenciadas;
8. O projeto é planejado de forma apropriada, mas seu progresso não é monitorado e
controlado;
9. Relatórios de progresso são inadequados ou inexistentes;
10. Quando ocorre problema no projeto, as pessoas acreditam que os mesmos podem
ser resolvidos de forma simples.

De acordo com (STEPANEK, 2005), um projeto só pode ser considerado de sucesso,


quando atinge satisfatoriamente seus objetivos, dentro do tempo e do orçamento que foi
planejado, logicamente, algumas alterações mínimas acabam sendo inevitáveis.

Nem sempre o sucesso está garantido e em muitos casos, como no relatório CHAOS
(2004), também conhecido como “Relatório do CAOS” apresentado pelo Standish Group, foi
demonstrado um desperdício de aproximadamente 55 bilhões de dólares, pois apenas 28%
dos projetos de software conseguiram chegar até o final com sucesso.

Em 2003, Stepanek apresentou 12 motivos que tornam a produção de software diferente do


que se pratica em outras áreas da indústria, veja quais são eles:

1. Complexidade: Projetos de software são normalmente mais complexos de que


projetos em outras áreas da indústria;
2. Software é Abstrato: Um software não pode ser tocado ou manipulado ou
observado da mesma forma que outro produto qualquer;
3. Requisitos incompletos: Levantar requisitos para construir um software é uma
tarefa difícil;
4. Tecnologia muda rapidamente: Em nenhuma outra indústria ocorre uma evolução
tão rápida quanto na indústria do software e da Tecnologia da Informação em geral;
5. Melhores práticas não estão maduras: Muito tem se feito no sentido de melhorar
os processos e práticas de software, mas assim como o próprio software, estas
práticas são relativamente novas e ainda imaturas;
6. Tecnologia é um domínio muito vasto: As tecnologias, envolvidas em todo o ciclo
de vida do software, são muitas e muito vastas, além do que uma única pessoa
possa dominar;
7. A experiência em tecnologia é incompleta. A experiência que um profissional
adquire no desenvolvimento de software se torna defasada rapidamente. A maioria
do conhecimento é adquirida no trabalho;
8. Desenvolver softwares vai além do simples ato de desenvolver: exige pesquisa,
é um processo de aprendizado;
9. Trabalho repetitivo é automatizado: A produção de software, de uma maneira
geral, é um processo mais automatizado do que em outras indústrias;
10. Construção de software significa design. Software não é construído, mas sim
desenhado;
11. Mudanças são consideradas fáceis. Software pode ser modificado rapidamente;
12. Mudanças são inevitáveis. Nenhum software é perfeitamente planejado no início,
sempre vai haver mudanças necessárias.

Os motivos apresentados não são exclusivamente os únicos a criarem problemas durante o


processo de desenvolvimento de um software. Obviamente, existem diversos motivos que
podem levar um projeto ao fracasso, mas esses motivos caracterizam um diferencial entre
os projetos convencionais adotados, em outras situações, dentro das empresas.

O objetivo diante dessas afirmações é provar que, para a indústria de software, é necessário
mão de obra especializada e técnicas apropriadas de gerência de projetos,
independentemente da área ou tamanho do software a ser desenvolvido.

Saiba mais!

Para saber mais acerca da temática abordada neste capítulo, sugerimos a leitura dos
capítulos relacionados, a seguir, da referência:

PRESSMAN, Roger S.; MAXIM, Bruce R. Engenharia de Software: Uma abordagem


profissional. Porto Alegre: AMGH Editora, 2016

Capítulo 1. A natureza do Software


Capítulo 3. Gestão de Qualidade
Capítulo 4. Gerenciamento de Projetos de Software

Você pode encontrar o livro na biblioteca Pearson, no AVA!


Resumo
Como vimos, sempre que um projeto é iniciado um dos fatores mais importantes é
determinar quem serão os envolvidos no projeto, pois, para que haja sucesso, o ponto
principal é a comunicação entre tais envolvidos.

Um projeto de software só pode ser considerado estruturado quando existe clareza entre os
processos e as pessoas envolvidas. A importância dos projetos de software está cada vez
mais em evidência, devido às necessidades de armazenamento e segurança de dados.
Estes fatores são considerados estratégicos para que uma empresa possa ser reconhecida
como confiável.

Antes de qualquer estratégia de desenvolvimento de software, deve-se estar atendo aos


reais objetivos da empresa diante de uma nova solução de tecnologia, um novo software de
gestão por exemplo.

Para isso, como vimos, a gestão de projetos de software se apoia em três pilares básicos:

• Foco no cliente;
• Equipe produtiva e colaborativa;
• Administração de recursos (tempo, pessoas e finanças).

Em projetos de longo prazo é ainda mais delicado escolher entre uma arquitetura ideal, pois,
caso algo saia errado terá envolvido um longo período e o prejuízo poderá ser ainda maior.
Mas ao considerarmos a qualidade de software, a sua performance, as facilidades em
manutenção e a escalabilidade, as tomadas de decisão ficaram ainda mais assertivas.

Não só de questões técnicas devem partir as decisões em relação a escolha de um software


de gestão de projetos. Elas devem ter uma visão futurista que envolva crescimento,
investimentos e restrições.

Como abordamos no capítulo, podemos destacar alguns pontos mais específicos que
beneficiam diretamente a construção de um sistema através de um projeto de software que
contemple uma arquitetura adequada, são eles:

• Performance
• Escalabilidade
• Flexibilidade
• Redução de Riscos

A gestão de um projeto de software busca organizar o processo de desenvolvimento deste


software, e tem relação direta com o tempo, custo e escopo do projeto, possibilitando ainda:

• Prever o orçamento e mantê-lo;


• Contratar o número correto de colaboradores;
• Estabelecer prazos e trabalhar para cumpri-los;
• Determinar cada etapa do desenvolvimento.

O gerenciamento de um projeto de software envolve a capacidade de administrar alguns


limites como: tempo, custos e qualidade, sendo que essa gestão deve ser feita através de
ferramentas que possibilitem tal acompanhamento, como por exemplo:

• Scrum
• Kanban
• Lean
• Smart

As ferramentas tecnológicas mais atuais permitem o gerenciamento de projetos com


softwares robustos e especialistas em tratar planilhas, desenhos, organogramas e
diagramas de forma rápida e prática, facilitando a tomada de decisão.

Um bom software de gerenciamento de projetos deve contemplar algumas funcionalidades


fundamentais para o bom desenvolvimento dos trabalhos, dentre as quais podemos citar:

• Painel de Tarefas
• Cronogramas
• Compartilhamento de arquivos
• Comunicação
• Relatórios

O mercado disponibiliza vários sistemas de gestão de projetos, considerando as


funcionalidades elencadas; podemos citar alguns softwares de gerenciamento de projetos
mais conhecidos:

• Microsoft Project
• Operand
• GanttPro
• Trello

Considerando os principais obstáculos que podem surgir na implementação de um software


de gerenciamento de projetos podemos citar:

• Falta de planejamento
• Treinamento malfeito com os usuários
• Subestimar a contratação de uma consultoria
• Falta de interesse do usuário em utilizar o software
• Falta de capacitação em gerência de projetos
• Funcionalidades que não condizem com a necessidade da empresa
• O software não está entre os melhores do mercado

Seguindo a premissa de que tempo é dinheiro, muitos projetos acabam caindo em


descontinuidade ou fracassam devido a demora de implementação e falta de objetivo,
causando prejuízos enormes.

Referências

ARTECH House. Disponível em: https://us.artechhouse.com/. Acesso em: 1 jan. 1999.

MAGELA, Rogério. Engenharia de Software Aplicada - Fundamentos. Rio de Janeiro:


Editora Alta Books Ltda. 2006.

INSTITUTE, Project Management. GUIA PMBOK. 6ª edição. Pensilvânia EUA. 2017

PRESSMAN, Roger S. MAXIM, Bruce R. Engenharia de Software: Uma abordagem


profissional. Porto Alegre: AMGH Editora Ltda. 2016.
GAMMA, Erich. Helm, Richard. JOHNSON, Ralph. Vlissides, John. Padrões de Projetos:
Soluções reutilizáveis de software orientado a objetos. Porto Alegre: Artmed Editoras S. A.
2007.

O’CONNEL, Fergus. How to Run Sucessfull High-Tech Project-Based Organizations.


Editora: Artech House Publishers, 1999

STEPANEK, George. Software Project Secrets: Why Software Projects Fail. Editora: Apress;
Illustrated, 2005.

Você também pode gostar