Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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.
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:
Esquema
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
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.
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.
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.
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.
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:
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.
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.
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.
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.
Essa gestão do tempo, do custo e da qualidade deve ser feita através de ferramentas que
possibilitem tal acompanhamento, como por exemplo:
• 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.
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:
• 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.
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:
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;
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:
Ampliando o conhecimento!
Ampliando o conhecimento!
1.3.2 – Softwares de Gerenciamento de Projetos
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.
• 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.
O sistema conta também com todos os recursos necessários para gestão de projetos, como:
Além de ser um software livre, o software atua conforme as metodologias ágeis, em que é
possível por exemplo:
• 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.
• 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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
• Scrum
• Kanban
• Lean
• Smart
• Painel de Tarefas
• Cronogramas
• Compartilhamento de arquivos
• Comunicação
• Relatórios
• Microsoft Project
• Operand
• GanttPro
• Trello
• 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
Referências
STEPANEK, George. Software Project Secrets: Why Software Projects Fail. Editora: Apress;
Illustrated, 2005.