Escolar Documentos
Profissional Documentos
Cultura Documentos
de Projetos e
Gerência de
Configuração
Indaial – 2023
1a Edição
Elaboração:
Profª. Semíramis Ribeiro de Assis
286p.
ISBN 978-65-5646-564-7
ISBN Digital 978-65-5646-565-4
“Graduação - EaD”.
1. TI 2. Projetos 3. Gerência
CDD 658.404
Bibliotecário: João Vivaldo de Souza CRB- 9-1679
Impresso por:
APRESENTAÇÃO
Projetos estão presentes em diversos momentos do cotidiano, como, por
exemplo, a construção de um prédio, a preparação para a realização de um curso ou
para a construção de um produto de Tecnologia da Informação (TI).
Morais e Zanin (2017), por outro lado, definem projeto como um estágio
intermediário entre o ramo do negócio que será explorado e a tecnologia que será
utilizada para construção de uma aplicação, que atenda às necessidades dos clientes
de forma a garantir qualidade (através da solidez), eficácia (o programa deverá atender
às expectativas para as suas funcionalidades) e possuir uma boa interface de utilização,
de modo a garantir uma boa experiência pelo usuário.
QR CODE
Olá, acadêmico! Para melhorar a qualidade dos materiais ofertados a você – e
dinamizar, ainda mais, os seus estudos –, nós disponibilizamos uma diversidade de QR Codes
completamente gratuitos e que nunca expiram. O QR Code é um código que permite que você
acesse um conteúdo interativo relacionado ao tema que você está estudando. Para utilizar
essa ferramenta, acesse as lojas de aplicativos e baixe um leitor de QR Code. Depois, é só
aproveitar essa facilidade para aprimorar os seus estudos.
ENADE
Acadêmico, você sabe o que é o ENADE? O Enade é um
dos meios avaliativos dos cursos superiores no sistema federal de
educação superior. Todos os estudantes estão habilitados a participar
do ENADE (ingressantes e concluintes das áreas e cursos a serem
avaliados). Diante disso, preparamos um conteúdo simples e objetivo
para complementar a sua compreensão acerca do ENADE. Confira,
acessando o QR Code a seguir. Boa leitura!
LEMBRETE
Olá, acadêmico! Iniciamos agora mais uma
disciplina e com ela um novo conhecimento.
TÓPICO 3 - AUDITORIA........................................................................................................ 53
1 INTRODUÇÃO .................................................................................................................... 53
2 CONCEITOS E PRINCÍPIOS BÁSICOS DE AUDITORIA .................................................... 53
2.1 PRINCÍPIOS DA AUDITORIA ...............................................................................................................56
2.2 DEFINIÇÃO DE ESCOPO ....................................................................................................................58
2.3 TIPOS DE AUDITORIA .........................................................................................................................59
3 O PROCESSO DE AUDITORIA ........................................................................................... 62
3.1 ESTUDO DA DOCUMENTAÇÃO .........................................................................................................63
3.2 OS CICLOS DE AUDITORIA.................................................................................................................65
3.3 METODOLOGIAS DE AUDITORIA...................................................................................................... 67
4 ELABORAÇÃO DO RELATÓRIO DE AUDITORIA E O PROCESSO DE FOLLOW UP ........... 71
4.1 CONCLUSÃO DA AUDITORIA E O RELATÓRIO FINAL DE AUDITORIA....................................... 72
4.2 A IMPORTÂNCIA DA AUDITORIA PARA SETORES ESTRATÉGICOS DA EMPRESA................ 73
4.3 O PROCESSO DE MELHORIA CONTÍNUA E O FOLLOW UP......................................................... 75
LEITURA COMPLEMENTAR..................................................................................................78
RESUMO DO TÓPICO 3......................................................................................................... 85
AUTOATIVIDADE.................................................................................................................. 86
REFERÊNCIAS...................................................................................................................... 88
REFERÊNCIAS..................................................................................................................... 181
REFERÊNCIAS.................................................................................................................... 278
UNIDADE 1 -
PRINCIPAIS CONCEITOS
PARA A GERÊNCIA
DE PROJETOS E
CONFIGURAÇÃO
OBJETIVOS DE APRENDIZAGEM
A partir do estudo desta unidade, você deverá ser capaz de:
PLANO DE ESTUDOS
A cada tópico desta unidade você encontrará autoatividades com o objetivo de
reforçar o conteúdo apresentado.
CHAMADA
Preparado para ampliar seus conhecimentos? Respire e vamos em frente! Procure
um ambiente que facilite a concentração, assim absorverá melhor as informações.
1
CONFIRA
A TRILHA DA
UNIDADE 1!
Acesse o
QR Code abaixo:
2
UNIDADE 1 TÓPICO 1 -
PRINCIPAIS CONCEITOS PARA A
GERÊNCIA DE PROJETOS
1 INTRODUÇÃO
Em nosso cotidiano, é comum realizarmos planejamento para diferentes fins,
dentre eles para a execução de uma viagem, a construção de uma casa, a reforma em
um cômodo ou até para a comemoração de um aniversário. Todas estas situações, na
verdade, representam projetos que possuem início, meio e fim.
3
2.1 PROJETOS
Larson e Gray (2016) e PMI (2017) chamam atenção para a natureza temporária
de um projeto, indicando que toda a ação que possui prazos determinados para início
e fim, envolvendo um esforço específico para se atingir a um objetivo, é caracterizada
como um projeto.
Todo projeto surge de uma necessidade ou ideia que, após a sua conclusão,
deverá fornecer um benefício, muitas vezes em forma de melhorias ou mudanças. Por
exemplo, vamos imaginar que uma casa precise de reforma. Para isso, um novo projeto
deverá ser iniciado, fazendo um planejamento do que será melhorado, qual o resultado
esperado, qual a estimativa de prazos, materiais e custos, além de quantas pessoas
estarão envolvidas na execução desse processo de reforma.
Segundo Maximiano e Veroneze (2022), nem toda atividade pode ser considerada
como um novo projeto. Atividades que não tenham um prazo para sua finalização não
são consideradas projetos, mas sim operações. Como exemplo, podemos mencionar
o processo de fabricação de um produto, como um carro ou uma lâmpada. As ações
executadas no fluxo de produção desses itens são contínuas, ou seja, sem prazo para
finalização, descaracterizando, assim, a necessidade de um projeto.
4
Figura 1 – Relação entre singularidade e volume de projetos
Uma pesquisa científica para definição de uma nova metodologia para construção de
softwares poderá ser considerada como um projeto inovador, tendo pouca recorrência (poucos
projetos iguais que são executados) e maior singularidade (projeto ímpar). Projetos voltados para
construção de aplicações, por exemplo, estão sempre acontecendo (alta recorrência) o que reduz
sua singularidade.
5
Quando um ou mais projetos estão correlacionados em uma Organização, é
constituído o conceito de programa. Então, podemos ter programas de aperfeiçoamento
técnico voltado para desenvolvedores, programa de atenção à saúde, programa de
pesquisa e desenvolvimento de novos produtos, dentre outros.
INTERESSANTE
A palavra projeto é derivada do termo em latim projectum, significando algo
lançado para a frente. O que nos remete às etapas iniciais, intermediárias
e finais para implementar uma ideia, ou seja, percorrer as etapas necessárias
para a construção da ideia que deu origem ao seu respectivo projeto.
6
além dos que foram previstos para a respectiva fase na qual o projeto se encontra,
seu sucesso terá uma menor classificação.
• Produto – O sucesso, para este critério, é medido pela aderência do produto aos
requisitos iniciais solicitados para sua construção e pela satisfação do cliente com
o que está sendo construído.
• Negócio – Para este critério, o nível do sucesso será medido pelo retorno sobre
o investimento (ROI), ou seja, se o produto resultante gerou o valor esperado, em
relação ao investimento feito, atendendo às expectativas do cliente.
• Sucesso estratégico – O desempenho do projeto, para este indicador, será
medido pelas partes interessadas (stakeholders) externas. Podemos considerar,
como exemplo, se o produto está atendendo às expectativas em termos de fatia de
mercado, se possui vantagens competitivas em relação aos produtos concorrentes,
dentre outros benefícios.
ESTUDOS FUTUROS
Acadêmico, detalharemos cada variável de um projeto na Unidade 2 deste
livro, apresentando em detalhes como o gerenciamento deverá ser feito,
enfatizando os pontos importantes em cada variável, de modo que o projeto
consiga cumprir, ao seu final, o planejamento realizado.
Segundo PMI (2017), o Gerente de Projetos tem um papel muito mais além do
que apenas supervisionar o andamento dos processos, é o responsável por guiar um
projeto para que seu êxito seja alcançado, pelas etapas de escolha de qual projeto
deverá ser iniciado, pela elaboração de todo o planejamento e execução de um projeto,
pelo acompanhamento e encerramento do projeto.
Conforme Melo et al. (2021) explicam que a função do Gerente de Projetos foi
profissionalizada a partir da criação do Project Management Institute (PMI), responsável
pela elaboração e publicação do guia Project Management Body of Knowledge (PMBOK),
voltado para as melhores práticas no processo de gerenciamento de projetos.
8
NOTA
O PMBOK é um livro que possui as melhores práticas voltadas para o
gerenciamento de projetos, escrito pelo Project Management Institute (PMI).
Sua versão é atualizada periodicamente por este instituto, podendo ter seu
download efetuado no site oficial https://www.pmi.org/, mediante compra.
Suas práticas são amplamente difundidas e utilizadas por gerentes de projetos
para os mais variados tipos de projetos.
IMPORTANTE
O Gerente de Projetos deverá definir quais os papéis desempenhados por
cada membro do time que trabalhará no projeto, delegar tarefas, além de
controlar eventuais riscos que apareçam ao longo do andamento do projeto.
Também é sua função garantir que toda a documentação do projeto será
construída e mantida corretamente.
9
Todo o processo de gestão de um projeto visa assegurar o resultado, ou seja,
contornar eventuais atrasos ou situações adversas que venham a acontecer durante
a execução do projeto, garantindo que o esforço da equipe será direcionado para a
construção do produto, agregando o valor esperado ao negócio do cliente.
Cada conteúdo englobado por este documento inicial será de suma importância
para que os interessados no projeto (stakeholders) possam realizar a validação sobre a
aderência da solução proposta para o problema ou situação apresentada.
10
qual o diferencial da solução proposta frente às demais. Com a justificativa, busca-se
realizar um trabalho de convencimento do stakeholder responsável pela escolha de qual
solução será a mais indicada a ser implementada e obter sua aprovação.
11
base de conhecimento será fundamental para o processo de melhoria contínua para
projetos futuros que venham a ser desenvolvidos pela equipe, buscando evitar pontos
de falha e evidenciar pontos que deram certo.
12
Figura 3 – Fases da metodologia simplificada de gestão de projetos
IMPORTANTE
Estaremos abordando o método Kanban quando formos tratar sobre as
metodologias ágeis para gerenciamento de projetos.
13
Acadêmico, no próximo subtema apresentaremos as metodologias preditivas,
também conhecidas como tradicionais, para gestão de projetos.
14
Figura 4 – Etapas da metodologia preditiva
ESTUDOS FUTUROS
As metodologias ágeis, que serão apresentadas no próximo subtema,
surgiram como uma forma alternativa de gestão de projetos, alterando o foco
do processo (objetivo das metodologias preditivas) para o desenvolvimento
do produto.
15
Entretanto, segundo Melo et al. (2021), é possível utilizar as metodologias
ágeis em conjunto com práticas adotadas pelas metodologias preditivas, como o
gerenciamento de riscos, custos e cronograma, já que estes processos são bem
definidos pelas metodologias tradicionais, em contraste com o alto dinamismo dos
métodos ágeis, que estão propensos a alterações constantes no escopo e priorização
de tarefas.
INTERESSANTE
Segundo Sutherland (2016), as metodologias ágeis surgiram a partir da
publicação, no ano de 2001, de um manifesto, conhecido como manifesto
ágil, por um grupo de dezessete desenvolvedores de software. Podemos
encontrar os princípios do manifesto em: https://agilemanifesto.org/iso/ptbr/
manifesto.html.
16
que terão metas específicas, conforme as necessidades que forem priorizadas pelo
cliente, e que terão, ao seu final, uma cerimônia de apresentação para que o cliente
valide o que foi finalizado no ciclo.
ESTUDOS FUTUROS
Acadêmico, estudaremos com mais detalhes sobre metodologias ágeis e sua
estrutura interna na Unidade 2. Fique atento!
Sutherland (2016) afirma que um dos principais métodos ágeis utilizados para
construção de produtos, atualmente, é o framework SCRUM. Ele especifica cerimônias
para que um projeto possa ser executado, facilitando a comunicação entre os membros
da equipe de desenvolvimento e o cliente (ou partes interessadas), assim como visa a
construir o produto em ciclos, com tempos bem definidos e acordados antes do início
do projeto. É possível que uma equipe adapte as cerimônias de acordo com sua cultura
e necessidade.
Segundo Caroli (2018) e Melo et al. (2021), existem outros métodos ágeis que
podem ser utilizados por uma equipe para construção de aplicações, como o Lean, que
objetiva construir um produto com o estritamente necessário, construindo uma versão
mínima (conhecida como MVP – Mínimo produto viável), que atenda às necessidades do
cliente, realizando melhorias contínuas até que o produto com os requisitos desejáveis
tenha sido construído, ou a metodologia Feature Driven Development (FDD), que
construirá o produto com base nas suas funcionalidades, executando apenas as etapas
de planejamento e implementação dos requisitos.
DICA
Recomendamos a leitura do Trabalho de Conclusão de Curso com tema
Gerenciamento de Projetos & Segurança da Informação: os impactos da gestão
de projetos na segurança da informação. Acesse em: https://dspace.uniceplac.
edu.br/handle/123456789/1612.
17
Sommerville (2011) apresenta uma característica em comum entre a
metodologia XP e o framework SCRUM: a necessidade de envolvimento do cliente em
todo o processo, sendo o responsável pela implementação ou não de uma mudança
em uma funcionalidade já existente ou da implementação de novos requisitos, além de,
também, definirem a ordem de prioridade para a implementação de cada item analisado.
DICA
Além das metodologias apresentadas, indico a leitura da dissertação de
mestrado de título Integração da abordagem Domain-Driven Design e da técnica
Behaviour-Driven Development no Desenvolvimento de Aplicações web. Acesse
em https://repositorio.ufscar.br/bitstream/handle/ufscar/7588/DissECSS.
pdf?sequence=1&isAllowed=y.
18
RESUMO DO TÓPICO 1
Neste tópico, você aprendeu:
• As metodologias preditivas necessitam que uma etapa tenha sua conclusão para
que a próxima etapa seja iniciada, enquanto as metodologias ágeis não precisam
esperar que uma fase esteja completamente pronta para iniciar a próxima fase do
projeto.
19
AUTOATIVIDADE
1 Um projeto poderá ser definido para a execução de atividades que requeiram um
planejamento e acompanhamento dos recursos e entregáveis. A ideia por trás de
todo projeto é que ele possa seguir etapas do início ao final, alcançando o objetivo
proposto em seu planejamento e, então, concluído. Sobre o papel do Gerente de
Projetos na condução de um novo projeto, assinale a alternativa CORRETA:
2 Um projeto será responsável pela execução de uma tarefa, entregue ao seu final.
Todas as etapas de um projeto irão ter o objetivo de definir quais as necessidades da
tarefa, o que é necessário para sua execução, e executar o planejado até se atingir o
objetivo inicialmente proposto. Uma característica de um projeto, portanto, é possuir
entregáveis. Com base em seus conhecimentos, analise as sentenças a seguir:
20
as etapas necessárias para um projeto. Considerando seus conhecimentos sobre
metodologias de gestão de projetos, classifique V para as sentenças verdadeiras e F
para as falsas:
a) ( ) V – F – F.
b) ( ) V – F – V.
c) ( ) F – V – F.
d) ( ) F – F – V.
4 Metodologias para a Gerência de Projetos devem ser utilizadas para garantir a fluidez
necessária no desenvolvimento de um projeto, a partir de sua inicialização até a sua
conclusão. A escolha da metodologia, no entanto, dependerá de uma série de fatores,
como o conhecimento prévio da equipe sobre as tarefas que devem ser executadas
e como esta execução deverá acontecer, assim como o tipo de projeto que será
desenvolvido. Com base em seus conhecimentos e no texto apresentado, disserte
sobre o motivo pelo qual essa metodologia é conhecida como tradicional.
5 Existem projetos que são repetitivos e já possuem suas fases conhecidas e bem
definidas, sem muitas variações. Dessa forma, ao se deparar com um projeto
desse tipo, o Gerente de Projetos poderá escolher a utilização de uma metodologia
específica para a gestão e acompanhamento do projeto específico. Disserte sobre a
metodologia mais adequada para à situação apresentada e o porquê.
21
22
UNIDADE 1 TÓPICO 2 - T
GESTÃO DE CONFIGURAÇÕES
1 INTRODUÇÃO
Acadêmico, neste tema de aprendizagem abordaremos os principais conceitos
sobre a gerência de configuração, como identificar uma configuração que necessita de
gerência e quais as formas de realizar controle de versão.
23
representam um serviço ou uma função provida pelo sistema, ou seja, tudo aquilo que
o usuário poderá executar, como os cadastramentos, extração de relatórios, dentre
outros exemplos. Já os requisitos tidos como não funcionais irão prover um suporte aos
requisitos funcionais, relacionados a questões de segurança, de auditoria, performance,
podendo englobar um ou mais dos requisitos funcionais disponíveis na aplicação.
Pressman e Maxim (2021), por sua vez, afirmam que as informações resultantes
dos processos de software constituem o conjunto das configurações desse software.
Essas informações podem se enquadrar nas categorias de programas de computador
(código fonte e executável), manuais de usuário ou documentos que descrevam a
aplicação construída e os dados mantidos pelo programa.
24
requisitos da aplicação irão compor o conjunto dos itens de configuração que deverão
ser gerenciados. Qualquer alteração em um desses itens deverá ser devidamente
documentada e analisada, garantindo que a aplicação refletirá as mudanças necessárias,
seguindo as boas práticas recomendadas.
25
O gerenciamento de configurações irá indicar a forma como a evolução de um
produto de software deverá acontecer, considerando as etapas de desenvolvimento
e manutenção, ao longo do ciclo de vida do produto (HUMBLE; FARLEY, 2014). O
processo de gerenciamento de configurações deverá identificar, de forma única, todos
os artefatos importantes ao projeto, indicando a forma como eles serão armazenados e
recuperados, assim como seus respectivos relacionamentos.
26
Segundo Pressman e Maxim (2021), é preciso identificar qual o gatilho que
originou a mudança que será implementada, sendo alguns exemplos:
Ao iniciar um projeto, os itens que deverão ser gerenciados podem ser resumidos
conforme apresentado na Figura 6:
27
Figura 7 – Fases macro do processo de gerenciamento das configurações
28
A Figura 8 apresenta um resumo dos tipos de configurações que podem ser
gerenciáveis nos diferentes tipos de servidores que dão suporte a uma aplicação.
Uma aplicação WEB, por exemplo, voltada para a utilização através da Internet, terá os
servidores de aplicação, banco de dados (para questão de armazenamento dos dados
fornecidos pelos usuários) e de infraestrutura, os quais darão todo suporte indispensável
para que a aplicação possa ser publicada na WEB e utilizada com o nível de segurança
necessário.
29
ESTUDOS FUTUROS
Apresentaremos os detalhes e conceitos sobre o pipeline de implantação em
momento futuro. Por hora, é preciso entender apenas que ele representa
uma sequência de operações automatizadas para que uma nova versão da
aplicação seja implantada em um ambiente operacional.
INTERESSANTE
É possível que duas ou mais aplicações compartilhem as mesmas
configurações de ambiente operacional, como sistema operacional,
variáveis de ambiente e bibliotecas. Nesse caso, é preciso criar scripts de
automação separados para cada aplicação, garantindo que uma alteração
em uma das configurações operacionais reflita apenas nas aplicações que
delas dependerem.
É esperado que, em algum momento, o projeto tenha que lidar com o controle
de mudanças e configurações. Apresentaremos como essas mudanças poderão ser
requisitadas e gerenciadas no próximo subtema.
30
O processo de auditoria também requer que essas informações sejam
armazenadas, efetuando um rastreamento de todas as alterações ocorridas na
aplicação, desde sua primeira versão até as versões atuais.
ESTUDOS FUTUROS
Acadêmico, apresentaremos as principais ferramentas para controle de
versão em outro momento, durante esta disciplina.
31
É possível realizar um controle de versão para todos os entregáveis de um
projeto, como sua documentação, os requisitos mapeados inicialmente, além do plano
de testes do projeto. Sem a realização desse versionamento, caso algum incidente de
segurança aconteça e, como consequência, um documento seja alterado de maneira
não autorizada, seria bem difícil conseguir recuperar sua versão correta, anterior ao
momento da modificação indesejada. Então, a gestão de configurações através da
utilização de controle de versão se mostra importante para que o projeto possa continuar
de maneira saudável, sem eventuais contratempos com retrabalhos ocasionados pela
perda de informações importantes que não puderam ser recuperadas.
ATENÇÃO
O conceito de controle de versão deverá englobar, absolutamente, todos
os passos e configurações necessários para que se consiga reproduzir um
clone de um ambiente de produção em um outro servidor ou máquina,
com todas as configurações de ambiente (como sistema operacional e
variáveis de ambiente) para a execução da aplicação. Portanto, não se
limita apenas ao armazenamento de versões do código fonte.
32
DICA
Uma das ferramentas em evidência, na atualidade, para a execução do
controle de versões é a Git digo aberto e funcionamento distribuído.
Acesse em: https://git-scm.com/.
ESTUDOS FUTUROS
Traremos outras ferramentas focadas em controle de versão na Unidade
3 desta disciplina.
33
Segundo CMMI (2017), se faz necessária a formação de um Comitê de Aprovação
das Mudanças, com o intuito de avaliar os impactos das alterações efetuadas em uma
aplicação, podendo aprovar ou rejeitar tais solicitações. O intuito desse grupo é manter a
aplicação íntegra em todo seu ciclo de vida. A aprovação de uma mudança só acontecerá
caso a requisição de mudança satisfaça aos critérios estabelecidos pelo cliente para a
próxima versão (ou release) da aplicação, ou seja, apenas as que, efetivamente, irão
agregar valor ao negócio do cliente.
Então, para que uma mudança em uma aplicação aconteça, é necessário que
alguns passos possam ser seguidos, garantindo a rastreabilidade dessa mudança,
conforme apresentado na Figura 9.
34
Caso não seja de interesse do cliente que a funcionalidade se torne disponível, o Comitê
irá reprovar a mudança, informando às partes interessadas sobre a postergação para
distribuir a release contendo a modificação.
Conforme apresentado por Morais e Zanin (2017), existem três fatores que
podem desencadear a necessidade de mudança em uma aplicação:
Segundo Pressman e Maxim (2021), para cada solicitação de alteração feita para
uma aplicação, um relatório contendo a análise de impacto da alteração no software,
os prós e contras da implementação, os custos envolvidos na execução do processo de
mudança e o eventual impacto sobre outras funcionalidades ou itens de configuração
do sistema devem ser descritos e detalhados, para dar subsídios ao Comitê de avaliação
para aprovar ou não a mudança.
Filho (2019) explica que uma mudança não é somente um ajuste no código
ou uma mera inclusão de uma nova funcionalidade, pois irá refletir diretamente no
negócio, alterando as regras que serviram de base inicial para construção do produto.
Essa característica de alteração no negócio é o que difere uma solicitação de mudança
de uma manutenção corretiva ou adaptativa, por exemplo.
ATENÇÃO
Pressman e Maxim (2021) apresentam a necessidade de controle de
versão para as versões (ou releases) da aplicação que são criadas com
a inclusão de uma nova mudança aprovada. O versionamento irá garantir
duas características importantes para a gestão de configuração: controle de
acesso e de sincronização. É preciso garantir que apenas os membros do time
do projeto e as partes interessadas (patrocinadores) terão acesso às versões
geradas da aplicação, assim como evitar que as colaborações dos diferentes
membros do time não interfiram (nem sofram interferência) das efetuadas por
outros membros.
35
Acadêmico, no próximo subtema estaremos abordando o processo de integração
e entrega contínua, muito importantes para a disponibilização em produção (ou demais
ambientes operacionais) de manutenções implementadas e aprovadas.
36
Sommerville (2011) define a integração contínua como o ato de integrar uma
mudança implementada em uma aplicação ao código do software principal (que será
implantado em um ambiente operacional, como o de produção). A partir do momento que
a integração é feita, os testes de integração e demais testes (como os unitários) para a
funcionalidade integrada deverão ser realizados e os resultados devem ser compatíveis
com o esperado, ou seja, a nova parte integrada não deve interferir negativamente em
funcionalidades que já apresentavam o comportamento esperado, e deve produzir os
resultados coerentes com a sua especificação.
37
de uma nova versão. Com testes automatizados, por outro lado, é possível repetir todos
os passos necessários para que uma funcionalidade seja considerada pronta para ser
implantada, de forma automática, sem erros humanos.
Gonçalves et al. (2019) afirma que as baselines irão ser definidas em cada etapa
do projeto, apresentando documentos diferentes, conforme a fase atual que o projeto
se encontra, mas seguindo os documentos listados anteriormente.
38
Segundo Humble e Farley (2014), os objetivos para a construção de um pipeline
de implantação são:
39
• melhoria na qualidade da aplicação final entregue. já que problemas poderão ser
facilmente detectados, correções também poderão ser imediatamente aplicadas,
evitando que estes problemas perdurem na aplicação;
• correção de bugs se torna mais simples. se a periodicidade diária for respeitada para
execução dos testes fumaça, os erros que forem detectados estarão ligados aos
novos códigos integrados à aplicação, o que facilita o processo de correção;
• progresso da aplicação pode ser avaliada melhor. Como as funcionalidades vão
sendo integradas aos poucos e testadas, garantindo seu funcionamento, se torna
mais perceptível ao time e aos interessados que há progresso no desenvolvimento
da aplicação e andamento do projeto como um todo.
Segundo Pressman e Maxim (2021), uma versão criada com mudanças aprovadas
e que passaram nos testes de avaliação é denominada de versão candidata. É preciso
que a avaliação de uma versão candidata seja baseada em casos de teste desenvolvidos
juntamente com os protótipos funcionais da aplicação. Além da validação de requisitos
funcionais, é necessário que sejam realizados testes em requisitos não funcionais,
como avaliação de desempenho, auditoria, segurança ou usabilidade da aplicação.
40
Pressman e Maxim (2021) ainda afirmam que, caso falhas ou bugs sejam
detectados ao se realizar os testes nas versões candidatas, é necessário que estas
falhas sejam documentadas, criando, assim, uma base de conhecimento. Existem
ferramentas disponíveis no mercado voltadas para a documentação dos problemas
detectados, permitindo que o time acompanhe suas respectivas correções.
INTERESSANTE
Sommerville (2011) apresenta a diferença entre codelines e baselines. Enquanto
o primeiro conceito está relacionado à diferentes versões do código fonte
de uma aplicação, o segundo estará voltado para uma versão completa da
aplicação, podendo utilizar diferentes versões de codelines.
43
INTERESSANTE
É desejável que um comitê de mudanças seja criado para avaliar e aprovar
qualquer mudança nas configurações do ambiente operacional de uma
aplicação. Após os testes das alterações pela equipe de desenvolvimento,
as mudanças irão ser submetidas à aprovação do comitê que irá, caso
não detecte nenhum conflito ou risco para o correto funcionamento da
aplicação em ambiente produtivo, aprovar a execução em produção.
Para os demais ambientes operacionais, não é necessária a aprovação
do comitê.
Baldo (2012) explica que, para que seja introduzido um pipeline de integração e
entrega contínua, é necessário que o processo passe pelas seguintes fases:
45
NOTA
É possível que sejam definidas janelas de manutenção em uma aplicação,
com periodicidade definidas, a fim de agrupar a execução de mudanças
nas configurações operacionais ou para que uma nova versão da
aplicação possa ser implantada. Essa janela poderá englobar um conjunto
de implantações que já foram aprovadas, por exemplo, em uma mesma
semana.
Para que o ecossistema de entrega possa ser montado, é preciso realizar uma
ação para o provisionamento de servidores, ou seja, de máquinas que fornecerão o
suporte operacional necessário para a execução da aplicação, de modo que todo seu
processo de instalação e configuração possa ser executado, de forma remota, através
dos scripts já criados de automação para a aplicação em questão. Uma característica
importante é que existe a possibilidade que essas máquinas servidoras sejam
provisionadas de forma virtual, ou seja, que uma máquina virtual possa ser criada, com
as configurações adequadas, em uma máquina física já existente.
ESTUDOS FUTUROS
Acadêmico, abordaremos as principais ferramentas disponíveis para
a implantação de um fluxo CI/CD na Unidade 3 deste livro. Também
apresentaremos o processo de auditoria de forma mais detalhada no
próximo tema de aprendizagem desta unidade. Mantenha o foco e bons
estudos!
46
ATENÇÃO
É importante perceber que, quando nos referimos a configurações idênticas
entre os diferentes servidores de uma aplicação, estamos incluindo todos os
detalhes! Então, se uma aplicação é utilizada para executar comandos em um
sistema operacional, essa mesma aplicação deverá ser utilizada em TODAS
as máquinas servidoras. O intuito da automação é, justamente, reproduzir
com exatidão todos os passos que forem necessários, partindo do zero, para
provisionar um novo servidor, em caso de falha em uma máquina.
Bahamdain e Alkazemi (2018) afirmam que existem alguns requisitos para que
uma equipe adote as práticas de CI/CD:
47
Segundo Pressman e Maxim (2021), o controle de versões das configurações é
importante para garantir que, na ocorrência de qualquer problema com a implantação
de uma alteração em uma das configurações geridas, seja possível retornar o sistema a
um ponto seguro de funcionamento, identificando qual a configuração que ocasionou
o problema.
48
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu:
• Toda versão que será analisada para que possa ser implantada em algum ambiente,
através do processo de entrega contínua, é considerada uma versão candidata a
ir ao ambiente de produção, sendo implantada caso todas as etapas do fluxo do
pipeline sejam executadas com sucesso.
49
AUTOATIVIDADE
1 O processo de Gestão de Configuração deverá englobar artefatos importantes do
projeto, gerados em todas as suas etapas. É importante que o gerente do projeto
saiba identificar e controlar corretamente os itens de configuração, garantindo
que o histórico do projeto será armazenado corretamente. Com base em seus
conhecimentos sobre o gerenciamento de configurações, assinale a alternativa
CORRETA:
2 Identificar os itens de configuração que devem ser gerenciados não é uma tarefa tão
fácil, já que muitos itens irão ser elaborados à medida que o projeto será executado.
É de fundamental importância que o gerente de projetos saiba identificar quando um
item de configuração poderá ser considerado corretamente gerenciado. Com base
em seus conhecimentos, analise as assertivas a seguir:
50
gerados por cada etapa do projeto. De acordo com seus conhecimentos sobre itens
que deverão ser gerenciados, classifique V para as sentenças verdadeiras e F para as
falsas:
( ) O código fonte da aplicação é um artefato que deverá ser gerenciado pelo processo
de gerenciamento de configurações.
( ) O plano de testes dos requisitos da aplicação representa um artefato que deverá
ser gerenciado pelo processo de gerenciamento de configurações.
( ) Os e-mails trocados com o cliente representam um artefato que deverá ser
gerenciado pelo processo de gerenciamento de configurações.
a) ( ) V – F – F.
b) ( ) V – V – F.
c) ( ) F – V – F.
d) ( ) F – F – V.
51
52
UNIDADE 1 TÓPICO 3 -
AUDITORIA
1 INTRODUÇÃO
Acadêmico, neste tema de aprendizagem, iremos abordar os princípios
fundamentais da auditoria, as principais metodologias e como é possível aplicar estes
conceitos ao processo de entrega e integração contínua.
53
Segundo Sommerville (2011), o processo de auditoria em produtos, frutos da
indústria de manufatura, é feito através da garantia da qualidade (do inglês Quality
Assurance – QA), que tem o objetivo de inserir processos capazes de garantir a qualidade
dos produtos ao final de uma linha de produção, descartando aqueles produtos que não
atingem o nível mínimo, exigido, de qualidade.
54
ESTUDOS FUTUROS
Estudaremos a importância da definição do escopo de uma auditoria e
sua relação com o processo de auditoria como um todo em momento
futuro.
ESTUDOS FUTUROS
Acadêmico, abordaremos outras normas voltadas para o apoio ao
processo de gerência de configuração, com maiores detalhes, na Unidade
3 desta disciplina.
55
NOTA
Uma auditoria visa garantir uma melhoria contínua no objeto auditado, de
modo que o nível de qualidade acordado com o cliente possa ser atingido e
mantido. Caso um processo esteja sendo o alvo de um processo de auditoria,
por exemplo, sua melhoria contínua irá certificar que todas as etapas estão
sendo devidamente executadas, com os resultados obtidos em cada fase,
equivalendo aos resultados esperados, de acordo com o planejamento
desse processo.
INTERESSANTE
Pressman e Maxim (2021) afirmam que o setor de garantia da qualidade irá
defender o ponto de vista do cliente frente ao que está sendo construído,
garantindo que os interesses do cliente serão defendidos e que, ao final do
projeto, o produto corresponda ao que é esperado pelos patrocinadores.
• Ética – toda auditoria precisa ser feita de forma imparcial, ou seja, os membros da
equipe de auditoria não devem ter nenhum tipo de relação (não pode ter participado
de nenhuma fase da construção do projeto, por exemplo) com o produto que está
sendo auditado, garantindo que a realização dos testes (avaliação dos itens de
auditoria) não irá mascarar eventuais falhas conhecidas.
56
• Independência – o auditor precisa ter independência para realizar seus testes,
sem interferências dos membros da equipe que construíram o produto, de modo a
induzir como os testes deverão acontecer.
• Competência – o auditor deverá ter competência técnica para realizar um processo
de auditoria em um serviço ou produto de TI, o que significa que ele deverá conhecer
sobre o negócio que envolve a aplicação ou produto que será construído.
• Planejamento – é preciso que o auditor planeje, de forma adequada, todas
as atividades que serão executadas em um processo de auditoria, levando em
consideração o escopo do projeto que será auditado.
Evidência – todos os itens avaliados precisam ser devidamente comprovados com
vídeos, prints da tela ou meios que evidenciem os passos executados e a divergência
de resultado entre o esperado e o obtido. Este item é especialmente importante,
tendo em vista que podem existir divergências pessoais entre o auditor e algum
membro da equipe, de modo que o relacionamento entre os membros da equipe de
desenvolvimento e o auditor não pode interferir no processo de auditoria do produto.
ESTUDOS FUTUROS
Abordaremos a definição de escopo e a importância de sua correta definição
em cada ciclo de auditoria no próximo subtema.
57
IMPORTANTE
Sommerville (2011) afirma que, durante os processos de inspeção de uma
aplicação, o intuito é melhorar continuamente o produto construído, não
sendo foco analisar a performance das pessoas envolvidas no time de
desenvolvimento. Para isso, é preciso que o gerente de projetos promova
o engajamento dos membros do time de modo que o sucesso ou fracasso
de um membro do time irá representar o de toda a equipe, não somente do
indivíduo.
Pressman e Maxim (2021) afirmam que cada membro do time de revisão técnica,
para garantia da qualidade, precisa ser independente do produto que está sendo
inspecionado (não ter participado de nenhuma fase de sua elaboração), tendo papéis
diferentes dentro do time de revisão, como o de liderança da equipe, de documentar as
descobertas efetuadas, de apresentar o material aos interessados etc. Após a finalização
da inspeção em um artefato específico, os resultados precisam ser documentados e
avaliados pela equipe, que decidirá se aprovará ou não a funcionalidade avaliada.
ESTUDOS FUTUROS
Acadêmico, abordaremos as técnicas de revisão (ou auditoria) no Tema de
Aprendizagem 3, ainda nesta Unidade de ensino.
58
Quando se delimita um escopo, o auditor poderá priorizar o conjunto de
funcionalidades mais importantes (que agregam mais valor ao negócio do usuário) nos
primeiros ciclos de auditoria, garantindo que as funcionalidades vitais da aplicação
estarão com seu comportamento perfeito, conforme o especificado pelo cliente.
As fronteiras definidas pelo escopo serão importantes para que o auditor não
ultrapasse estritamente o conjunto de funcionalidades que foram definidas para testes
em cada ciclo, evitando trabalho desnecessário e concentrando esforços em testar
somente o que estiver no foco da auditoria em questão. Dessa forma, espera-se que o
auditor consiga reduzir o tempo gasto em cada ciclo, evitando ciclos longos e que, ao
seu final, podem não mais fazer sentido para atender às expectativas do usuário.
Pressman e Maxim (2021) afirmam que o foco de uma revisão que segue o
processo de revisão técnica formal (RTF), deverá ser um artefato específico da
aplicação. O desenvolvedor da parte que será analisada será o responsável pelo alerta
que indica que o artefato se encontra pronto para ser avaliado, ficando a cargo do líder
da equipe de revisão avaliar se o artefato está, de fato, completo (com o resultado
esperado, critérios de validação e documentação prontos), atribuindo a mais outros
dois ou três membros do time que realizem os devidos testes, documentando todos
os resultados obtidos. Ao final do processo, deve ser agendada uma reunião de revisão
com todos os envolvidos na avaliação, podendo escolher uma dentre as três situações
a seguir:
59
satisfação do cliente em relação ao produto que está sendo construído. O cliente,
desta forma, avaliará as funcionalidades implementadas, comparando-as com os
requisitos inicialmente especificados.
• Terceiro nível ou terceira parte – realizada por uma Organização externa, tem
o objetivo de avaliar os processos internos de uma Empresa que visa obter uma
certificação em alguma norma (como ISO/IEC 9001, para qualidade de serviços, ou
ISO/IEC 27001, para a segurança da informação ou a CMMI, voltada para a avaliação
da maturidade de processos de software). Não é um processo obrigatório, caso não
seja pleiteada uma nova certificação ou a evolução dos níveis de maturidade em
uma certificação anteriormente obtida pela Organização.
60
• breve descrição do produto que será analisado;
• planos de produto, apresentando as principais datas para as entregas acordadas
com os patrocinadores;
• descrição do processo que será utilizado para o desenvolvimento do produto;
• metas de qualidade que deverão ser alcançadas pelo processo de desenvolvimento,
garantindo que o produto atenda às exigências mínimas da empresa;
• riscos e gerenciamento de riscos, informando os principais riscos capazes de
interferir na qualidade do produto desenvolvido e quais ações poderão ser tomadas
para prevenir ou tratar/contornar tais riscos.
Pressman e Maxim (2021), por outro lado, não direcionam as revisões informais
a um tipo de projeto específico, indicando apenas que uma ferramenta eficaz para esse
tipo de validação: os testes de mesa. Por não existir um planejamento prévio para essa
revisão, a eficiência dessa forma de revisão, em comparação com as revisões formais,
é menor, mas pode-se melhorar com a elaboração de listas de verificação contendo os
itens que serão validados para cada artefato.
ESTUDOS FUTUROS
Ainda neste tema de estudos, estudaremos as principais metodologias para
cada tipo de auditoria apresentado.
61
Pressman e Maxim (2021) apresentam uma outra forma de revisões do tipo RTF,
que é a revisão por amostragem. Neste processo, seriam selecionadas amostras de
todos os artefatos de engenharia de software produzidos em um projeto, com o intuito
de encontrar eventuais erros. Deve-se dar maior prioridade para os artefatos que podem
estar mais propensos a erros.
3 O PROCESSO DE AUDITORIA
PMI (2017) define uma auditoria como um processo estruturado e independente,
capaz de verificar se o planejamento para as atividades executadas está sendo
efetivamente seguido. Esse processo deve ser executado por uma equipe que não se
envolveu com nenhuma etapa do planejamento e execução do projeto auditado, com o
intuito de validar a utilização das boas práticas acordadas entre as partes (patrocinador
e Empresa contratada), encontrar e documentar as falhas como não conformidades,
compartilhar o resultado com outros projetos, auxiliando no processo de melhoria
contínua.
Para cada etapa de projeto, uma metodologia específica de auditoria poderá ser
utilizada, analisando os artefatos gerados em cada fase do projeto e, principalmente,
garantindo a aderência do produto aos requisitos inicialmente levantados pelas
necessidades do cliente.
62
3.1 ESTUDO DA DOCUMENTAÇÃO
Sommerville (2011) afirma que é fundamental conhecer o produto que será
avaliado, sendo essa a primeira etapa da elaboração do plano de qualidade de um
projeto. É importante manter a descrição do artefato que será analisado de forma clara
e suscinta, de modo a evitar que os membros da equipe de gestão da qualidade percam
o interesse e não concluam a leitura do documento.
63
Quadro 1 – Exemplo de planilha de auditoria
64
3.2 OS CICLOS DE AUDITORIA
Segundo Pressman e Maxim (2021), em cada ciclo de uma RTF, o revisor
responsável por registrar as observações encontradas ao longo do processo de
avaliação deverá produzir, ao final do processo, uma lista de problemas de revisão,
além de um relatório resumido da RTF executada, capaz de responder aos três pontos
básicos: qual artefato foi analisado? Quem participou da revisão? Quais as observações
encontradas e conclusões obtidas? É importante manter esse relatório na base histórica
de documentos do projeto, mantendo-se um histórico dos ciclos efetuados.
IMPORTANTE
Não é necessária a participação de todos os membros da equipe de um
projeto, processo ou evento. A partir da realização da entrevista com um
membro que participou ativamente do processo, é possível identificar pontos
falhos e pontos de melhoria para eventos futuros ou, em caso de processos,
otimização das etapas.
65
ATENÇÃO
É importante que o auditor, após a realização de todos os ajustes pela equipe
responsável, realize todos os testes feitos no conjunto de funcionalidades
novamente, garantindo que os erros foram devidamente corrigidos sem que
novos bugs tenham sido inseridos. É possível, por exemplo, que durante o
processo de correção de um defeito, uma funcionalidade que já tinha sido
testada e aprovada sofra impactos, tendo seu funcionamento comprometido.
66
Para cada tipo de sistema, processo ou evento que será analisado, é importante
que a metodologia de auditoria adequada seja adotada, para garantir uma maior
abrangência nos requisitos analisados e dirimir eventuais dúvidas que surjam ao longo
do processo.
Sommerville (2011) afirma que os padrões para garantir que os ciclos de auditoria
aconteçam conforme esperado devem ser elaborados em conjunto com os engenheiros
de software envolvidos no time de desenvolvimento, devendo ser periodicamente
ajustados para acompanhar a evolução das tecnologias envolvidas, além de dar suporte
aos membros do time de desenvolvimento quanto à utilização desses padrões. Devem
ser executadas três atividades durante os ciclos de revisões:
67
• Simulação paralela – esta técnica tem o objetivo de montar um ambiente, com
as mesmas características do ambiente de produção, de forma paralela para que
os testes possam ser realizados pelo auditor e sua equipe. Caso não seja possível
efetuar uma cópia do código da aplicação, o auditor poderá executar uma engenharia
reversa e implementar uma nova aplicação, com as mesmas funcionalidades, para
realização dos testes. Nesta situação, é possível efetuar testes minuciosos dos
requisitos, o que não seria possível ser feito diretamente no ambiente de produção.
• Lógica de auditoria embutida no sistema – esta técnica irá inserir na aplicação,
durante seu processo de codificação, um código que possa realizar a auditoria de
operações efetuadas no sistema, como inclusões de dados, alterações e exclusões.
Por ser uma técnica aplicada durante a codificação, é possível auditar qualquer
funcionalidade do sistema. A grande ressalva, nesse caso, é a inclusão de lógica no
sistema após este já estar pronto, não sendo indicado, pela possibilidade de inclusão
de bugs em funcionalidades que já estavam com o comportamento correto.
• Rastreamento e mapeamento – o intuito desta técnica é armazenar rastros
de todas as principais funcionalidades disponibilizadas pelo sistema, através da
implementação de trilhas de auditoria. Sua principal aplicação é o levantamento de
estatísticas, como quantidade de acessos a determinadas páginas, arquivos etc.
• Análise da lógica de programação – esta técnica se baseia na análise manual, por
parte do auditor e sua equipe, do código de um sistema, em busca de divergências
na implementação das regras de negócio, em comparação com os requisitos
especificados. Também é possível avaliar a utilização dos itens combinados pela
equipe, como implementação de determinados padrões de projeto, utilização de
boas práticas de programação, dentre outros itens.
• Aquisição, desenvolvimento, manutenção e documentação de sistemas –
esta técnica visa estabelecer critérios para a avaliação de aplicações prontas, que
a Organização deseja adquirir, assim como estabelecer cláusulas contratuais entre
a Empresa e seus clientes que a contratam para dar manutenção em aplicações
já prontas ou para construir novos sistemas. Nessa técnica, é possível definir
ferramentas e formas para controle de versão na elaboração das documentações
dos sistemas que são mantidos e/ou codificados pela Empresa.
• Controles de desenvolvimento e manutenção de sistemas – esta técnica
apresenta o estudo da viabilidade econômica antes de estabelecer um contrato
para implementação e/ou manutenção de sistemas, avaliando questões como
tempo hábil, recursos necessários e sua disponibilidade, além de estabelecer regras
para a requisição de novas funcionalidades, por parte do usuário, ou requisição de
mudanças em requisitos já codificados.
• Controle de documentação de sistemas – visa estabelecer padrões para a
escrita e modificações em documentos elaborados pela Empresa, assim como
definir padrões para o armazenamento dessa documentação e o devido controle
de acesso.
68
Quadro 2 – Resumo das principais características das técnicas de auditoria de sistemas
Item Necessi-
Testes em
dade de Necessi- Alto custo
qualquer Alto custo de
preparação dade de de implan-
funciona- desenvolvi-
de grande habilidade tação na
lidade do mento
massa de do auditor aplicação
sistema?
Técnica dados
Simulação
Sim Não Sim Sim Não se aplica
paralela
Lógica de
auditoria
Sim Não Sim Sim Sim
embutida no
sistema
Rastreamento
e Sim Não Sim Sim Sim
mapeamento
Análise da
lógica de Sim Não Não Sim Não
programação
ATENÇÃO
Relatórios extraídos de um sistema irão impactar diretamente na tomada de
decisões estratégicas pela diretoria da Empresa, por isso precisam estar com
seus dados coerentes com a realidade. A inclusão de dados mediante testes,
caso não sejam excluídos corretamente poderão acusar falsos positivos ou
negativos para operações estratégicas, impactando diretamente o negócio
da Organização.
69
A auditoria também poderá acontecer no processo de desenvolvimento de uma
aplicação ou na metodologia adotada pela equipe para a construção do sistema. Nesse
caso, serão avaliadas se as etapas da metodologia estão sendo seguidas corretamente,
se os artefatos que devem ser gerados, assim o estão, se a forma de trabalho acordada
pela equipe está sendo seguida corretamente por seus membros.
• Definir quais serão os artefatos que serão construídos e entregues pelo projeto,
assim como a lista de requisitos acordada com os patrocinadores do projeto.
Também podem ser definidas, nesta etapa metas que o projeto deverá cumprir.
• Medir o desempenho do processo que está sendo executado em um projeto,
fazendo coleta de prováveis pontos falhos (defeitos) do processo.
• Analisar os resultados das métricas obtidas na etapa anterior, determinando suas
possíveis causas.
Segundo PMI (2017), problemas podem surgir como resultado dos ciclos de
auditoria ou revisão técnica, podendo ser utilizados métodos que envolvam as seguintes
etapas para definir e aplicar as respectivas soluções:
70
• identificação e definição do problema;
• buscar definir a causa raiz dos problemas identificados;
• planejar as possíveis soluções;
• selecionar qual a melhor solução para cada problema, muitas vezes em comum
acordo com o cliente (ou partes interessadas);
• implementar a solução escolhida;
• avaliar a eficácia da solução, garantindo que o problema foi efetivamente sanado.
PMI (2017) ainda sugere o método Plan, Do, Check, Act (PDCA – Planejar,
Executar, Monitorar e Agir) como uma forma alternativa de melhoria da qualidade, além
do método seis sigma já mencionado. Cada sigla do método PDCA representa uma
etapa de execução de um ciclo contínuo de revisão e melhorias. O planejamento será
o marco inicial, seguindo da execução do que foi planejado, monitoramento das ações
implantadas com análise crítica de eventuais pontos de atenção e, por fim, a fase de
ação, que irá apresentar quais as soluções de contorno para os problemas encontrados,
assim como ações preventivas para garantir a melhoria contínua.
71
4.1 CONCLUSÃO DA AUDITORIA E O RELATÓRIO FINAL DE
AUDITORIA
Pressman e Maxim (2021) enfatizam a importância de manter, no relatório dos
ciclos de revisões técnicas, informações que apresentem uma ordem cronológica dos
problemas identificados e corrigidos no produto, apresentando uma visão global para
todos os envolvidos no time do projeto.
Imoniana (2016) apresenta algumas situações nas quais é possível que relatórios
parciais sobre o processo de revisão técnica ou auditoria sejam emitidos, contendo
informações parciais do processo, sendo elas:
72
Pressman e Maxim (2021) e Sommerville (2011) enfatizam a importância do
resultado apresentado ao final do processo de revisão técnica para a tomada de decisões
estratégicas da Empresa, além de servir como base de conhecimento para outros
projetos. Apresentaremos, no próximo subtema, a importância de tais informações para
os setores estratégicos da Organização.
Todo processo de auditoria visa garantir uma qualidade mínima para um produto,
serviço ou evento realizado. Para produtos, como os de TI, é possível que a Empresa
tenha adotado um padrão de qualidade que reflita a não ocorrência de erros impeditivos
em aplicações desenvolvidas por ela. Dessa forma, os ciclos de auditoria irão garantir
que os sistemas sejam entregues dentro dos parâmetros acordados para a qualidade
esperada. Já para eventos, por exemplo, uma auditoria deverá garantir que pontos
falhos em uma edição possam ser melhorados para edições futuras nesse mesmo
evento. Para prestação de serviços, a auditoria garante que os serviços se mantenham
dentro de um padrão de qualidade, com a menor quantidade possível de insatisfações
dos clientes e retrabalho.
NOTA
A ferramenta SonarQube tem o objetivo de realizar revisão de código de
forma automatizada, auxiliando na manutenibilidade do código, por manter
o código da aplicação limpo, ou seja, de fácil leitura e manutenção. Sendo
de código aberto, poderá ser encontrada para download em https://www.
sonarsource.com/products/sonarqube/.
73
ATENÇÃO
Sommerville (2011) enfatiza que o setor responsável pela QA não deverá
se envolver com nenhuma etapa de nenhum projeto, tendo em vista que
deverá manter sua imparcialidade. Os testes executados nos produtos de
software têm como objetivo encontrar divergências quanto aos requisitos
inicialmente especificados.
IMPORTANTE
Tanto Sommerville (2011) quanto Pressman e Maxim (2021) enfatizam
que a qualidade de um projeto deverá atender às expectativas do cliente,
agregando valor ao seu negócio e garantindo sua satisfação, pois, caso
contrário, o projeto se tornará inútil.
74
Como forma de tomada de decisões estratégicas, um processo de auditoria
poderá auxiliar, por exemplo, a definir quais produtos deverão ser produzidos para a
próxima estação do ano, conforme os resultados obtidos pelos processos de auditoria
da mesma estação do ano anterior, quais ações de marketing tiveram melhor aceitação
do público consumidor, quais produtos devem ter sua produção suspensa pela má
aceitação e assim por diante.
75
evitando que problemas previamente identificados sejam deixados de lado. Pode-se
atribuir ao líder da equipe de revisão técnica a tarefa de realizar esse acompanhamento.
Nem sempre uma auditoria irá garantir que o produto (como uma aplicação, por
exemplo) está totalmente livre de bugs. Eventualmente, podem ainda existir ajustes a
serem feitos, como manutenções adaptativas, ajustes de ortografia ou no esquema de
cores acordado com o cliente. Todavia, esses problemas não são considerados erros
que impedirão o usuário final de utilizar o sistema construído, o que não configura um
impedimento para a entrega do produto e finalização do projeto.
76
Acadêmico, neste tema de aprendizagem abordamos a importância de planejar
e implementar um ciclo de auditoria ao longo do andamento de projetos, com o objetivo
de acompanhar se o planejado está, de fato, sendo executado. Também foram explicados
os princípios básicos que o auditor deverá seguir, como a ética, coleta de evidências e
imparcialidade.
77
LEITURA
COMPLEMENTAR
A IMPORTÂNCIA DO GERENCIAMENTO DE CONFIGURAÇÃO PARA O CICLO DE
VIDA DO SOFTWARE: UM ESTUDO DE CASO BASEADO NAS DIRETRIZES DA
ENGENHARIA DE SOFTWARE
1 INTRODUÇÃO
78
2 GERENCIAMENTO DE PROJETOS DE SOFTWARE
79
Figura 1 – Fluxo do processo Scrum
[...]
80
2.1.1 ISO 9000/9001 e CMMI
81
Figura 3 – Os cinco níveis de maturidade do CMMI
[...]
82
gerenciamento de alterações; facilitação em versionamento; qualidade do produto. Já
na perspectiva do desenvolvimento, engloba três sistemas: controle de modificações,
controle de versões e gerenciamento de construção.
[...]
4 RESULTADOS E DISCUSSÃO
83
Quando uma empresa insere o gerenciamento de configuração em seu
processo, mostra-se interessada em manter a qualidade de seu portfólio e ter uma
organização e controle como algo essencial, fazendo parte de sua identidade. Para o
Guia PMBoK (PROJECT MANAGEMENT INSTITUTE, 2017), a qualidade traduz o plano
de gerenciamento dela com atividades que incluam a política de qualidade no projeto
em si, assim, facilitando a identificação de causas da má qualidade e melhorando o
cumprimento dos objetivos.
[...]
84
RESUMO DO TÓPICO 3
Neste tópico, você aprendeu:
85
AUTOATIVIDADE
1 Um processo de auditoria tem o objetivo de avaliar um processo, evento ou
aplicação para garantir que os requisitos implementados estão apresentando um
comportamento coerente com o desejado. Para se iniciar um ciclo de auditoria, o
auditor deverá realizar diversas etapas preliminares. Sobre as etapas iniciais para a
execução de um ciclo de auditoria, assinale a alternativa CORRETA:
86
( ) Uma auditoria deverá ter as etapas de planejamento, entrevistas de auditoria e
elaboração de relatório final.
( ) Os ciclos de auditoria finalizam, para um projeto específico, quando os pontos
apontados como correções e melhorias forem devidamente implementados.
( ) Um processo de auditoria deverá seguir uma metodologia condizente com o atual
estado do produto ou serviço que será auditado.
a) ( ) V – F – F.
b) ( ) V – V – V.
c) ( ) F – V – F.
d) ( ) F – F – V.
4 Técnicas de auditoria são especialmente úteis para cada situação em que o auditor
se deparar em sua vida profissional. Dessa forma, existem técnicas, especialmente,
voltadas para a análise de sistemas da informação e para cada propósito das partes
interessadas e o estado atual da aplicação que será analisada. Disserte sobre a técnica
de simulação paralela, apresentando quais os cenários mais indicados para utilização
dessa técnica e qual a vantagem para a execução dos testes nas funcionalidades do
sistema.
5 Existem diferentes situações nas quais um relatório de auditoria pode ser emitido,
sem esperar pela finalização do ciclo de auditoria. Nesse contexto, disserte sobre
quais as situações passíveis de emissão de relatórios parciais de auditoria.
87
REFERÊNCIAS
BAHAMDAIN, S. S.; ALKAZEMI, B. Y. Toward a Reference Model for Adopting Software
Continuous Delivery: a Practical Approach. J. Software Eng., [s. l.], v. 12, n. 1, p. 12-19,
2018.
CAROLI, P. Lean inception: como alinhar pessoas e construir o produto certo. 1. ed.
Atualizada. São Paulo: Editora Caroli, 2018.
HUMBLE, J.; FARLEY, D. Entrega Contínua: como entregar software de forma rápida
e confiável. Porto Alegre: Bookman, 2014.
88
MAXIMIANO, A. C. A.; VERONEZE, F. Gestão de Projetos – Preditiva, ágil e estratégica.
6. ed. Barueri: Atlas, 2022.
89
90
UNIDADE 2 —
TÉCNICAS PARA O
GERENCIAMENTO DE
PROJETOS E CONFIGURAÇÕES
OBJETIVOS DE APRENDIZAGEM
A partir do estudo desta unidade, você deverá ser capaz de:
PLANO DE ESTUDOS
A cada tópico desta unidade você encontrará autoatividades com o objetivo de
reforçar o conteúdo apresentado.
CHAMADA
Preparado para ampliar seus conhecimentos? Respire e vamos em frente! Procure
um ambiente que facilite a concentração, assim absorverá melhor as informações.
91
CONFIRA
A TRILHA DA
UNIDADE 2!
Acesse o
QR Code abaixo:
92
UNIDADE 2 TÓPICO 1 —
GESTÃO DE PROJETOS PREDITIVA
1 INTRODUÇÃO
Segundo Pressman (2016), Sommerville (2011), Maximiano e Veroneze (2022), o
método de Gestão de Projetos Preditivo irá focar na fase do planejamento detalhado de
todas as nuances do projeto, antes que este se inicie.
INTERESSANTE
Segundo PMI (2009), são investidos por ano cerca de US$ 12 trilhões em
projetos mundialmente, isso equivale a 25% do PIB mundial.
2 GESTÃO DE ENTREGA
Segundo Sommerville (2011), ao se iniciar um novo projeto, um produto deverá
ser contemplado como resultado. Este produto é conhecido como entregável do projeto
e será o foco de todo trabalho que será desenvolvido pela equipe que trabalhará no
projeto, sendo construído etapa por etapa até sua finalização.
94
2.1 GESTÃO DO ESCOPO
Segundo Fleming e Koppelman (2005), a definição do escopo é a etapa de maior
importância para o sucesso de qualquer tipo de projeto. Tendo em vista que será a partir
de sua delimitação que todas as outras etapas de planejamento irão se basear, como o
cronograma, recursos necessários, dentre outras variáveis.
De acordo com Camargo (2007), o nível mais alto de abstração está nas primeiras
etapas do projeto, dessa forma é preciso maior empenho para o entendimento, por
causa da dinâmica complexa que ele apresenta.
Pressman (2016) afirma que tudo aquilo que não estiver previsto como
entregável ao final do projeto, não poderá ser inserido no planejamento após o projeto
ter sido iniciado.
INTERESSANTE
Sutherland (2016) afirma que, em metodologias ágeis, porém, é possível realizar
ajustes no escopo inicialmente definido, como a alteração na priorização
das funcionalidades que serão implementadas, conforme a necessidade do
cliente.
Quando nos referimos ao produto que será elaborado pelo projeto, seu escopo
estará se referindo às necessidades que serão entregues pela aplicação, ou seja, aos
requisitos funcionais e não funcionais que deverão constar no produto resultante.
95
IMPORTANTE
Zasa e Pellizzoni (2021) explicam que é perfeitamente possível utilizar dos
métodos preditivos em situações que as organizações não pertencem a área
de desenvolvimento de softwares, uma vez que as demais áreas geralmente já
praticam, de forma consolidada, projetos mais tradicionais.
ATENÇÃO
Wysocki, Beck e Thomas (2014), afirmam que, quando se tratam de projetos
criativos e inovadores, tais como projetos de pesquisa, de desenvolvimento
de novos produtos ou mesmo de melhoria de processos, a abordagem ágil de
gerenciamento de projetos seria a mais adequada.
96
A Figura 1 apresenta um exemplo de entregáveis que poderão compor o escopo
de um projeto. Além da entrega do produto que será construído, o escopo do projeto
poderá englobar eventuais necessidades de treinamentos, elaboração de manuais de
utilização do sistema ou serviço, além de quaisquer outros documentos necessários
para que o projeto tenha seu estado considerado encerrado.
ATENÇÃO
Segundo Maximiano e Veroneze (2022), é importante frisar a diferença entre
o escopo do produto e o escopo do projeto. Enquanto o primeiro irá refletir,
apenas, os limites das funcionalidades do produto que deverá ser construído
pelo projeto em andamento, o segundo irá englobar todos os entregáveis do
projeto, que vão além do produto pronto.
etc.)
97
(englobando questões de performance, segurança, auditoria, sistemas operacionais
e eventuais aplicações com as quais o software deverá ter integração, dentre outras
questões que estarão representando os requisitos não funcionais).
ATENÇÃO
O escopo do projeto engloba o escopo do produto, porém o inverso não
é verdadeiro, já que o escopo do projeto deverá englobar outros tipos de
informação, além apenas dos requisitos funcionais e não funcionais da
aplicação.
Uma citação importante sobre a gestão do escopo no método preditivo pode ser
encontrada no livro Project Management: a systems approach to planning, scheduling,
and controlling em que PMI (2013 apud MAIA, 2017, p. 2) escreve: "a gestão do escopo
é a parte mais importante da gestão de projetos, pois é o processo que garante que o
projeto inclua apenas o trabalho necessário para alcançar seus objetivos".
O primeiro ponto de atenção que deve ser definido para o escopo de um projeto
é o objetivo geral do projeto. Isso inclui a definição clara dos resultados esperados e
dos entregáveis do projeto. É importante que todas as partes interessadas concordem
com essas definições para garantir que todos estejam alinhados com o objetivo geral
do projeto.
Segundo Lewis (2005), a primeira coisa que deve ser definida em um projeto
é o seu escopo. Sem um escopo claro, não é possível saber o que é necessário para
completar o projeto com sucesso. É importante utilizar linguagem clara e objetiva
através do verbo transitivo e direto no escopo do projeto, para evitar ambiguidades e
garantir que todos estejam alinhados quanto aos objetivos e entregáveis do projeto.
98
Quadro 1 – Exemplo de descrição do escopo do projeto
Essa declaração servirá de norte para que as etapas do projeto consigam ser
elaboradas e acompanhadas da melhor forma, sempre buscando a meta final do projeto:
a concretização do produto inicialmente previsto, que irá atender às necessidades das
partes interessadas, agregando o valor esperado e, consequentemente, obtendo a
satisfação do cliente.
Segundo Larson e Gray (2016), o detalhamento do escopo do produto, por sua vez,
irá ter o objetivo de destrinchar os requisitos funcionais e não funcionais do entregável
principal, de modo a se atingir um nível micro de cada funcionalidade, capaz de ser
implementado pelos membros da equipe sem que hajam dúvidas no entendimento do
que deve ser feito e de como deve ser construído.
99
Figura 3 – Exemplo de um WBS
INTERESSANTE
Segundo Pressman (2016), o diagrama Estrutura Analítica do Projeto (EAP)
também poderá incluir informações sobre o custo e a duração de cada tarefa,
além de poder ser construído levando em consideração a fase do ciclo de
vida do produto que estará sendo desenvolvido pelo projeto em questão ou
o próprio produto.
100
Segundo Maximiano e Veroneze (2022), quando se considera o critério do
produto para construção do diagrama EAP, deve-se listar todos os produtos que
deverão ser entregues ao final do projeto. Neste cenário, podemos identificar ao menos
três categorias de entregáveis:
Conforme apresentado por Larson e Gray (2016), quando o critério utilizado para
construção do diagrama EAP é o produto, é possível listar, ao menos, dois entregáveis:
• o produto em si;
• o processo produtivo para sua construção.
ESTUDOS FUTUROS
Acadêmico, estudaremos, ainda nesta unidade de ensino, a aplicação do
diagrama EAP para a identificação e análise dos riscos envolvidos em um
projeto.
101
realizados no prazo com qualidade garantida, atendendo a todo o escopo solicitado e
com o custo dentro do previsto (KNOB, 2007).
102
Quadro 2 – Exemplo de tabela de precedência para as atividades do projeto da festa de aniversário
ATENÇÃO
Devemos perceber que cada atividade terá sua duração estimada especificada,
assim como a definição das atividades precedentes.
103
ATENÇÃO
Segundo Pressman (2016), um nó de um diagrama de precedência representa
uma atividade, ou tarefa, que deverá ser executada pelo time que está
envolvido no projeto, de modo a conseguir alcançar o objetivo esperado para
o projeto em andamento.
ATENÇÃO
Segundo Sommerville (2011), é importante mencionar que a elaboração do
diagrama de precedências deverá acontecer simultaneamente à elaboração
da tabela de precedências, tendo em vista que o diagrama irá representar
visualmente a interligação entre as tarefas, mapeada na tabela. Caso alguma
falha seja detectada, a partir do diagrama visual, a tabela poderá ser ajustada
e vice-versa.
104
Então, todas as tarefas que deverão acontecer, do início ao fim do projeto,
deverão estar listadas neste diagrama. Quando adicionamos os tempos estimados de
duração de cada atividade nos nós do diagrama de precedência, temos a capacidade
de calcular o tempo estimado da duração do projeto, a partir das somas dos tempos de
cada atividade.
Pressman (2016) afirma que o caminho de volta, caso todos os prazos estimados
sejam cumpridos rigorosamente, seria o menor prazo possível de início e finalização do
projeto.
105
A partir da análise da Figura 5, temos os prazos de duração de cada tarefa,
de modo que a tarefa A será a primeira do projeto a ser executada, iniciando no dia
1 e finalizando no décimo dia do andamento do projeto. A partir de então, no décimo
primeiro dia, a tarefa B será iniciada, seguindo até o décimo quinto dia (duração de 5
dias). A última tarefa, nomeada como E, será concluída apenas no quadragésimo terceiro
dia, o que irá indicar que o projeto como um todo terá duração de quarenta e três dias.
ATENÇÃO
Devemos observar que o tempo de duração de cada tarefa deverá ser
considerado para o cálculo do caminho de volta. A duração de uma tarefa
independe do dia estimado para seu início e fim, ou seja, é possível estimar
uma quantidade de dias para uma tarefa (período de execução estimado) e,
de modo independente, uma data específica na qual se pretende iniciar a
tarefa, dentro do cronograma do projeto.
106
Segundo Sommerville (2011), um período de folga entre tarefas poderá existir,
representando dias nos quais não existem tarefas para serem iniciadas. Observemos
que a data da finalização deverá ser sempre considerada primeiro do que a data de
inicialização. A data de finalização de uma tarefa deverá sempre considerar a data de
início da tarefa anterior.
Maximiano e Veroneze (2022) afirmam que, para saber o tempo de folga entre
tarefas, quando se utiliza o caminho de volta, deve-se calcular a diferença entre as
datas do caminho de volta – caminho de ida, ou seja, a tarefa E, pelo caminho de ida,
estaria iniciando no dia 41 (ES) e finalizando no dia 43 (EF), e, pelo cálculo do caminho
de volta, seu início se daria no dia 41 (LS) e sua finalização no dia 43 (LF). Portanto, a
folga da tarefa E será F = LS – ES = 41 – 41 = 0 (sem folgas), assim se repetindo para as
demais tarefas do projeto.
ATENÇÃO
Quando os prazos de início tardio e antecipado de uma tarefa coincidirem,
não existirá folga para a execução da tarefa.
Após o cálculo dos prazos do projeto tiver sido finalizado, é necessário que
o cronograma do projeto seja elaborado, apresentando a distribuição das atividades
ao longo do tempo, com as indicações dos respectivos marcos de entrega, conforme
explicado pelo mesmo autor.
IMPORTANTE
É importante que o planejamento leve em consideração as datas importantes
do calendário, como feriados, finais de semana e eventuais períodos de férias
dos membros da equipe, já que são fatos que irão impactar na execução do
projeto.
107
No próximo subtema, apresentaremos o processo de Gestão do Cronograma,
próxima etapa após a finalização da definição do escopo do projeto.
Segundo Larson e Gray (2016), um dos fatores críticos do sucesso do projeto está
em se gerir com eficiência o cronograma inicialmente planejado, identificando a tempo
os possíveis desvios dos objetivos e corrigindo-os, de modo a manter o cronograma
sem atrasos. Eventuais descumprimentos do que foi planejado inicialmente poderão
resultar em abandono do projeto, consequência do alto custo que este poderá atingir,
estourando o orçamento previsto.
DICA
É possível, nesta etapa, utilizar softwares específicos para a elaboração do
cronograma, como o Microsoft Project, além de ferramentas gratuitas,
como a SmartSheet (https://pt.smartsheet.com/), OpenProj (https://www.
openproject.org/) e o Gantt Project (www.ganttproject.biz).
• Projeto com data fixa – Quando o projeto tem datas de início ou fim (ou ambas) fixas
e o seu planejamento deverá acontecer do fim para o começo. Um bom exemplo são
projetos voltados para uma determinada data comemorativa do ano (como Páscoa
ou Natal), que possui uma data fixa. Caso o projeto atrase a sua conclusão, neste
cenário, perderá o sentido.
• Projeto que deverá ter sua estimativa do início para o futuro – Neste caso, um
novo projeto deverá ser estimado, obtendo-se uma data de conclusão com base
nas estimativas de cada tarefa, seguindo a ordem de acontecimentos e precedência
entre elas.
108
Todo projeto, quando planejado através de metodologias preditivas ou ágeis,
precisará ter seus custos calculados, de modo a não extrapolar um orçamento
previamente disponível, que os patrocinadores estarão dispostos a arcar. Sendo assim,
no subtema 4, discorreremos sobre a gestão dos custos e orçamento de um projeto.
Segundo Sommerville (2011), todo projeto deverá utilizar uma lista específica
de recursos que servirão de base para o seu desenvolvimento. A partir dos recursos
necessários para o desenvolvimento de um projeto, suas respectivas quantidades e
tempos de alocação, o orçamento do projeto será calculado.
109
O Guia PMBOK (PMI, 2017) e Newell (2002) listam os recursos necessários para
executar uma tarefa de um projeto que pode incluir os seguintes elementos, embora
isso possa variar de acordo com a natureza da tarefa:
IMPORTANTE
Segundo Xavier et al. (2005) e Rosenau (1996), as três grandezas – tempo,
recurso e escopo – formam a triple constraint (restrição tripla) de um
projeto e são essenciais para o sucesso. De acordo com Valle et al. (2010), é
imprescindível equilibrar essas três restrições.
Segundo Pressman (2016), uma vez que se determine qual será a métrica
utilizada para cálculo dos custos de cada recurso que será utilizado pelo projeto, o custo
total com cada recurso poderá ser obtido calculando o valor de uma unidade de tempo
de cada recurso em relação ao tempo total que o recurso será necessário ao projeto.
110
úteis, com duração de 8 horas ao dia de trabalho, esse profissional passará 344 horas
alocado no projeto, tendo custo total de R$ 34.400,00 ao final do projeto.
INTERESSANTE
Segundo Chaves & Funes (2015), um estudo publicado na revista Harvard
Business Review afirma que a predição no cálculo do orçamento global de
um projeto pode ter um nível de acerto em cerca de 50%, se comparado aos
métodos tradicionais, permitindo que decisões financeiras sejam tomadas de
uma melhor forma, o que aumentará a eficiência do gasto do orçamento.
O Custo total da equipe de desenvolvimento será, então, a soma dos custos totais
de cada perfil. Devermos fazer o mesmo com os demais recursos que serão necessários
para o projeto. Segundo James (2006), dessa forma, é construída a curva de custos do
projeto, que para o método preditivo é uma representação gráfica da relação entre os
custos de um projeto e a quantidade de recursos utilizados para realizá-lo. Ela pode ser
utilizada para avaliar a eficiência econômica de um projeto e para tomar decisões sobre
alocação de recursos.
112
A Figura 6 apresenta um exemplo de utilização de gráfico para apresentar a
curva do orçamento de um projeto. O intuito deste formato de apresentação é detalhar,
mensalmente, os custos com os itens que compõem o orçamento do projeto. Os
custos poderão variar conforme a quantidade de dias úteis trabalhados pela equipe,
no exemplo apresentado, ou por conta de horas extras trabalhadas pelos membros da
equipe.
ATENÇÃO
O custo estimado do projeto não irá representar o valor que será cobrado ao
cliente (ou partes interessadas) para a execução do projeto. Esse custo estará
embutido no valor cobrado, mas outras variáveis poderão ser analisadas e
incorporadas no valor acordado com o cliente para pagamento.
113
Acadêmico, no Subtema 5 será apresentado com maiores detalhes como a
gestão da qualidade deverá ser feita, além de apresentarmos sua importância para o
sucesso do projeto.
5 GESTÃO DA QUALIDADE
Segundo Sommerville (2011), a gestão da qualidade é fundamental no método
preditivo, pois permite identificar e corrigir problemas antes que eles causem impactos
negativos nos resultados. Segundo Evans e Lindsay (2015), a implementação de uma
abordagem de gestão da qualidade baseada em dados pode aumentar significativamente
a eficiência e a efetividade do processo.
114
Figura 7 – Pilares essenciais da gestão de qualidade
115
PMI (2009) afirma que esses pilares são amplamente aceitos e discutidos na
literatura da área de gerenciamento de projetos, como por exemplo, no guia PMBOK
(Project Management Body of Knowledge) da PMI (Project Management Institute).
Larson e Gray (2016) frisam que a qualidade do projeto deverá ser analisada
com base em indicadores que irão mensurar se as especificações ditadas pelo cliente
estarão no caminho de serem cumpridas ou não. Itens como o desempenho desejado
do produto, facilidade de uso e de manutenção são exemplos desses critérios, tidos
como critérios de sucesso do projeto.
INTERESSANTE
Podem compor os critérios de sucesso de um projeto a contratação de
fornecedores de matérias primas que estejam dentro dos parâmetros de
qualidade esperados pela Empresa, a capacidade de atender a um pedido
dentro do prazo esperado, o material fornecido estar dentro de parâmetros
específicos para sustentabilidade, dentre outros fatores.
116
Imoniana (2016) ainda afirma que todo processo que tenha como finalidade
a averiguação entre o que foi planejado e o que está sendo executado no projeto
ou produto é tido como uma forma de verificação da qualidade do que está sendo
desenvolvido. Segundo Maximiano e Veroneze (2022), o controle da qualidade de um
projeto ou produto deve se basear em itens, como os padrões de qualidade desejados
para o produto, serviço ou processos desenvolvidos, os procedimentos detalhados
para executar um determinado processo (como implantação da aplicação em ambiente
de produção), de modo a manter a previsibilidade do processo e evitar surpresas
não planejadas, a contratação de pessoas com o perfil técnico necessário para o
desenvolvimento do projeto, a conscientização da equipe que a qualidade depende do
trabalho de todos e a realização de testes de maneira suficiente.
ESTUDOS FUTUROS
Acadêmico, abordaremos os tipos de testes existentes e como estes podem
ser executados no processo de Gerenciamento de Projetos e Configuração
na Unidade 3 desta disciplina.
117
Quadro 6 – Exemplo de Plano de Gestão da Qualidade
Hackman (2002) afirma que a equipe é uma peça fundamental para o sucesso
de um projeto de método preditivo. Como afirma, em seu livro Leading Teams: Setting
the Stage for Great Performances, sem uma equipe coesa e eficaz, o projeto corre o
risco de fracassar, independentemente da qualidade do planejamento e da tecnologia
utilizada.
6 GESTÃO DA EQUIPE
É importante que os membros da equipe tenham a consciência que estão, de
fato, trabalhando em equipe. Pode parecer algo óbvio, mas nem sempre é. A consciência
que o sucesso de um é o sucesso de todos e o fracasso de um será igualmente atribuído
a todos é fundamental para que os membros dediquem seus esforços para atingir o
objetivo.
118
Quando se remete ao trabalho da equipe, eventuais impedimentos técnicos
precisarão ser compartilhados entre todos os membros, sendo a colaboração entre os
membros uma questão fundamental para o trabalho atingir o êxito esperado.
Sommerville (2011) atenta para o fato de que a motivação é outro ponto de atenção
fundamental, quando se está trabalhando em equipe, já que membros motivados irão
desempenhar suas funções da melhor forma, em prol do objetivo necessário, enquanto
membros desmotivados ou insatisfeitos não terão o mesmo empenho.
De acordo com Max Wideman (2021) em "A Guide to the Project Management
Body of Knowledge" (The PMBOK® Guide) a formação de equipes eficazes é uma das
práticas-chave da gestão de projetos bem-sucedidos. Portanto, é importante investir
na formação de uma equipe competente e motivada para alcançar os objetivos do
projeto de método preditivo.
ATENÇÃO
O sucesso de uma equipe poderá ser mensurado pela qualidade do
trabalho desempenhado por seus membros (objetivo do projeto) e pela
sinergia entre seus membros. É preciso que os membros da equipe tenham
confiança mútua, boa comunicação, que os conflitos sejam resolvidos e não
ocorram disputas de poder.
INTERESSANTE
Antes da ocorrência da pandemia do Covid–19, poucas eram as equipes
que não estavam localizadas no mesmo espaço físico, já que se acreditava
que a proximidade física entre os membros era um fator de sucesso para
o projeto.
119
a infraestrutura básica para desempenhar suas funções (computador ou notebook e
conexão com a Internet).
Segundo Larson e Gray (2016), uma equipe, quando alocada para trabalhar em
um projeto, terá a característica de ser temporária, ou seja, enquanto durar o projeto.
Então, muitas vezes, a escolha de membros que já trabalharam juntos em outros projetos
poderá facilitar o trabalho da nova equipe montada, já que há uma curva de adaptação
entre a forma de trabalho dos diferentes membros.
A premissa para a escolha dos membros da nova equipe que será montada
deverá ser a capacitação e experiência técnica de cada futuro membro, além de
experiências prévias de trabalho com outros membros que serão pleiteados para
trabalharem em conjunto.
INTERESSANTE
Por tempos se acreditou que adicionar novos membros em uma equipe que
está com risco de atraso na entrega do produto e finalização do projeto era
uma forma de conseguir entregar o projeto dentro do prazo inicialmente
estimado. Esta premissa, por sua vez, não se mostra verdadeira, já que
pessoas que nunca trabalharam juntas, por mais conhecimento técnico
que tenham, podem não conseguir o mesmo desempenho apresentado
em outros projetos.
120
indiretos, aqueles que afetam ou são afetados pelo projeto, mas não estão diretamente
envolvidos nas atividades.
Caso o projeto que será iniciado seja visto como algo estratégico para a
Organização, esta poderá dedicar mais recursos e esforços para a concretização do
projeto, com a formação de equipes maiores e dedicadas. Se o projeto for de menor
porte, mas não menos importante e sem intenções futuras de manutenção de contrato
com o cliente interessado, a equipe poderá ser menor e formada por colaboradores já
presentes no quadro de funcionários da Empresa.
De acordo com o estudo de Hill e Jones (2001), podem existir três tipos de
configuração importância/tamanho do projeto versus Empresa:
121
ATENÇÃO
Segundo Kerzner (2017), para montar uma equipe, o gerente de projetos
deverá analisar qual o perfil necessário de membros para sua composição, que
pode compreender:
• conhecimento técnico;
• contexto organizacional;
• soft–skills para trabalhar em equipe (boa comunicação, saber cumprir prazos,
comprometimento com as tarefas realizadas, dentre outras características
pessoais).
Segundo PMI (2017), a Matriz RACI é uma ferramenta gerencial efetiva para
estabelecer as responsabilidades e as linhas de autoridade claras em projetos ou
processos empresariais. Ela é amplamente utilizada como uma abordagem simplificada
para garantir que todos os envolvidos estejam claramente conscientes de seus papéis
e responsabilidades.
Esta matriz tem por objetivo apresentar os papéis dos integrantes da equipe
e as tarefas que competem a cada papel. É importante que, na elaboração de uma
matriz de responsabilidades, sejam informados todos os papéis que irão compor a
equipe do projeto, direta ou indiretamente, seguindo do nome de cada colaborador que
irá desempenhar cada papel e, por último, as tarefas que devem ser elaboradas em cada
fase do projeto, com a responsabilidade de cada indivíduo.
122
Quadro 7 – Exemplo de matriz de responsabilidades
Levantamento de requisitos
Papel Colaborador
funcionais e não funcionais
Programador André I
Cliente Camila C
Analista de requisitos Flávia R
Fonte: adaptado de PMI (2017)
123
RESUMO DO TÓPICO 1
Neste tópico, você aprendeu:
• A Gestão das Atividades deve iniciar com a identificação e definição das tarefas do
projeto, seguindo da atribuição das responsabilidades para os membros do time,
assim como dos prazos necessários para execução de cada tarefa.
• Para garantir a sua realização, um plano de cronograma deve ser elaborado com
prazos e marcos, que deverão ser seguidos ao longo da execução do projeto.
Aprendemos técnicas que auxiliam na identificação de eventuais atrasos e
problemas no cronograma, sendo fundamental manter uma comunicação clara e
efetiva com todos os interessados no projeto.
124
AUTOATIVIDADE
1 Uma das principais características de um projeto são os seus entregáveis. São estes
artefatos que deverão ser mantidos ao longo de todas as fases do projeto. Sobre os
entregáveis de um projeto, assinale a alternativa CORRETA:
2 A definição do escopo de um projeto irá definir até que ponto o projeto deverá
ser executado, representando suas fronteiras. No gerenciamento de projetos, o
planejamento do escopo de um projeto deverá englobar todas as ações necessárias
desde a etapa inicial do projeto até sua conclusão. Com base em seus conhecimentos
sobre o escopo do projeto e escopo do produto, analise as afirmativas a seguir:
3 O cronograma do projeto, assim como a identificação das atividades que deverão ser
executadas ao longo das etapas do projeto, são atividades que podem ser auxiliadas
por ferramentas visuais, como o diagrama EAP. Sobre a fase de gerenciamento do
cronograma e atividades de um projeto, classifique V para as sentenças verdadeiras
e F para as falsas:
125
( ) As atividades do projeto poderão ter sua identificação auxiliada pelo diagrama EAP,
assim como o cronograma, já que dependerá da sequenciação correta dessas
atividades.
a) ( ) V – F – F.
b) ( ) V – F – V.
c) ( ) F – V – V.
d) ( ) F – F – V.
5 O gerenciamento dos custos de um projeto é algo crucial para o sucesso deste, tendo
em vista que uma extrapolação desse planejamento poderá acarretar a interrupção
abrupta do projeto. Existem diferentes variáveis capazes de influenciar o planejamento
dos custos de um projeto, sendo a mão de obra qualificada um deles. Com base no
apresentado, sobre as variáveis que podem impactar no cálculo e gerenciamento dos
custos de um projeto, disserte sobre a importância da variável recursos humanos no
planejamento e controle dos custos de um projeto.
126
UNIDADE 2 TÓPICO 2 -
GESTÃO ÁGIL DE PROJETOS
1 INTRODUÇÃO
Segundo PMI (2018), a gestão ágil de projetos é um enfoque iterativo e
incremental para a gestão de projetos que valoriza a flexibilidade, a colaboração e a
entrega frequente de valor. As metodologias tradicionais para desenvolvimento de
projetos tinham o ônus de necessitarem de todos os recursos, escopo e funcionalidades
bem definidas antes do início do projeto, o que tornava o projeto “engessado”, sem a
possibilidade de alterações ao longo do processo de execução, já que uma alteração
poderia inviabilizar todo o planejamento e, consequentemente, inviabilizar o projeto.
127
No próximo subtema, apresentaremos o Manifesto Ágil, a partir do qual todas as
metodologias ágeis foram originadas.
Segundo Beck et al. (2001, s. p.), o Manifesto Ágil surgiu, com base nestes quatro
princípios listados:
3 METODOLOGIAS ÁGEIS
PMI (2018) afirma que as metodologias ágeis mais populares incluem Scrum,
Kanban, XP (Extreme Programming) e Lean. Cada uma delas se concentra em diferentes
aspectos da gestão de projetos, como planejamento, controle de qualidade e gestão de
equipe. No subtema 3.1 apresentaremos a metodologia SCRUM.
128
3.1 Scrum
“Scrum é um framework ágil para gestão de projetos complexos que ajuda
equipes a entregar valor de forma eficiente e adaptativa." (SCRUM GUIDE, 2021, s. p.).
É um framework para gerenciamento de projetos de software desenvolvido por Ken
Schwaber e Jeff Sutherland.
129
• Sprint – uma Sprint é um período fixo de tempo durante o qual o time Scrum
trabalha para transformar itens do product backlog em incrementos entregáveis.
ESTUDOS FUTUROS
Abordaremos com maiores detalhes os papéis, as cerimônias e o fluxo de
trabalho de um time ágil, nos próximos subtemas. E o método Kanban com
mais detalhes na Unidade 3 desta disciplina.
3.3 LEAN
Segundo Caroli (2020), a metodologia Lean, inicialmente criada a partir do
modelo de fábrica Toyota, é uma abordagem de gerenciamento de processos que se
concentra em maximizar o valor para o cliente e minimizar desperdícios. Apesar de
130
sua origem ter sido na indústria automotiva, tem sido amplamente aplicada em outras
indústrias, incluindo software. A metodologia Lean se baseia em cinco princípios
principais: identificar valor, mapear o fluxo de valor, criar fluxo, estreitar o ciclo e
estabelecer puxadores.
DICA
Além das metodologias ágeis abordadas, existem outras que podem ser
utilizadas em equipes de desenvolvimento. Para conhecer sobre as demais
metodologias, recomendamos assistir ao vídeo: Entenda o que são os métodos
ágeis em 5 minutos [Decifrando Agile 2]. Acesse em: https://www.youtube.com/
watch?v=ds_FydzsuO8.
131
Além da adoção de metodologias ágeis, é preciso que o Gerente de Projeto
conheça sobre Gestão das atividades ágeis, que será abordada no próximo subtema.
DICA
Uma das principais referências sobre o assunto é o livro Agile Estimating and
Planning de Mike Cohn.
Fonte: COHN, M. Agile Estimating and Planning. Rio de Janeiro: Prentice Hall,
2005.
ESTUDOS FUTUROS
Abordaremos, com detalhes, a dinâmica de uma equipe que adota metodologias
ágeis, ainda nesta unidade. Neste momento, será explicado como uma equipe
poderá definir quais tarefas irão ser comportadas em cada sprint, de acordo
com o grau de complexidade de cada tarefa.
132
2.3.1 Papéis dos membros
Segundo Provinciatto e Caroli (2020), Sutherland (2016), em um time de
desenvolvimento Scrum, existem quatro papéis básicos a serem desempenhados:
133
Figura 8 – Resumo do ciclo de desenvolvimento SCRUM
ESTUDOS FUTUROS
Aprenderemos, nos próximos subtemas, a importância de se adotar tempos
fixos (timeboxes) para cada cerimônia ágil, com o intuito de focar o máximo
de tempo nas tarefas de construção do produto do que na elaboração de
documentações complexas.
“[...] o MVP é a versão mais simples de um produto que pode ser disponibilizada
para a validação de um pequeno conjunto de hipóteses sobre o negócio” (PROVINCIATTO,
M.; CAROLI, p., 2020). A partir desta afirmativa, temos o MVP como um produto que
134
poderá ser construído para uso, em ambiente produtivo, pelos usuários finais para sua
validação e, caso a ideia que deu origem ao produto seja validada, mais funcionalidades
poderão ser incorporadas ao produto, ao longo do tempo.
INTERESSANTE
Segundo Provinciatto e Caroli (2020), uma outra aplicação válida para
construção de um MVP é a limitação do orçamento disponível para o projeto.
Contudo, para que qualquer projeto possa ser iniciado, mesmo que com um
conjunto básico de funcionalidades, é imprescindível que seja elaborado o product
backlog, ou seja, as funcionalidades necessárias para o produto, conforme explicaremos
no próximo subtema.
135
Provinciatto e Caroli (2020) explicam que o tempo estimado para cada atividade
é acordado antes do início do projeto, não podendo ser modificado enquanto o projeto
estiver em andamento. Então, por exemplo, um ciclo de trabalho deverá ter o prazo
mínimo de uma semana e máximo de quatro semanas de trabalho. Segundo Sabbagh
(2013), uma das principais características de uma equipe ágil é ser autogerenciável.
IMPORTANTE
De acordo com Sutherland (2016), não existe, em equipes que adotam as
metodologias ágeis, o papel do líder técnico. Todos os membros irão possuir a
mesma autonomia, colaborando entre si para resolver eventuais impedimentos
técnicos. O papel do líder técnico, ou líder de projetos, será substituído por
outros papéis inerentes à metodologia ágil, que são o Product Owner (PO) e o
Scrum Master (SM).
Segundo Sabbagh (2013), para que os membros de um time ágil possam iniciar
o processo de implementação das tarefas, é preciso que sejam definidas as histórias
de usuário, que abordaremos no próximo subtema.
136
2.3.5 Histórias do Usuário
Scrum Alliance (2022), descreve que na metodologia ágil, as tarefas são
descritas como "histórias do usuário". Estas histórias descrevem o objetivo ou o valor que
o usuário espera obter com a realização da tarefa. Elas são escritas de forma concisa e
clara, utilizando um formato padrão, como apresentado no Quadro 8.
137
INTERESSANTE
Segundo Anderson (2011), existe o método de gerenciamento de projetos
Kanban (com K maiúsculo) e a ferramenta kanban (com K minúsculo). A diferença
entre os dois é que o método Kanban terá suas regras e particularidades,
além de utilizar a ferramenta kanban como forma visual de apresentação do
andamento do projeto.
138
disponíveis no backlog do produto seja extraído para o refinamento e, após a conclusão
de todos os detalhes necessários para que a equipe de desenvolvimento tenha
capacidade de iniciar a codificação das tarefas, esse conjunto refinado irá compor o que
conhecemos como backlog da sprint.
ATENÇÃO
O intuito do quadro kanban, de acordo com Anderson (2011), é apresentar, em
tempo real, o andamento das tarefas para qualquer interessado que observe o
quadro. Portanto, é importante que os membros mantenham o status de cada
tarefa atualizado, efetuando a migração das tarefas entre as abas no exato
momento que cada fase finaliza.
ESTUDOS FUTUROS
Abordaremos as ferramentas voltadas para gerenciamento de projetos na
Unidade 3 desta disciplina.
139
Acadêmico, abordaremos, no próximo subtema, a importância de se definir
prazos limites (timeboxes) para a realização das tarefas de um time ágil.
140
3.2 A DINÂMICA DE UMA EQUIPE ÁGIL
Segundo Sutherland (2016) e Provinciatto e Caroli (2020), uma equipe ágil irá
focar seu trabalho nos requisitos que mais agregam valor ao negócio do cliente, fazendo
entregas periódicas a cada finalização de sprint. O objetivo, com essas entregas, é ter
feedback constante das partes interessadas de modo que eventuais desvios no objetivo
do projeto poderão ser detectados e corrigidos a tempo, sem prejuízo ao projeto como
um todo.
DICA
Para conhecer como funciona a sequência de Fibonacci, recomendamos
assistir ao vídeo: https://www.youtube.com/watch?v=cHZWZhHQq4g.
141
Segundo Anderson (2011), quanto maior o valor de cada tarefa, maior será seu
tempo de execução, pois entende-se que sua complexidade será maior. A equipe deve,
então, com base na produtividade de ciclos passados do projeto, decidir quantas tarefas
será possível executar no próximo ciclo, seguindo o número de pontos de história
(story points) que foi possível executar em sprints anteriores. Os pontos de história são
representados pelo número que foi atribuído à cada tarefa, na atividade de planejamento,
conforme explicado no subtema anterior.
IMPORTANTE
É comum que, em projetos recém iniciados nos primeiros ciclos de trabalho,
a equipe erre a estimativa de quantas tarefas será capaz de trabalhar e
entregar. Entretanto, com o passar dos ciclos e com o maior entrosamento
entre os membros do time e conhecimento do sistema que será construído,
as estimativas vão ficando mais certeiras. Errar nas primeiras sprints não é,
contudo, um indicativo que o tempo acordado para duração da sprint deverá
ser maior.
142
Eventuais ajustes poderão resultar da cerimônia de sprint review, tendo o time
de desenvolvimento a responsabilidade para realizar esses ajustes e disponibilizar
para validação do cliente, em ambiente apropriado para esta homologação.
Segundo Schwaber e Sutherland (2020) e Pereira, Torreão e Marcal (2007), a última
cerimônia de uma sprint, a ocorrer após a sprint review, é a sprint retrospective, ou
seja, a retrospectiva de tudo que aconteceu na sprint. Nesta cerimônia, os membros do
time devem expressar suas observações sobre tudo que deu certo e pontos a serem
melhorados para o próximo ciclo, garantindo, assim, a melhoria contínua do processo
de desenvolvimento do produto. Essa cerimônia deverá ter seu timebox máximo de
três horas para uma sprint com duração de quatro semanas, conforme dita. Ciclos com
durações menores devem realizar essa cerimônia mais breve, de forma proporcional.
143
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu:
• Existem diversas ferramentas de suporte aos times ágeis, como o método Kanban
e o quadro kanban, as Histórias de usuário e ferramentas de colaboração em tempo
real e rastreamento de bugs encontrados ao longo do ciclo de vida dos projetos.
144
AUTOATIVIDADE
1 As metodologias ágeis surgiram como uma alternativa ao desenvolvimento utilizando
metodologias tradicionais, também conhecidas como preditivas. Essa mudança de
paradigma beneficiou tanto os stakeholders quanto as equipes de desenvolvimento,
tendo em vista que o usuário terá contato com o produto sendo desenvolvido mais
vezes ao longo do tempo, assim como os membros da equipe de desenvolvimento
gastarão menos esforços construindo o que, de fato, irá satisfazer os interesses do
cliente. Sobre as metodologias ágeis, assinale a alternativa CORRETA:
2 O manifesto ágil surgiu com o intuito de definir normas para as metodologias ágeis.
Seus princípios devem, então, ser o fundamento de toda e qualquer metodologia ágil
que venha a ser desenvolvida. Apesar do nome, as metodologias ágeis não significam
uma maior velocidade no processo de desenvolvimento, mas sim que o produto certo
será entregue ao cliente, focando nas funcionalidades que mais agreguem valor ao
negócio. Com base no manifesto ágil e seus princípios, analise as sentenças a seguir:
145
( ) O MVP servirá para a validação de uma e, caso aprovada, evoluções possam ser
feitas de forma periódica.
( ) Quando se tem uma limitação no orçamento para construção de um produto,
sugere-se o desenvolvimento de um MVP.
( ) A construção do MVP é um estágio obrigatório para todas as metodologias ágeis.
a) ( ) V – F – F.
b) ( ) V – V – F.
c) ( ) F – V – F.
d) ( ) F – F – V.
146
UNIDADE 2 TÓPICO 3 - A
GERÊNCIA DE CONFIGURAÇÃO COMO
ESTRATÉGIA PARA O GERENCIAMENTO
DE UM PROJETO DE SOFTWARE
1 INTRODUÇÃO
Primeiramente, com base na literatura, precisamos definir o que é Gerência
de Configuração. Segundo Pressman (2016), é considerada uma estratégia vital para
o sucesso de um projeto de software, pois permite controlar e rastrear mudanças em
todo o ciclo de vida do projeto, garantindo a integridade e a consistência dos artefatos
produzidos. Já para Kerzner (2017), permite manter o projeto sob controle, assim como
garante a qualidade dos produtos entregues, o que aumenta a eficiência do time de
projetos.
147
Ainda, segundo o PMI (2017), a gestão estratégica de projetos envolve a
identificação e a seleção dos projetos mais estratégicos para a organização, bem como
a garantia de que eles sejam gerenciados de modo a alcançar seus objetivos de maneira
eficaz.
Esses são apenas alguns dos muitos fatores que podem influenciar a política
de negócios de uma empresa. É importante que as empresas avaliem cuidadosamente
todos os fatores relevantes, para garantir que sua estratégia de negócios seja bem-
sucedida e sustentável a longo prazo.
148
2.1 PILARES DA GESTÃO ESTRATÉGICA
Segundo Johnson, Scholes e Whittington (2017), a gestão estratégica se baseia
em quatro pilares básicos:
149
2.1.1 Matriz SWOT
Segundo Francischini e Francischini (2017), ainda durante a fase do
planejamento, uma análise das oportunidades de mercado e do ambiente, por meio
da elaboração de uma matriz SWOT, deverá ser levantada. Também se deve fazer uma
análise do objetivo pretendido com a estratégia a ser executada, definindo-se os marcos
a serem alcançados. Após todo esse processo inicial, a fase de execução irá, então, pôr
em prática tudo que foi planejado, seguindo-se da avaliação, para garantir que o que é
executado está dentro do devido planejamento.
DICA
Uma matriz SWOT procura identificar os pontos fortes e fracos de uma
empresa e seus concorrentes, buscando a melhor forma de explorar uma
oportunidade e calcular os eventuais riscos existentes no processo. Para saber
mais sobre esse assunto, é indicada a leitura do livro Planejamento estratégico,
indicadores e processos: uma integração necessária, do autor Cláudio José Müller.
Ferreira Junior (2020) define os marcos, que irão servir de balizadores, para que
o desempenho da meta a ser alcançada, pela gestão estratégica, possa ser medida,
conhecidos como Key Performance Indicator (KPI). Por meio desses indicadores,
é possível identificar eventuais desvios de objetivo, possibilitando realizar os ajustes
necessários para que as metas traçadas possam ser atingidas com êxito.
Dakheel et al. (2020) afirma que a fase de execução de uma estratégia irá
compreender o processo de implementação da tomada das decisões planejadas,
traçando o caminho até o objetivo pretendido. Ao longo desse caminho, eventuais
marcos (os KPIs) irão indicar se a estratégia planejada guia a organização para o resultado
esperado ou não. A avaliação desses marcos, à medida que são alcançados, traçará
novas estratégias, manter as já em andamento ou realizar os ajustes necessários para
que o objetivo pretendido seja alcançado.
150
IMPORTANTE
Um KPI, por si só, de acordo com Ferreira Junior (2020) e Francischini e
Francischini (2017), não será capaz de indicar o quão longe uma organização
está de atingir seus objetivos. Ele será apenas um marcador, um número, sendo
necessária a sua análise pela fase de avaliação. É apenas durante a avaliação
dos marcos atingidos e de quão distante se está do resultado esperado para
aquele marco específico, que eventuais medidas corretivas poderão ser
adotadas para que a execução consiga atingir o resultado esperado.
Pressman e Maxim (2021) afirmam que não basta apenas definir marcos e
acompanhar para que um projeto tenha sucesso. É preciso saber escolher o projeto
certo, entre as ideias disponíveis, para compor o portfólio da empresa – assunto que
será abordado a seguir.
Ideias para novos projetos podem partir tanto da alta cúpula da organização
(diretores, gerentes e demais cargos do alto escalão) quanto da necessidade de clientes,
dos próprios funcionários ou até da dinâmica do mercado, em relação aos concorrentes.
Sommerville (2011) afirma que a avaliação de um novo projeto, que pleiteia ser
implementado, dependerá de critérios que precisam ser bem definidos, para que um
correto alinhamento com o modelo de negócio da empresa. Esses critérios são:
Após escolher o projeto que deverá ser iniciado, a empresa deverá avaliar o
andamento dos projetos. Para isso, existem técnicas que podem ser aplicadas, conforme
discorreremos a seguir.
Entre os portais, estão as fases de cada ideia, como a análise dos riscos, dos
pontos fortes e fracos da empresa e de seus concorrentes, além do estudo de viabilidade
técnica e econômica do projeto.
Entre um portal e outro, uma das fases deverá ser analisada para todos os
projetos, servindo de filtro para o próximo portal, que irá receber apenas as ideias que
atenderem às expectativas definidas inicialmente pela empresa.
152
Figura 11 – Funis do método stage – gate
Cada funil, apresentado na Figura 11, representa um portal, a partir do qual serão
submetidas as ideias. Cada portal terá uma fase, que servirá de “peneira” para avaliar as
ideias de entrada no portal. Apenas as ideias que passarem pela fase analisada servirão
de entrada para o próximo funil, que irá analisá-las com base em outra fase. Ao final do
terceiro funil, as ideias que forem aprovadas na última fase irão compor o portfólio da
empresa (no exemplo da Figura 11, apenas a ideia 3 será aprovada).
• Seleção de critérios – deve-se selecionar uma lista de critérios que serão utilizados
para ponderação, com base nos valores e metas da empresa, como quantidade de
recursos envolvidos, custos do projeto e os riscos envolvidos.
• Ponderação dos critérios selecionados – os critérios selecionados na etapa
anterior deverão ter pesos atribuídos, como notas, que devem equivaler ao nível de
importância do critério para o negócio da organização.
• Defi nição da escala para avaliar as alternativas – é necessário definir uma
escala com cinco níveis, que irá avaliar o grau de importância de um projeto em
relação a um determinado critério. A escala poderá adotar valores muito baixos,
baixos, médios, altos, muito altos.
• Avaliação das propostas de projetos – fase em que os projetos terão notas
atribuídas para os critérios definidos, conforme a escala adotada na etapa anterior.
Ao final da avaliação de todos os projetos, o resultado será a nota final de cada
projeto, calculada conforme o peso de cada critério e o grau de importância para o
projeto, ordenada de forma crescente. Aquele projeto que obtiver a maior nota final
será o mais importante, e assim sucessivamente.
153
O Quadro 9 apresenta um exemplo de aplicação do método AHP.
O exemplo apresentado envolve a análise de três projetos (Quadro 9), com base
nos critérios: custos (com peso de 0,5 ou 50%), risco (com peso de 0,3 ou 30%) e
velocidade (com peso de 0,2 ou 20%). Para cada projeto, deve-se atribuir uma nota
de 0 a 10 para cada critério (primeira linha de cada critério), cuja nota ponderada será
calculada conforme o peso do critério (segunda linha de cada critério). A coluna de nota
ponderada representará a soma de todas as notas ponderadas calculadas para cada
projeto e será utilizada em ordem decrescente, para indicar o nível de importância do
projeto para a organização.
ATENÇÃO
Acadêmico, devemos perceber que a soma dos pesos atribuídos para cada
critério deve ser igual a 100%.
Nem sempre o mesmo fluxo poderá ser aplicado para diferentes projetos, então,
é importante que as peculiaridades de cada projeto sejam consideradas na elaboração
de seu fluxo específico.
154
2.3 FATORES CRÍTICOS DE SUCESSO
Para Pressman (2005), os fatores críticos de sucesso (FCS) são os
elementos-chave que determinam o sucesso ou fracasso de um projeto, programa ou
iniciativa. Já Sommerville (2011a) ressalta que os fatores críticos de sucesso são aqueles
aspectos que, se bem gerenciados, permitem que a organização atinja seus objetivos
e metas. Esses fatores críticos irão auxiliar na avaliação tanto de projetos que forem
desenvolvidos por métodos preditivos quanto utilizando metodologias ágeis.
Fatores Fatores
Fatores técnicos Processos Projeto
organizacionais humanos
Estar de
Pessoas que Definição
Conhecimento acordo com o
Apoio da alta atendam ao clara sobre
técnico prévio da cronograma e
administração. perfil técnico os objetivos
equipe. planejamento
desejado. do projeto.
efetuado.
Participação
Aplicação de boas Capacitação
Ambiente efetiva do
práticas para da equipe e –
favorável. cliente ao longo
desenvolvimento. treinamento.
do processo.
Conhecimento
Aceitação
e aplicação de
Cultura do cliente e
metodologias – –
organizacional. feedbacks
ágeis para
constantes.
desenvolvimento.
Estratégia de
Interesses
– – entrega dos –
políticos.
resultados.
155
estejam ausentes de um projeto que se inicia, isso é um forte indicativo de que esse
projeto poderá não atingir seu objetivo final, podendo ser interrompido de forma abrupta
e gerando prejuízos aos patrocinadores e à empresa que o desenvolvia.
156
Segundo Provinciatto e Caroli (2020), enquanto, nas metodologias tradicionais,
uma mudança após o início do projeto não é algo visto com bons olhos, pois irá
alterar todo o planejamento já concluído e que deve ser cumprido à risca até o final do
projeto, nas equipes ágeis, uma mudança é bem-vinda em qualquer etapa do projeto,
bastando ser acordada com as partes interessadas. A repriorização de atividades é algo
relativamente comum no dia a dia de uma equipe ágil, mantendo sempre o foco nas
tarefas que agregarem um maior valor ao negócio do cliente e satisfazerem suas reais
expectativas e necessidades.
3 GERENCIAMENTO DE CONFIGURAÇÃO
Segundo Sommerville (2011), a gestão da configuração é uma técnica
fundamental para garantir a integridade do sistema ao longo de todo o seu ciclo de
vida, desde o planejamento até a manutenção, passando pela produção e pelo
desenvolvimento.
157
A gerência de configuração de um projeto está relacionada com a forma como os
principais artefatos serão armazenados e, quando necessário, recuperados, de acordo
com Humble e Farley (2014). Nesse caso, os artefatos correspondem a documentação
produzida, código fonte da aplicação e demais configurações necessárias para garantir
o pleno funcionamento da aplicação, em caso de necessidade de montagem de novo
ambiente operacional.
158
da aplicação. Por isso, é importante que cada item seja identificado de maneira única,
já que, a partir desse identificador, a mudança poderá ser revertida, como mencionam
Humble e Farley (2014).
IMPORTANTE
O gerenciamento de configuração de um projeto é, especialmente, importante
quando existem diferentes equipes envolvidas no processo de execução do
projeto, sendo necessário manter um histórico de tudo que cada equipe fez,
com informações sobre autor de cada modificação e quando a modificação foi
feita e implantada.
ESTUDOS FUTUROS
Acadêmico, na Unidade 3 desta disciplina, abordaremos, com mais detalhes,
o processo de gerenciamento de configurações, além de apresentarmos as
ferramentas que podem ser utilizadas para essa finalidade.
159
Segundo Maximiano e Veroneze (2022), o plano de gerenciamento de
configurações pode ser implementado por meio da utilização de ferramentas de controle
de versão, como algumas disponíveis no mercado, podendo-se citar três exemplos mais
utilizados pelas equipes de desenvolvimento:
• GIT – ferramenta de código aberto para controle de código fonte, com diversas
funcionalidades para garantir a correta utilização por diferentes equipes que
trabalhem em um mesmo projeto ou para equipes compostas por muitos membros
que possam trabalhar em um mesmo arquivo.
• CVS – primeira ferramenta amplamente difundida para controle de versão de código
fonte em equipes de trabalho, sendo também de código aberto. Perdeu bastante
popularidade após a ferramenta Git ter sido criada e seu uso, difundido.
• SVN – também de código aberto, não possui tantas funcionalidades como a
ferramenta Git, o que fez perder bastante sua fatia de mercado para controle de
versão.
ESTUDOS FUTUROS
Acadêmico, abordaremos, com mais detalhes, o funcionamento dessas
ferramentas de versionamento de código na Unidade 3. Também serão
apresentadas outras ferramentas de controle de versão, além das listadas
anteriormente.
160
Além do gerenciamento das configurações de um projeto, outras variáveis
precisarão ser gerenciadas, como o escopo do projeto. Dessa forma, busca-se
garantir que as fronteiras estabelecidas de trabalho não serão transpostas. A seguir,
apresentaremos como as mudanças poderão ser controladas.
IMPORTANTE
Segundo Pressman (2016), o conceito de controle de mudança pode ser
definido como o processo sistemático de identificar, avaliar e gerenciar as
solicitações de mudanças em um projeto ou em um ambiente de produção.
161
3.2.1 Itens de Configuração
Segundo Pressman (2016), a configuração é a coleção de itens que compõem
um sistema ou produto, incluindo hardware, software, documentação, dados e todas as
outras partes físicas ou lógicas necessárias para suportar o seu uso.
IMPORTANTE
Os itens de configuração podem incluir documentos, arquivos-fonte e
ferramentas de software utilizados no desenvolvimento. Cada item de
configuração é identificado de maneira única e pode ser rastreado ao longo do
tempo para acompanhar sua evolução.
162
Em outras palavras, os itens de configuração são elementos importantes
para o gerenciamento de configuração do software, pois permitem a identificação e o
rastreamento das partes que compõem o produto de software.
ESTUDOS FUTUROS
Abordaremos os itens de configuração e as normas relativas ao processo de
gerenciamento de configurações na Unidade 3 desta disciplina.
163
• Release – a entrega formal de um conjunto de itens de configuração para um
ambiente de produção ou para outro uso.
• Branch – uma cópia independente de um item de configuração, que permite a
evolução independente das versões.
• Merge – processo de combinar duas ou mais versões de um item de configuração
em uma única versão.
IMPORTANTE
Esses são apenas alguns dos principais princípios e técnicas de manutenção
de software. A manutenção de software é uma tarefa complexa e contínua,
que requer uma abordagem cuidadosa, disciplinada e de melhoria contínua.
164
Pressman (2005) afirma que, quando nos referimos ao processo de manutenção
de uma aplicação, precisamos compreender que, em determinados momentos, é
necessário ajustar a aplicação, para melhorar seu desempenho ou utilizar bibliotecas
mais atuais. Com isso, a refatoração se mostra um processo importante.
3.4 REFATORAÇÃO
Sommerville (2011) explica a refatoração como um processo de melhoria
contínua do código fonte de uma aplicação, a fim de reduzir a degradação resultante
dos diversos processo de intervenção ao longo do tempo. Dessa forma, o intuito de um
processo de refatoração em um código fonte será tornar o código mais legível (maior
facilidade de um programador ler e entender o propósito do código), além de reduzir sua
complexidade.
ATENÇÃO
Conforme Fowler (2019), é imprescindível que haja, periodicamente, ajustes na
forma como o código está escrito, garantindo que o menor trecho de código
possível esteja escrito da modo mais otimizado possível, trazendo clareza na
lógica e intuitividade na escrita, ou seja, o código precisa ser autoexplicativo.
165
• Múltiplas declarações do comando switch-case – caso um projeto possua, em
diferentes locais, muitas declarações de comandos switch-case, é possível que
essas múltiplas declarações sejam otimizadas por meio de polimorfismo, em caso
de linguagens de programação orientadas a objetos.
• Aglutinação de dados – quando muitos dados, associados a um mesmo grupo
de dados (objeto ou conceito, em caso de linguagens orientadas a objetos), são
utilizados em diferentes partes de um mesmo código, é possível substituir esse
conjunto de dados por uma classe que possua todos eles como atributos, conceito
conhecido como objeto.
• Generalidade especulativa – quando desenvolvedores, de forma preditiva,
criam generalidades em um código com a perspectiva (nem sempre real) de que
essas generalizações sejam utilizadas em momentos futuros (o que nem sempre
acontece), é possível otimizar o código removendo essas generalizações inutilizadas.
DICA
Fowler (2019) apresenta uma série de exemplos práticos e técnicas de
refatoração em sua obra Refactoring – improving the design of existing code, o
que torna a sua leitura indispensável para quem se interessa pela construção
de códigos otimizados e pela aplicação de boas práticas de programação.
166
3.5 REENGENHARIA DE SOFTWARE
Segundo Pressman (2016), a reengenharia de software envolve análise de
inventário, engenharia reversa da aplicação, além da reestruturação dos dados. Então, a
partir de uma reengenharia, é possível atualizar as tecnologias envolvidas na construção
da aplicação original, a forma como os componentes da aplicação se comunicam e a
forma como os dados são organizados e mantidos.
IMPORTANTE
Segundo Sommerville (2011), por mais que sejam conceitos parecidos,
refatoração e reengenharia de software possuem nuances diferentes.
Enquanto a refatoração mantém a arquitetura, apenas se preocupando
com a legibilidade (facilidade de leitura), a manutenibilidade (facilidade de
manutenção) e a otimização do código já escrito, a reengenharia recria a
aplicação, podendo alterar sua linguagem de escrita original, os componentes
envolvidos na arquitetura, a forma de comunicação entre estes componentes,
além de refazer toda a documentação disponível.
ATENÇÃO
Outro ponto de atenção mencionado por Pressman (2016) é a diferença
entre reengenharia no processo de negócio e a realizada no software em si.
A reengenharia voltada ao processo de negócio está ligada às alterações nas
regras de negócio da aplicação, ou seja, ao domínio do problema de negócio,
enquanto a reengenharia no software objetiva atender às necessidades do
usuário final, tornando a aplicação mais intuitiva ao uso.
167
• Identificação do processo – fase em que os processos necessários para atingir
os objetivos traçados na etapa anterior são identificados e classificados em níveis
de importância para o processo de reengenharia.
• Avaliação do processo – o processo atual deverá ser analisado, medindo-se
custos, tempos de execução e eventuais problemas existentes, em termos de
performance.
• Especificação e projeto do processo – cada processo que precise ser reescrito
deverá ser especificado, de modo a identificar seus cenários de utilização e
os resultados esperados. As tarefas que deverão compor o processo após a
reengenharia deverão ser mapeadas.
• Prototipação – um protótipo visual deverá ser criado para o novo processo
mapeado, possibilitando a integração e o teste deste processo remodelado no
software e, caso necessário, os devidos refinamentos.
• Refi namento e instanciação – após todas as etapas anteriores terem sido
concluídas, o processo repaginado deverá ser implementado.
IMPORTANTE
Sommerville (2011) afirma que existem limites para que a reengenharia
aconteça em uma aplicação. Caso seja necessária a migração de paradigmas,
ou seja, uma aplicação inicialmente construída em uma linguagem procedural
que deverá ser migrada para o paradigma orientado a objetos, os custos
inerentes ao processo de reengenharia poderão não justificar o processo,
tornando mais barata a construção de uma nova aplicação.
Segundo Pressman (2016), existem casos que uma organização necessita que
uma aplicação seja migrada, como resultado de uma atualização tecnológica, ou até de
pequenas mudanças efetuadas no processo corrente, para um novo modelo de negócio
ou que apenas os dados sejam transferidos entre diferentes bases de dados. A esse
processo de atualização, atribuímos o nome de migração de software.
168
• Atualização na versão do sistema operacional de uma aplicação.
• Mudança na estratégia de negócios da empresa.
• Infraestrutura atual não suporta mais as necessidades da aplicação (capacidade de
processamento, espaço de armazenamento de dados etc.).
• Necessidade de integração entre sistemas de diferentes empresas que efetuaram
uma fusão.
• Reestruturação no negócio da organização, refletindo na necessidade de ajustes
em suas aplicações críticas.
169
GIO
Acadêmico, neste tema de aprendizagem, aprendemos que todas as
organizações possuem metas, de forma direta ou indireta, planejando ações
para alcançar esses objetivos, o que irá representar a importância da gestão
estratégica de projetos.
170
LEITURA
COMPLEMENTAR
IMPLANTAÇÃO DE GERÊNCIA DE CONFIGURAÇÃO EM EMPRESA DE
DESENVOLVIMENTO DE SOFTWARE PARA GESTÃO PÚBLICA: UM ESTUDO DE
CASO
1 INTRODUÇÃO
Pressman (1995, p. 735) afirma que “toda mudança no software tem potencial
para introduzir erros ou criar efeitos colaterais que propagam erros”. Portanto, é
fundamental que o controle de mudanças seja bem definido, aliado ao processo de
qualidade de software.
171
pelos responsáveis, devidamente testadas para que não interfiram negativamente nas
funcionalidades já existentes e para que os usuários sejam informados das mudanças
ocorridas.
[...]
172
documentos eletrônicos que fazem parte do projeto de software. Paula Filho (2003)
afirma que projetos e produtos de software sofrem inúmeras mudanças durante o seu
ciclo de vida, e que os procedimentos e as técnicas de gestão de configuração contêm
artefatos para administrar essas alterações de forma organizada.
173
No controle de mudanças de um sistema de software estarão indicadas as
funcionalidades que foram adicionadas, removidas ou modificadas, contendo também
os problemas corrigidos e pendências que eventualmente restam para uma versão
posterior (WAZLAWICK, 2013). As mudanças são inevitáveis no ciclo de vida de um
software; possivelmente, não havendo mudanças no sistema, logo ele se torna obsoleto
e substituível por qualquer outro mais moderno e que atenda aos requisitos do usuário,
conforme afirma Sommerville (2011, p. 477):
174
Verifica-se que em softwares que possuem grande quantidade de usuários,
chamados também como softwares de mercado de massa, normalmente, é
possível verificar dois tipos de releases: os releases principais, que fornecem novas
funcionalidades ao software; e os releases menores, que corrigem bugs e problemas
relatados por clientes (SOMMERVILLE, 2011).
175
garantia da qualidade faz parte dos processos de apoio ao projeto de software, já que
auxiliam e contribuem para o sucesso e qualidade do produto final. Sobre este processo
de garantia da qualidade, destacam:
[...]
176
3.2.2 Revisões e inspeções
Pressman afirma que “as revisões de software são um ‘filtro’ para o processo de
engenharia de software”. Complementa ainda que essas revisões servem para descobrir
defeitos durante o desenvolvimento de software para que possam ser eliminados antes
da entrega (PRESSMAN, 1995, p. 736).
Pressman (1995, p. 745) destaca: “revise o produto, não o produtor”, com o intuito
de reforçar a atividade de revisão como parte do processo de qualidade de software, e
não avaliação da produtividade. Para o autor “o benefício óbvio das revisões técnicas
formais é a descoberta precoce dos defeitos de software, de forma que cada defeito
possa ser corrigido antes do passo seguinte do processo de engenharia de software”
(PRESSMAN, 1995, p. 737).
[...]
177
RESUMO DO TÓPICO 3
Neste tópico, você aprendeu:
178
AUTOATIVIDADE
1 A elaboração de estratégias está presente em todas as Organizações, seja de forma
explícita ou implícita. Através das estratégias, é possível se definir marcos que
auxiliarão a atingir um determinado objetivo empresarial. Sobre a gestão estratégica,
assinale a alternativa CORRETA:
I- Um dos motivos que uma Organização poderá escolher um projeto, dentre tantos
outros, para ser executado é a velocidade de implementação.
II- Para selecionar projetos que irão compor o portfólio de projetos, técnicas podem
ser utilizadas, como a MVP.
III- As técnicas fase + portal e AHP podem ser utilizadas para filtrar os processos que
deverão compor o portfólio de projetos de uma Empresa.
3 O método AHP para seleção de projetos que deverão compor o portfólio da Empresa
é conhecido por ser multicritério, ou seja, utilizar de mais de um critério para que a
seleção de projetos aconteça. Considerando seus conhecimentos sobre o método
AHP, classifique V para as sentenças verdadeiras e F para as falsas:
( ) A ponderação dos critérios deverá ser a primeira tarefa a ser executada no ciclo de
avaliação dos projetos.
( ) A seleção dos critérios deve seguir os valores e metas da Empresa, servindo de
balizadores para a filtragem dos projetos.
( ) A avaliação dos projetos irá considerar os critérios adotados, a ponderação deles e
a escala de importância do projeto em relação a cada critério.
179
Assinale a alternativa que apresenta a sequência CORRETA:
a) ( ) V – F – F.
b) ( ) V – F – V.
c) ( ) F – V – V.
d) ( ) F – F – V.
4 Para que um projeto possa sair do campo das ideias e passar a compor o portfólio de
projetos da Empresa, é necessário que técnicas de filtragem possam ser utilizadas,
como o método multicritério e o stage-gate. Disserte sobre a diferença entre os dois
métodos.
5 Para que um projeto obtenha o êxito esperado, é importante que tenha sido escolhido
no momento certo, composto o portfólio de projetos da Empresa e que atenda aos
fatores críticos de sucesso. Um projeto que tenha uma baixa avaliação, quando
analisado perante os FCS, tenderá a não obter o sucesso esperado, não se mostrando
uma boa alternativa para o portfólio empresarial. Nesse contexto, disserte sobre os
principais fatores críticos de sucesso, no que se refere ao processo.
180
REFERÊNCIAS
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. ABNT NBR ISO 23081-1: Infor-
mação e documentação – Processos de gestão de documentos de arquivo – Metada-
dos para documentos de arquivo Parte 1: Princípios. Rio de Janeiro: ABNT, 2019.
BLACK, K. Causes of project failure: a survey of professional engineers, Rede PM, [s. l.],
v. 10, n. 11, p. 21-24, 1996.
CAROLI, P. O que é Manifesto Ágil? Cultura ágil. Caroli.org, jun. 2020. Disponível em:
https://caroli.org/manifesto-agil/. Acesso em: 2 fev. 2023.
CHARVAT, J. Stage-gate system for new product development: best practices and
cases. Product Innovation Management, [s. l.], v. 27, n. 1, p. 1-10, 2010.
CHAVES, R.; FUNES, M. The benefits of predictive budgeting. Harvard Business Re-
view, [s. l.], v. 9, n. 3, p. 61-66, 2015.
COHN, M. Agile Estimating and Planning. Rio de Janeiro: Prentice Hall, 2005.
CONFORTO, E. C.; AMARAL, D. C. Evaluating an Agile Method for Planning and Con-
trolling Innovative Projects. Project Management Journal, [s. l.], v. 41, n. 2, p. 73-80,
2008.
181
CONFORTO, E. C. Gerenciamento ágil de projetos: proposta e avaliação de método
para gestão de escopo e tempo. 2009, 304p. Dissertação (Mestrado em Engenharia
de Produção) – Escola de Engenharia de São Carlos, Universidade de São Paulo, São
Paulo, 2009.
DAKHEEL, J. A.; PERO, C. D.; NICCOLÒ, A. et al. Smart buildings features and key
performance indicators: a review. Sustainable Cities and Society, [s. l.], v. 61, 2020.
DEMING, W. E. Out of the crisis. Cambridge: MIT Center for Advanced Engineering
Study, 1986.
EVANS, J. R.; LINDSAY, W. M. The management and control of quality. São Paulo:
Cengage Learning, 2015.
HACKMAN, R. J. Leading Teams: setting the stage for great performances. Boston:
Harvard Business School Press, 2002.
182
HITT, M. A.; IRELAND, R. D.; HOSKISSON, R. E. Strategic Management: concepts and
cases: competitiveness and globalization. 12th ed. Cengage Learning, 2016.
HILL, C.; JONES, G. Corporate strategy: vertical integration, diversification and stra-
tegic alliances. In Strategic Management Theory. New York: Houghton Mifflin Company,
2001.
HUMBLE, J.; FARLEY, D. Entrega contínua – como entregar software de forma rápida
e confiável. Porto Alegre: Bookman, 2014.
JURAN, J. M.; GRYNA, F. M. Quality Planning and Analysis. Nova York: Mc-
Graw-Hill,1993.
JURAN, J. M. Juran on quality by design: the new steps for planning quality into
goods and services. New York: Free Press, 1988.
KAPLAN, R. S.; COOPER, R. Custo e desempenho: administre seus custos para ser
mais competitivo. São Paulo: Futura, 1998.
183
KWOK, F. Predictive analytics for dummies. Nova Jersey: John Wiley & Sons. 2018.
LEWIS, J. P. Como gerenciar projetos com eficácia. 6. ed. Rio de Janeiro: Campus,
2005.
NEWELL M. Preparing for the Project Management Professional (PMP). [S. l.]:
AMACOM, 2002.
PEREIRA, P.; TORREÃO, P.; MARCAL, A. S. Entendendo Scrum para gerenciar projetos
de forma ágil. mundo PM, [s. l.], v. 1, p. 3-11, 2007.
184
PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. Nova York:
McGraw-Hill Education, 2017.
PMI. PROJECT MANAGEMENT INSTITUTE. PMI Today: the growing gap between proj-
ect manager and supply and demand. Newtown Square: Project Management Insti-
tute, 2009.
RADIGAN, D. Atlassian, 2023. Story points and estimation, 2023. Disponível em:
https://www.atlassian.com/agile/project-management/estimation#:~:text=Story%20
points%20are%20units%20of,work%2C%20and%20risk%20or%20uncertainty. Acesso
em: 12 fev. 2023.
185
ROYCE. W. W. Managing the development of large software systems: concepts and
techniques, Proc. IEEE Wescon, [s. l.], v. 26, n. 12, 1970.
SABBAGH, R. Scrum – gestão ágil para projetos de sucesso. Casa do Código. São
Paulo: 2013.
SCHWABER, K.; SUTHERLAND, J. The Scrum Guide – The Definitive Guide to Scrum:
The Rules of the Game. 2017. Disponível em: https://www.scrumguides.org/docs/
scrumguide/v2017/2017-Scrum-Guide-US.pdf. Acesso em: 8 fev. 2023.
SCHWABER, K.; SUTHERLAND, J. The Scrum Guide – the definitive guide to scrum:
the rules of the game, 2020. Disponível em: https://scrumguides.org/docs/scrumgui-
de/v2020/2020-Scrum-Guide-US.pdf. Acesso em: 31 dez. 2022.
SHENHAR, A. J.; MILOSEVIC, D.; DVIR, D.; THAMHAIN, H. Linking project manage-
ment to business strategy. Newtown Square, PA: Project Management Institute
(PMI), 2007.
186
WIDEMAN M. A Guide to the Project Management Body of Knowledge (The PM-
BOK® Guide). [S. l.]: Project Management Institute, 2021.
ZASA, A. P.; PELLIZZONI, E. Managing the Hybrid Organization: how can agile and tradi-
tional project management coexist? Research-Technology Management, January/
February 2021.
187
188
UNIDADE 3 —
FERRAMENTAS E NORMAS DE
APOIO AO GERENCIAMENTO DE
PROJETOS E CONFIGURAÇÕES
OBJETIVOS DE APRENDIZAGEM
A partir do estudo desta unidade, você deverá ser capaz de:
PLANO DE ESTUDOS
A cada tópico desta unidade você encontrará autoatividades com o objetivo de reforçar
o conteúdo apresentado.
CHAMADA
Preparado para ampliar seus conhecimentos? Respire e vamos em frente! Procure
um ambiente que facilite a concentração, assim absorverá melhor as informações.
189
CONFIRA
A TRILHA DA
UNIDADE 3!
Acesse o
QR Code abaixo:
190
UNIDADE 3 TÓPICO 1 —
FERRAMENTAS PARA APOIO
AO GERENCIAMENTO DE
PROJETOS E CONFIGURAÇÃO
1 INTRODUÇÃO
Sommerville (2011) afirma que gerenciar projetos não é uma tarefa tão simples.
Requer que o Gerente de Projetos consiga planejar e mensurar o andamento das etapas
do projeto de forma a garantir que o sucesso esperado será atingido.
191
• Identificação de versão e lançamento – Cada nova versão gerenciada de um
componente receberá um identificador único quando for armazenada. A partir
destes identificadores é possível diferenciar as versões armazenadas de um mesmo
componente, sem a necessidade de alterar o nome do componente.
• Registro do histórico de mudanças – As mudanças efetuadas em um componente
são gerenciadas com o propósito de criar uma nova versão deste componente, tendo
como base sua versão anterior. É possível marcar cada versão com identificadores,
como palavras-chave, possibilitando sua inclusão em uma baseline.
• Desenvolvimento independente – É possível que diferentes desenvolvedores
atuem em diferentes versões de um mesmo componente, sem que haja interferência
nos trabalhos dos demais desenvolvedores, que atuam em paralelo. O sistema
de controle de versão deverá controlar as contribuições de cada desenvolvedor
separadamente.
• Apoio de projeto – Vários projetos que compartilham componentes entre si
poderão ter suas versões de componentes gerenciados por um mesmo sistema
gerenciador de versões.
• Gerenciamento de armazenamento – O sistema de gerenciamento de versões
deverá garantir que não haverá duplicidade de arquivos idênticos armazenados. Caso
pequenas alterações sejam feitas em um arquivo, o mecanismo de armazenamento
poderá, por exemplo, armazenar apenas as diferenças, ao invés de guardar cópias
separadas do arquivo alterado.
192
em formato de deltas, era uma abordagem interessante. Para que uma nova versão
da aplicação fosse criada, bastava aplicar todos os deltas armazenados, o que poderia
demorar bastante.
193
IMPORTANTE
Pressman e Maxim (2021) e Humble e Farley (2014) salientam que todas as
configurações que forem armazenadas em um projeto precisam ser identificadas
de forma única e recuperadas, quando se fizer necessário, através da ferramenta
que será utilizada para realizar o controle de versão.
ESTUDOS FUTUROS
Abordaremos outras ferramentas para controle de versão ainda neste Tema
de Aprendizagem. Também detalharemos estas ferramentas apresentadas
nos próximos subtemas.
INTERESSANTE
Pressman e Maxim (2021) chamam atenção ao fato que não é somente o
código fonte de uma aplicação que deverá ter suas versões armazenadas e
gerenciadas, mas todas as configurações mapeadas como importantes para
garantir o bom funcionamento do ambiente operacional de uma aplicação,
tais quais configurações de hardware, aplicativos de terceiros que sejam
essenciais para o funcionamento da aplicação que está sendo desenvolvida,
documentação base para o desenvolvimento, dentre outros itens que sejam
julgados importantes pelo time.
194
Para se fazer uma escolha dentre as ferramentas disponíveis para controle de
versão, o time precisará averiguar a experiência dos membros com a utilização de uma
ferramenta em detrimento das outras, o propósito de uso da ferramenta na equipe e as
funcionalidades oferecidas por cada ferramenta.
IMPORTANTE
Sommerville (2011) denomina mainline a sequência das versões principais de
uma aplicação, criadas a partir de baselines específicos. Cada baseline criada
para uma aplicação deverá ter sua nomenclatura seguindo a versão dos
componentes utilizados e da codeline.
195
• Sistema de gerenciamento de construção – Converte em arquivos executáveis
os artefatos de Software que estão prontos para liberação para implantação em um
ambiente operacional, de forma automatizada.
196
conseguir efetuar o acesso, sendo de responsabilidade da ferramenta realizar
este controle. É importante que diferentes níveis de acesso e permissões existam
para que os diferentes tipos de itens de configuração possam ter seus acessos
concedidos corretamente.
• Relacionamento entre os itens – Deve ser possível associar objetos, criando um
relacionamento entre eles de modo que uma mudança em um item de configuração
que possua relacionamento com outros itens possa identificar os itens que serão
impactados por esta mudança. A interligação entre itens é muito presente na fase
de documentação e especificação de requisitos, quando permite realizar o rastreio
entre os requisitos dependentes.
• Item de Configuração (IC) – Representa um elemento de Software, hardware ou
documentação, sendo controlado e gerenciado pela Gerência de Configuração de
Software. Cada IC é único e pode ser identificado e rastreado;
• Baseline - Representa um conjunto de ICs que são revisados, aprovados e fixados
em um determinado momento. As baselines são usadas como referência para
futuras alterações e evolução do Software.
• Baseline Control – Representa o processo de gerenciar e controlar as baselines do
Software, incluindo sua criação, armazenamento, distribuição e atualização.
• Baseline Identification – Processo de identificar os ICs que fazem parte de uma
determinada baseline. É usado para garantir que as baselines sejam consistentes
e completas.
• Baseline Review – Processo de revisar uma baseline para garantir que ela atenda
aos requisitos definidos e que todas as alterações estejam documentadas.
• Baseline Update – Processo de atualizar uma baseline existente com novas
alterações ou correções de bugs. É usado para manter a consistência e integridade
das baselines.
• Release Baseline – Conceituada como uma baseline que foi testada e aprovada
para ser lançada para produção ou para entrega ao cliente.
• Delta – Representa a diferença entre duas versões de uma baseline, que pode ser
usada para rastrear as alterações e o histórico de desenvolvimento do Software.
• Codeline – Sequência de versões de Software que foram desenvolvidas a partir de
uma mesma base de código-fonte. É usada para gerenciar o desenvolvimento de
diferentes funcionalidades ou correções de bugs em paralelo.
• Release Candidate – Versão de Software que está pronta para ser lançada para
produção, após ter sido testada e aprovada. É usada para validar e testar a versão
final antes do lançamento oficial.
• Mainline – Linha principal de desenvolvimento de Software, na qual as alterações
são integradas e testadas. É usada para manter a consistência e a estabilidade do
Software em desenvolvimento, evitando conflitos e problemas de integração. A
mainline geralmente é controlada por um sistema de controle de versão e é a linha
de desenvolvimento que é usada para criar as versões de lançamento e as baselines
do Software. As alterações são feitas em branches (ramificações) separados da
mainline para permitir o desenvolvimento paralelo de funcionalidades ou correções
de bugs sem afetar a estabilidade do Software em desenvolvimento. Quando as
197
alterações são concluídas, elas são mescladas (merged) de volta para a mainline
para serem integradas e testadas.
• Repositório de Configuração – Local onde os ICs são armazenados e gerenciados.
Pode ser um sistema de controle de versão ou um repositório físico.
• Auditoria de Configuração – Processo de revisar e avaliar a qualidade e
conformidade do Software com os padrões e requisitos definidos. É usado para
garantir que o Software seja confiável e seguro.
• Rastreabilidade – Capacidade de rastrear a relação entre diferentes ICs e baselines,
permitindo rastrear as mudanças no Software e entender como as diferentes partes
do Software estão relacionadas.
• Matriz de Rastreabilidade (do inglês Traceability Matrix) – Tabela que mostra
a relação entre requisitos, ICs e testes, sendo usada para rastrear a conformidade
do Software com os requisitos definidos e para garantir que todas as suas partes
estejam sendo testadas;
• Integração Contínua (do inglês Continuous Integration – CI) – Processo de
integrar automaticamente as alterações do código-fonte em uma linha principal
de desenvolvimento, para garantir que o Software esteja sempre atualizado e sem
conflitos.
• Entrega Contínua (do inglês Continuous Delivery – CD) – Processo de
automatizar a entrega de Software em ambientes de teste e produção, para acelerar
o processo de entrega e garantir a qualidade do Software.
• Quadro de Controle de Configuração (do inglês Configuration Control Board
– CCB) – Grupo de pessoas responsável por avaliar, aprovar e gerenciar mudanças
na configuração do Software.
198
cliente que tenha efetuado o clone desse repositório poderá servir de backup para a
aplicação (ou outros itens de configuração que estavam armazenados no repositório
central). Exemplo de ferramentas que utilizam esse formato de trabalho são a Git,
Mercurial, Bazaar e Darcs.
IMPORTANTE
Um ponto de atenção levantado por Chacon e Straub (2022) é o fato que
o modelo centralizado poderá representar um único ponto de falhas no
projeto, tendo em vista que, caso uma falha aconteça, poderá deixar os
itens gerenciados indisponíveis por um período. O modelo distribuído não
apresenta esse risco, por realizar clones do repositório para cada máquina
dos membros do time, que poderá servir de backup, em caso de problemas
com o repositório remoto.
199
Figura 2 – Esquema de funcionamento de um servidor de controle de versão centralizado.
200
suas alterações, o que irá criar uma nova versão completa contendo as alterações
codificadas. As sincronizações também acontecem com as versões armazenadas por
outros desenvolvedores.
Segundo explicam Humble e Farley (2014) e Freitas (2010), uma das principais
inovações apresentadas pelo CVS era o processamento concorrente dos arquivos por ele
gerenciados, o que implicava que um arquivo, ao ser manipulado por um desenvolvedor,
não seria bloqueado, tendo todas as alterações concorrentes mescladas quando este
arquivo fosse enviado ao servidor central.
• Não é uma ferramenta que irá substituir o processo de gerenciamento, sendo este
de responsabilidade do Gerente de Projetos ou papel que desempenhe a função de
liderança na equipe.
• Não é uma ferramenta que irá substituir a comunicação entre os membros da equipe
de desenvolvimento.
201
• A ferramenta não possui controle de modificações, não guardando referência sobre
a modificação de diversos arquivos que foram alterados e enviados ao repositório
em um mesmo momento.
• Não é um programa voltado para testes automatizados.
• Não é uma ferramenta baseada em um modelo de processos, de modo que, caso
uma alteração em um arquivo necessite da avaliação de diferentes pessoas da
equipe, esse processo não será possível.
NOTA
Acadêmico, a ferramenta CVS poderá ser encontrada para download em
https://sourceforge.net/projects/ccvs/. Acesso em: 23 jan. 2023.
2.2 GIT
A ferramenta Git, como explanada por Chacon e Straub (2022), foi desenvolvida
por Linus Torvald, criador do Sistema Operacional Linux, em meados de 2005, com o
intuito de facilitar o processo de manutenção do kernel do Linux, após a ferramenta
utilizada pela comunidade Linux, de código aberto e livre de taxas, ter o status “livre de
taxas” suspenso devido ao rompimento da relação entre a empresa que desenvolvia
a ferramenta utilizada e a comunidade dos desenvolvedores que mantinham o kernel
do Linux. Dessa forma, a equipe de desenvolvimento do kernel Linux se viu forçada a
desenvolver sua própria ferramenta de controle de versão.
202
criam e mantém uma lista com as alterações que foram efetuadas em cada arquivo
gerenciado, a ferramenta Git armazena o histórico de alterações de um arquivo como
instantâneos deste arquivo ao longo do tempo (VALENTE, 2020).
ATENÇÃO
Enquanto as ferramentas centralizadas armazenam apenas as alterações, em
formato de deltas, a ferramenta Git armazena versões completas dos arquivos
gerenciados a cada nova atualização do repositório remoto. Sendo assim, um
arquivo terá seu histórico armazenado como uma sequência de instantâneos
em cada ramificação criada.
Figura 4 – Visão das ferramentas de controle de versão centralizado sobre as versões dos arquivos geren-
ciados
NOTA
Acadêmico, a documentação do Git, assim como as versões da ferramenta
disponíveis para download poderão ser encontradas em: https://git-scm.com/.
INTERESSANTE
Caso um arquivo não tenha sido atualizado ao longo do tempo, a Git não irá
armazenar novas cópias de instantâneos deste arquivo, apenas referenciando
o instantâneo original.
204
Os membros da equipe de desenvolvimento que utilizam a ferramenta Git como
solução para controle de versão irão fazer todo o trabalho de alterações nos arquivos do
projeto localmente, se encarregando de sincronizar seu repositório local ao repositório
remoto, ajustando eventuais conflitos que surjam devido à mesclagem de alterações em
um mesmo trecho de código por desenvolvedores distintos. Caso um mesmo arquivo
tenha sido modificado, mas em partes diferentes, as alterações serão mescladas de
forma automática pela ferramenta.
INTERESSANTE
A integridade, na ferramenta Git, é garantida em cada operação de commit
através da geração de um checksum. Esse hash irá identificar um commit
específico, podendo recuperar todas as alterações feitas em todos os arquivos
modificados nesta versão.
205
Figura 6 – Fluxo de trabalho básico utilizando um servidor GitHub centralizado
IMPORTANTE
É importante que os membros do time de desenvolvimento adotem como
boas práticas o envio periódico dos códigos construídos ao final de cada dia
de trabalho, evitando retrabalhos em caso de falhas em alguma estação de
trabalho dos membros do time.
Além da ferramenta Git, existe uma outra também bastante utilizada, que será
abordada no subtópico 2.3, a Mercurial.
2.3 MERCURIAL
Segundo Freitas (2010), a ferramenta Mercurial, assim como a Git, funciona de
forma distribuída, tendo sua história se iniciado de forma paralela ao desenvolvimento
da ferramenta Git. Assim como a Git, a Mercurial teve sua primeira versão disponibilizada
206
no ano de 2005. Apesar de as duas ferramentas terem sido desenvolvidas por membros
do time mantenedor do kernel do Linux, a ferramenta Git acabou sendo a escolhida para
gerenciar as versões do código fonte do kernel Linux.
Apesar de não ter sido escolhida para o controle de versão do kernel Linux, a
ferramenta Mercurial acabou se popularizando após ser adotada por inúmeras equipes
de grandes projetos, como defendido por Freitas (2010).
Essa ferramenta possui um ciclo de trabalho bem similar ao ciclo da Git, como
a criação de um repositório local na máquina de cada desenvolvedor, a marcação dos
arquivos alterados e a operação de commit para salvar localmente os arquivos alterados,
seguindo-se da ação de propagação da alteração ao repositório remoto.
IMPORTANTE
A ferramenta Mercurial poderá ser obtida através do link https://www.
mercurial-scm.org/wiki/Download. Acesso em: 23 jan. 2023.
207
INTERESSANTE
Medeiros (2016) e Freitas (2010) explicam que um conflito acontece quando
dois ou mais desenvolvedores alteraram o mesmo trecho de código em um
mesmo arquivo. Dessa forma, se torna necessário que seja decidido qual dos
trechos de código irá permanecer, qual será removido ou se existirá uma
mesclagem entre os códigos conflitantes, de forma manual.
2.4 BITKEEPER
A ferramenta BitKeeper, inicialmente com licença de utilização gratuita,
fornece um gerenciamento de código de maneira distribuída, voltada para o time de
desenvolvimento do kernel do Sistemas Operacional Linux, conforme Henson e Garzik
(2002). A característica distribuída da equipe responsável por manter o kernel do Linux,
muitas vezes com limitações na velocidade de conexão à Internet e tendo que gerenciar
múltiplos arquivos grandes, necessitava de um sistema de controle de versão que desse
suporte ao trabalho distribuído, não existindo uma, no ano de 2002, que pudesse suprir
essa necessidade.
208
• times com grande volume de arquivos binários (vídeos, fotos, arquivos CAD, dentre
outros).
209
• Aliases – Representa uma forma de associar nomes lógicos, como resultado da
geração de uma nova versão, à um conjunto de componentes do produto.
2.5 SOURCESAFE
A ferramenta SourceSafe, proprietária, foi desenvolvida pela Microsoft,
possuindo integração com outras ferramentas também desenvolvidas pela mesma
Empresa, como a Visual Studio .NET, como explicam os autores Corrêa, Grein e Piske
(2005). Essa ferramenta disponibiliza três funcionalidades básicas, comuns a outras
ferramentas de controle de versão, que são o armazenamento de arquivos em um
repositório central, o controle de acesso e histórico das modificações.
2.6 CLEARCASE
Segundo Wahli et al. (2004), a ferramenta ClearCase, de propriedade da IBM, faz
parte de um conjunto de soluções voltadas para o gerenciamento de configurações de
Software, de nome IBM Rational Team Unifying Platform. Um cliente que desejar adotar
esta solução, poderá iniciar com uma versão simples da ferramenta para gerenciamento
de configurações, evoluindo para outras ferramentas com mais funcionalidades sem que,
com isso, tenha gastos significativos com custos e esforço de migração e aprendizado.
210
A ferramenta de entrada para o pacote é a ClearCase LT, como apresentado por
Wahli, Brown et al. (2004), que funciona como um repositório centralizado, sendo capaz
de gerenciar o histórico de qualquer elemento do projeto, ao longo de seu ciclo de vida.
Ross (2011) afirma que é possível migrar projetos que estão tendo seus artefatos
gerenciados por outras ferramentas de controle de versão, como a SourceSafe e a CVS,
para a ferramenta ClearCase, através da utilização de ferramentas específicas para este
fim.
INTERESSANTE
Como explicam Oliveira, Vianna e Tanaka (2006), a ferramenta ClearCase
permite a criação de repositórios públicos ou privados. Os públicos podem
ser acessados por qualquer desenvolvedor que faça parte da comunidade
de desenvolvedores que utilizam a ClearCase, porém repositórios privados só
são acessíveis para seus criadores.
NOTA
A ferramenta ClearCase poderá ser obtida através do link: https://www.ibm.
com/support/pages/rational-ClearCase-902.
211
2.7 SYNERGY
Conforme explica Sampaio (2021), a ferramenta proprietária Synergy,
desenvolvida pela IBM, segue o modelo centralizado de implementação, sendo integrado
a uma outra solução IBM, a Rational Change, para permitir o controle de mudanças.
IMPORTANTE
O suporte para as ferramentas Rational Synergy e Rational Change será
descontinuado em setembro de 2024, como explica IBM (2022).
2.8 STARTEAM
A ferramenta proprietária StarTeam tem o propósito de implementar o processo
de gerenciamento de alterações e versões para todo o ciclo de vida da entrega (MICRO
FOCUS, 2023b).
212
Como explica Micro Focus (2023b), essa ferramenta provê um repositório único
centralizado para armazenar os artefatos dos projetos de uma Organização, além de
garantir a rastreabilidade dos artefatos armazenados e permitir a utilização por equipes
descentralizadas. O processo de fusão das contribuições de todos os membros da
equipe na versão principal da aplicação é feito de forma automatizada, identificando
exatamente quais as alterações efetuadas e quem as fez.
IMPORTANTE
Acadêmico, apresentaremos a ferramenta Jira no próximo subtema.
213
O ciclo de vida do projeto, concordando com os conceitos apresentados por
CMMI (2006), é definido como o conjunto de todos os processos necessários para que
se estabeleça um ciclo do início ao final, de forma coerente com o objetivo que se deseja
alcançar. Esta atividade deve ser definida ainda na fase inicial do estabelecimento de
estimativas para o projeto que será executado.
Segundo Santos (2021), para projetos que fazem uso de metodologias preditivas,
o cronograma do projeto poderá fazer uso de ferramentas proprietárias, como a Microsoft
Project, ou de ferramentas gratuitas, como o ProjectLibre ou ProofHub.
214
IMPORTANTE
As ferramentas de auxílio ao gerenciamento de projetos poderão ser
combinadas para amparar, ainda mais, o Gerente de Projetos no preparo
e acompanhamento das fases do projeto. Dessa forma, é possível utilizar
uma ferramenta para executar o planejamento dos recursos, orçamento,
cronograma etc. e outra ferramenta para realizar o cadastramento e
acompanhamento das tarefas que deverão ser executadas pelo time de
desenvolvimento.
IMPORTANTE
Acadêmico, a Microsoft, Empresa proprietária da solução MS Project,
disponibiliza orientações sobre como realizar o download e instalação da
aplicação através deste link: https://support.microsoft.com/pt-br/office/
instalar-o-project-7059249b-d9fe-4d61-ab96-5c5bf435f28.
215
A definição de metas e o acompanhamento do cumprimento desses objetivos
irão auxiliar no cálculo do conceito de valor realizado também conhecido pela sigla
Earned Value Management (EVM), em consonância com Maximiano e Veroneze (2022).
Esse conceito irá calcular o valor do trabalho que já foi realizado até um determinado
marco, indicando se o orçamento realizado até um certo ponto do projeto está dentro
do orçamento previsto para o projeto.
INTERESSANTE
Pressman e Maxim (2021) afirmam que o valor do índice de desempenho
de custo, sendo representado pelo cálculo da razão entre o custo orçado
do trabalho programado (custo planejado) e o custo real do trabalho
executado deve ser próximo a 1, indicando, assim, que o projeto está com
custo real em concordância com o planejado. Esta análise irá possibilitar
identificar eventuais atrasos ou dificuldades no cronograma inicialmente
planejado, permitindo que ajustes sejam feitos.
216
Como um resumo dos conceitos abordados neste tópico, temos que um projeto
é conceitualizado como as tarefas necessárias para se atingir a um objetivo inicial
pretendido, sendo possível gerenciar suas fases através de ferramentas que controlem
as etapas de seu ciclo de vida. Também mencionamos que um projeto poderá ser
classificado conforme seu orçamento inicialmente previsto e o efetivamente executado,
sendo a técnica de análise do valor agregado importante para o acompanhamento da
execução do projeto e dos gastos envolvidos.
3.1.1 Redmine
Segundo Heckler (2009), a ferramenta Redmine, de código aberto e extensível,
permite o controle dos artefatos gerados por um projeto, sendo possível efetuar o
rastreio desses artefatos, ou seja, o acompanhamento de todo processo de codificação,
testes e do histórico dos acontecimentos em cada tarefa. Além disso, é possível realizar
a interligação entre diferentes tarefas, o que permite que diferentes requisitos do projeto
sejam correlacionados.
217
projetos, como o suporte à integração a ferramentas de controle de versão (como a SVN,
Git, CVS, Mercurial, Bazaar e Darcs), possibilidade de criação de fórum e documentação
do projeto (através da ferramenta wiki), assim como a existência de uma equipe ativa no
processo de melhoria contínua da ferramenta.
ATENÇÃO
Por experiência profissional da autora, a rastreabilidade das alterações em
código a partir das tarefas criadas e gerenciadas na ferramenta Redmine se
torna essencial para que sejam identificadas todas as tarefas englobadas na
geração de uma baseline da aplicação, facilitando o processo de comparação
com outras baselines do projeto ou o processo de aprovação para inclusão
na mainline que será implantada em produção.
Por ser uma ferramenta WEB, a Redmine se mostra adequada para times
geograficamente distribuídos, podendo ser acessada de qualquer local, desde que o
colaborador esteja conectado à rede da Empresa, através de uma VPN.
218
INTERESSANTE
A partir da experiência profissional da autora, para times ágeis, a ferramenta
Redmine, quando possui integração com plugins específicos, possibilita a
visualização das tarefas do projeto em um quadro kanban. Dessa forma, é
possível saber qual o progresso de cada tarefa e qual membro do time está
responsável por qual tarefa. A ferramenta também possibilita o agrupamento
de diferentes tarefas em pacotes (entregas), possibilitando a visualização de
informações sobre o progresso de implementação de cada pacote.
219
Figura 8 – Algumas funcionalidades gráficas disponíveis na ferramenta Redmine
220
equipe e dando-lhe subsídios para tomada de decisões estratégicas, como contratação
de novo membro para o time, identificação de gargalos no processo de desenvolvimento,
dentre outros fatores que podem impactar na produtividade da equipe.
NOTA
A ferramenta Redmine poderá ser obtida a partir do link https://www.
Redmine.org.
3.1.2 Bugzilla
Segundo Bugzilla (2023), a ferramenta de código aberto se mostra madura e
robusta para rastreamento de erros em aplicações. Algumas características importantes
desta ferramenta incluem a possibilidade de utilização por ambientes de alto volume
e complexidade, suporte realizado por um time dedicado, aprovado por líderes de
projeto experientes, suportado por diferentes sistemas operacionais, além de fornecer
funcionalidades disponibilizadas por ferramentas pagas.
221
A ferramenta Bugzilla é voltada para o rastreio dos erros encontrados em
um sistema, sendo voltado para projetos mais simples, sendo de grande valia para
os membros do time de desenvolvimento, mas não executando tarefas inerentes
ao gerenciamento de projetos, como possibilitado pela ferramenta Redmine, como
defendido por Geraldes (2011).
NOTA
A ferramenta Bugzilla poderá ser encontrada no site https://www.Bugzilla.
org/.
3.1.3 Trac
Segundo Devmedia (2012), a ferramenta Trac, de código aberto, é voltada para
apoio ao gerenciamento de configuração e mudanças em um projeto, auxiliando em
processos como auditoria, metodologias de desenvolvimento e colaborando para que a
integridade do produto seja preservada. De interface simples e voltada para WEB, possui
fácil integração com ferramentas de controle de versão, como a SVN, Git ou outra voltada
para este fim, além de facilitar o processo de documentação através da ferramenta Wiki.
222
NOTA
A ferramenta Trac pode ser encontrada através do link: https://trac.edgewall.
org/.
3.1.4 Zendesk
Segundo Zendesk (2023), ao contrário das demais ferramentas apresentadas
até o momento, esta é voltada para otimizar o processo de atendimento ao cliente em
empresas de diferentes portes, tendo a característica de ser uma ferramenta capaz
de criar e gerenciar demandas abertas pelos clientes nos mais diversos canais de
comunicação com uma Organização.
DICA
Para saber mais detalhes sobre a ferramenta Zendesk, acesse em: https://
www.youtube.com/watch?v=ly3j9eqz6cc.
https://www.youtube.com/watch?v=MhiG33XrRdo.
223
NOTA
Mais informações sobre a ferramenta Zendesk podem ser obtidas, incluindo
os valores dos pacotes e suas respectivas funcionalidades, em seu site oficial:
https://www.Zendesk.com.br/.
3.1.5 TeamTrack
Segundo Serena (2006), a ferramenta proprietária Serena TeamTrack se
caracteriza por ser uma plataforma WEB, voltada para o gerenciamento de tarefas e
processos de modo seguro e altamente configurável. Um processo de acompanhamento
de tarefas é criado ao longo de todo o ciclo de vida da aplicação.
NOTA
A ferramenta Serena Team Track não se encontra mais disponível para
download em seu site oficial, tendo sido descontinuada.
Segundo Schwaber e Sutherland (2017), para que as equipes possam saber quais
as tarefas que estão sendo priorizadas e prontas para serem executadas, é necessário
que todas as atividades que precisam de algum tipo de atuação sejam expostas de
forma clara a todos os membros do time de desenvolvimento. Uma ferramenta útil para
esta função é o quadro kanban.
225
nas baias serão as consideradas mais prioritárias, enquanto as mais embaixo serão as
menos prioritárias. Os membros do time de desenvolvimento deverão buscar resolver as
tarefas mais prioritárias, sempre que estiverem disponíveis para atuar em nova tarefa.
Existem diversas ferramentas gratuitas que podem ser utilizadas por times
de desenvolvimento e que implementam o quadro kanban, como apresentado por
Santos (2021). Dentre elas temos a Trello e a Jira, que serão apresentadas nos próximos
subtemas. Com a utilização dessas ferramentas, todas as partes interessadas no projeto
poderão ter uma visão global do andamento do projeto, tendo em vista que será possível
saber a tarefa que cada membro está atuando em um determinado momento.
INTERESSANTE
É possível combinar a utilização de ferramentas voltadas para o
planejamento preditivo com ferramentas focadas em times ágeis, como
o quadro kanban. Dessa forma, os Gerentes de Projeto poderão ter o
benefício da previsibilidade, oferecida pelo método preditivo, com a dinâmica
da visualização do andamento do projeto em tempo real, oferecida pelas
ferramentas ágeis.
226
em um espaço visual (um quadro físico ou virtual), priorizando apenas o mínimo de
funcionalidades necessárias para que o produto possa ter uma versão inicial construída,
com o menor esforço, para que possa ser lançada em produção e disponibilizada para
usuários reais. As ideias que não foram contempladas em uma primeira versão, serão
executadas conforme o orçamento e recursos disponíveis.
4.1 TRELLO
A ferramenta Trello, com foco em dar suporte ao processo de gestão de projetos
e tarefas, permite que equipes organizem e acompanhem suas atividades em um
quadro virtual, sendo este uma implementação do quadro kanban. Cada quadro da
Trello é composto por listas, que representam as diferentes etapas de um processo, e
cartões, que representam as tarefas que precisam ser executadas. Os cartões podem
ser movidos entre as listas conforme o progresso do trabalho, e é possível adicionar
informações como prazos, membros responsáveis, comentários e anexos (TRELLO,
2023).
227
NOTA
Acessea ferramenta Trello em: https://Trello.com/en.
Figura 10 – Exemplo de quadro criado a partir da ferramenta Trello para gerenciamento e acompanhamento
de tarefas
Segundo Atlassian (2023), outra ferramenta bastante utilizada por equipes ágeis
é a Jira, que também apresenta as tarefas a serem atuadas pelo time de forma fácil,
através da implementação do quadro kanban, tendo as funcionalidades de ferramentas
voltadas para o gerenciamento de projetos com metodologias preditivas, como o
controle de linha de tempo das atividades, cronograma geral do projeto e orçamento,
além das cerimônias apresentadas pelo framework SCRUM.
4.2 JIRA
Atlassian (2023) explica que a Jira é uma ferramenta de gerenciamento de
projetos e problemas, possibilitando que as equipes criem projetos, planos de trabalho,
tarefas, atribuam responsáveis e acompanhem o progresso em tempo real. Além disso,
228
a Jira é uma ferramenta altamente personalizável, permitindo que as equipes criem
fluxos de trabalho customizados para se adequarem às necessidades específicas de
seus projetos.
Ainda de acordo com Atlassian (2023), a ferramenta Jira, assim como acontece
com a ferramenta Trello, é comumente utilizada por equipes de desenvolvimento de
Software, porém não se limitando apenas a esta área, mas também sendo aplicável às
áreas de recursos humanos, marketing, suporte ao cliente e gerenciamento de projetos.
Se mostra especialmente útil para equipes geograficamente distribuídas e remotas, pois
permite a atribuição de tarefas, comentários e notificações aos membros do time.
229
NOTA
A aplicação Jira poderá ser acessada em: https://confluence.atlassian.com/
jsbr/instalar-aplicacoes-jira-no-windows-920354877.html.
230
4.3 DOCKER
Docker (2023) apresenta uma ferramenta útil para equipes que pretendem
otimizar seu processo de implantação e execução de aplicações: a criação de
contêineres. Através da criação de um contêiner, é possível empacotar todo o código
fonte e dependências de uma aplicação, facilitando o processo de migração desta
aplicação para qualquer arquitetura. Dessa forma, quando um membro do time
de desenvolvimento realiza uma alteração no código, o processo de compilação e
integração ao container que está dando o suporte de infraestrutura da aplicação é feito
de forma rápida, otimizando o tempo do desenvolvimento.
A Figura 12 apresenta como um contêiner pode ser utilizado com o Docker. Por
ser um contêiner que irá agrupar diferentes aplicações e todo o ecossistema necessário
para executar uma aplicação, o ícone que representa a ferramenta Docker é uma baleia.
231
estar armazenados em um mesmo contêiner. O servidor Docker permite que diferentes
contêineres sejam criados com diferentes configurações, facilitando o processo de
deploy da aplicação, já que basta executar o servidor Docker com as imagens dos
contêineres criados que a aplicação já poderá ser utilizada.
DICA
Para entender melhor a aplicação de um contêiner criado com Docker,
sugerimos assistir ao vídeo https://www.youtube.com/watch?v=ntbpIfS44Gw.
Ainda segundo Anderson (2011), o método Kanban tem o quadro kanban (com
k minúsculo) como uma de suas ferramentas de trabalho, porém, com a vantagem de
poder ser utilizado por equipes de diferentes domínios do conhecimento. Qualquer
projeto poderá se beneficiar da utilização de um quadro visual que apresente, de forma
clara e objetiva, a todos os interessados, o real andamento das atividades pelo time de
desenvolvimento.
232
Figura 13 – Exemplo de divisão em baias de um quadro kanban
Segundo Rocha e Sousa (2021), o método Kanban, quando adotado por uma
Organização, promove a redução dos custos globais de um projeto, tendo em vista que
irá evitar o desperdício, na medida que reduz a quantidade de insumos estocados e que
não serão utilizados. Desta forma, o método irá destacar as Empresas que dele fizerem
uso frente aos seus concorrentes que não utilizam da mesma metodologia.
233
Segundo Marinho (2020), uma característica importante do método Kanban
é a definição de Work In Progress (ou WIP), que irá indicar a capacidade máxima que
uma baia do quadro kanban poderá acomodar, em termos de quantidade de tarefas. O
objetivo é evitar que gargalos sejam formados em determinados estágios do processo,
como a fase de homologação de tarefas ou de tarefas em execução. Então, quando a
quantidade de tarefas equivale ao valor definido pelo WIP de uma baia, outras tarefas
que se encontram no estágio anterior deverão aguardar, até que vague um espaço na
baia que está com a quantidade de tarefas igual ao número de tarefas definidas no WIP.
INTERESSANTE
Segundo Marinho (2020) e Anderson (2011), o WIP é representado por um valor numérico
que deverá estar de acordo com a capacidade de execução dos envolvidos no time do projeto
em uma determinada fase do processo. Então, caso o time possua duas pessoas com
o papel de product owner, por exemplo, o número WIP deverá ser calculado com
base na produtividade desses membros.
O objetivo é conseguir dar vasão às tarefas de cada etapa do processo, sem
que se formem gargalos significativos em etapas específicas. Se o valor definido
foi muito pequeno, é possível que a etapa anterior se torne um gargalo,
principalmente se for de execução mais rápida que a próxima etapa. Se o
valor definido for muito grande, mas a capacidade de execução não conseguir
acompanhar o ritmo, muitas tarefas irão se acumular nesta etapa, não sendo
passadas para as próximas etapas.
É comum que equipes que trabalham com metodologias ágeis façam uso de
uma mescla de métodos ou ferramentas que auxiliem no andamento do projeto, como
o framework SCRUM e alguns conceitos do método Kanban ou apenas o quadro kanban
para acompanhamento das atividades do projeto, conforme apresentado na Figura 14.
234
Figura 14 – Exemplo de utilização do quadro kanban por membros de um time ágil
235
RESUMO DO TÓPICO 1
Neste tópico, você aprendeu:
• O controle de versão centralizado cria uma versão de cada arquivo que será
gerenciado e armazena, a partir de então, apenas as alterações efetuadas em forma
de deltas.
• O controle de versão distribuído irá criar uma cópia de cada arquivo alterado para
cada nova versão criada, não armazenando apenas as alterações efetuadas, como
no modelo centralizado.
• Existem diferentes tipos de ferramentas para auxiliar projetos ágeis, sendo a maior
parte baseada no quadro kanban, como a Jira e a Trello.
• O Mínimo Produto Viável (MVP) poderá ser criado quando há uma grande incerteza
sobre os requisitos necessários para a aplicação ou quando há limitação de recursos
como orçamento e o cronograma de execução. Apenas o mínimo conjunto de
funcionalidades irá ser implementado, disponibilizando em produção para validação
do cliente a versão inicial do produto.
236
• O método Kanban é capaz de implementar um fluxo de trabalho de acordo com a
capacidade de produção do time, através de métricas como a WIP, sendo considerado
como um método puxado, já que é o time que irá definir quantas tarefas serão
executadas em cada ciclo de trabalho.
237
AUTOATIVIDADE
1 As ferramentas de controle de versão são importantes para o funcionamento de
equipes que trabalham geograficamente distribuídas, possibilitando que uma
mesma aplicação possa ter contribuições por diferentes membros do time de
desenvolvimento. Sobre as ferramentas de controle de versão, assinale a alternativa
CORRETA:
238
3 Para que uma ferramenta de controle de versão possa ser implementada, ela precisa
fornecer algumas funcionalidades básicas, que darão suporte a todo o processo.
De acordo com o texto e seus conhecimentos, classifique V para as sentenças
verdadeiras e F para as falsas:
a) ( ) V – F – F.
b) ( ) V – F – V.
c) ( ) F – V – V.
d) ( ) F – F – V.
5 Implementar e seguir processos são importantes para garantir que um fluxo sempre
aconteça da mesma forma. Com o processo de gerenciamento de tarefas, uma forma
de garantir que as etapas da resolução de um bug possam ser acompanhadas é
fundamental. Diante disso, disserte sobre a importância da utilização de ferramentas
de controle de tarefas para projetos que seguem as metodologias ágeis.
239
240
UNIDADE 3 TÓPICO 2 -
FERRAMENTAS PARA INTEGRAÇÃO
E ENTREGA CONTÍNUA
1 INTRODUÇÃO
Segundo Valente (2020), a prática da integração contínua surgiu com as
metodologias ágeis, mais especificamente com a Extreme Programming (XP), com o
objetivo de fatiar uma tarefa grande em pequenas partes, que pudessem ser integradas
ao código da aplicação principal sem muitos problemas (conflitos) no momento da
integração.
241
uma ferramenta voltada para a implementação do processo de CI/CD, existem diversas
ferramentas disponíveis no mercado, com instalação e configuração fáceis e que irão
gerenciar todo o processo, garantindo que todas as etapas sejam executadas com
sucesso.
242
• caso o sistema seja muito grande e seja necessária integração com outras
aplicações;
• caso a plataforma de desenvolvimento e destino sejam diferentes, dificultando a
realização dos testes do sistema no ambiente local do desenvolvedor.
IMPORTANTE
Sommerville (2011), Humble e Farley (2014) e Redhat (2023) chamam atenção para
a necessidade de utilização de ferramentas para controle de versão objetivando
realizar o processo de junção das contribuições dos diferentes membros de uma
equipe de forma automatizada, evitando, assim, falhas no processo manual.
ATENÇÃO
Segundo Redhat (2023), a periodicidade ideal para atualização do repositório de
controle de versão do código da aplicação é ao final de cada dia de trabalho.
Dessa forma, caso algum problema físico na máquina de algum programador
aconteça, o volume de retrabalho será reduzido.
Algumas categorias de testes básicos devem ser executadas para garantir que
as mudanças implementadas em uma baseline que será integrada a uma mainline sejam
243
avaliadas e aprovadas, prevenindo que problemas sejam detectados quando os ajustes
forem encaminhados para ambiente de produção. Podemos listar estas categorias de
testes como (IANCU, 2018):
IMPORTANTE
Segundo Pressman e Maxim (2021), a criação dos testes unitários deverá
possibilitar sua automatização e execução diária, além de facilitar a execução de
outros tipos de testes, como os testes de regressão.
244
Figura 15 – Etapas do processo de CI/CD
245
INTERESSANTE
Redhat (2022) explica que a sigla DevOps é a junção das siglas developers
(desenvolvedores) com operations (operações), indicando que o próprio membro
do time de desenvolvimento será o responsável por construir o código, realizar os
devidos testes, compilar de forma integrada à aplicação e, por fim, implantar em
produção. Todo o processo acontecendo de forma automatizada.
A utilização de ferramentas que possibilitem a automatização de
todo processo possibilita que a equipe adote a metodologia DevOps,
aumentando a velocidade das entregas e a qualidade dos artefatos
construídos (NETO, 2022) e (REDHAT, 2022).
ATENÇÃO
Segundo Neto (2022), o termo contínuo, presente na sigla CI/CD, indica que
a implantação das tarefas construídas (ou manutenções efetuadas no código)
são realizadas sem a necessidade de uma data programada. À medida que
as alterações no código vão ficando prontas, ou seja, testadas e devidamente
integradas ao código principal, estas vão sendo liberadas para uso em produção,
pelo usuário final.
246
A Figura 16 apresenta os passos dos ciclos de CI/CD. Segundo Neto (2022),
as tarefas de codificação, processo de compilação e realização de testes (de todos os
níveis necessários) formam o processo de integração contínua, enquanto as etapas
de criação de nova versão (do inglês release) e o processo de implantação em produção
(do inglês deploy) compreendem o ciclo de entrega contínua.
3 JENKINS
A Jenkins como uma ferramenta de código aberto, escrito na linguagem Java
e que possui seu foco no processo de CI/CD para qualquer tipo de projeto, otimizando
o processo de compilação, testes automatizados e implantação da versão em um
ambiente operacional (REDHAT, 2022).
NOTA
A ferramenta Jenkins poderá ter seu download efetuado através do link
https://www.jenkins.io/.
247
Figura 17 – Resumo do fluxo de um processo implantado via Jenkins
INTERESSANTE
A ferramenta Jenkins, segundo Rodrigues (2020), é altamente extensível,
podendo se integrar com diferentes outras ferramentas e plugins, que irão
ampliar o leque de funcionalidades da ferramenta, além de ser possível
instalá-la em qualquer Sistema Operacional.
248
A ferramenta irá construir um pipeline de execução, de forma automatizada,
formado a partir de um conjunto de plugins que darão o suporte necessário para as
tarefas de entrega contínua (CD). Para que o processo se complete, será necessário
que o código obtido da ferramenta de controle de versão passe por múltiplos estágios
de compilação e testes, até a implantação da nova versão em um ambiente operacional.
Todo este pipeline será descrito através de um arquivo texto que poderá ser armazenado
no repositório de código do projeto (JENKINS, 2023).
4 OUTRAS FERRAMENTAS
Além da ferramenta Jenkins, mencionada no subtema anterior, ainda existem
outras ferramentas que também estão disponíveis no mercado, sendo muitas delas
de código aberto, assim como a Jenkins. Abordaremos algumas das principais neste
subtema.
INTERESSANTE
Redhat (2021) explica que um container de aplicação é o empacotamento de
todos os componentes que se fazem necessários para a execução de uma
aplicação, em um ambiente centralizado. Dessa forma, é possível migrar esse
container para qualquer ambiente operacional (com qualquer configuração
de hardware ou sistema operacional), sem a necessidade de ter que recriar
todo o ambiente operacional, com suas respectivas configurações.
249
Outra ferramenta criada com o intuito de promover o CI/CD para Kubernetes é
a FluxoCD, se diferenciando da ArgoCD por ser um conjunto de ferramentas que irão
trabalhar em um cluster de execução, ou seja, atualizando diferentes contêineres ao
mesmo tempo, como menciona Rodrigues (2020).
• gerenciamento de projetos;
• gerenciamento de tarefas;
• controle de versão;
• métricas;
• gerenciamento de construções.
DICA
Recomendamos assistir ao vídeo a seguir para entender, de forma sucinta,
o propósito da ferramenta na prática. Acesse em: https://www.youtube.com/
watch?v=GjZF5E8eCMk.
250
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu:
251
AUTOATIVIDADE
1 Em um processo de integração e entrega contínua, é importante garantir que seja
executado sempre de forma repetida, minimizando a possibilidade de falhas de
execução durante o processo, o que justifica a utilização de ferramentas que apoiem
este processo. Considerando o texto apresentado e seus conhecimentos, assinale a
alternativa CORRETA:
I- O intuito de ser contínuo significa que as tarefas, assim que ficarem prontas e com
os testes realizados com sucesso, podem ser implantadas em ambiente operacional
sem a necessidade de se programar uma data específica.
II- A entrega contínua significa que todos os membros do time de desenvolvimento
devem estar trabalhando, continuamente, em uma tarefa do projeto, sem que haja
um intervalo entre elas.
III- O processo de integração contínua deve seguir um fluxo que envolve a implantação
em ambiente operacional, de uma tarefa implementada pelo time.
252
3 A ferramenta Jenkins, voltada para entrega e integração contínua, se mostra como
uma das mais utilizadas no mercado atualmente. Considerando seus conhecimentos
sobre as características da ferramenta Jenkins, classifique V para as sentenças
verdadeiras e F para as falsas:
a) ( ) V – F – F.
b) ( ) V – V – F.
c) ( ) F – V – F.
d) ( ) F – F – V.
253
254
UNIDADE 3 TÓPICO 3 -
NORMAS DE APOIO AO
GERENCIAMENTO DE CONFIGURAÇÕES
1 INTRODUÇÃO
Segundo ISO Standards (2023), adotar uma norma significa estar em conformidade
com padrões, muitas vezes internacionais, que representam a melhor forma de se fazer
alguma coisa. Assim, grupos em Organizações Normativas se preocupam em definir
quais as melhores práticas para se atingir um objetivo, garantindo sucesso ao final do
processo de implantação, através da obtenção dos resultados pretendidos.
255
Existem quatro modelos MPS, que são (SOFTEX, 2021):
• Guia Geral MPS para Software – Voltada para implantação de boas práticas no
processo de desenvolvimento de Softwares.
• Guia Geral MPS para Serviços – Apresentando as boas práticas relacionadas com
o fornecimento de serviços por Organizações.
• Guia Geral MPS de Gestão de Pessoas – Voltado para o processo de Gestão de
Pessoas.
• Guia de Avaliação – Voltado ao processo de auditoria e às variáveis envolvidas no
processo.
Kalinowski, Reinehr, Santos et al. (2010) chamam atenção para o fato que as
normas técnicas existentes, como o modelo CMMI, não apresentam uma forma detalhada
de implementação de suas definições, além de terem um alto custo na implementação
e aceitação pelas Organizações, o que foi facilitado com a criação do programa MPS.BR.
256
• ser isento de julgamento e opinião;
• possuir amplo conhecimento da organização, seus processos e produtos;
• colaborar com a equipe que fará a avaliação;
• se comprometer com a exatidão dos dados coletados e resultados obtidos;
• conhecer os termos e jargões utilizados pela Organização.
IMPORTANTE
Como frisado por Softex (2013), não se deve confundir a auditoria da Gerência
de Configuração com a auditoria que visa garantia da qualidade do produto,
tendo em vista que o processo realizado com os itens de configuração deve se
atentar a identificar se cada item possui um identificador único, se está tendo
suas alterações gerenciadas corretamente (garantindo sua rastreabilidade),
dentre outras questões específicas para o item de configuração.
CMMI (2006) enfoca que devem ser considerados itens de configuração todos
os produtos que forem entregues ao usuário final, assim como aplicações adquiridas
que deem suporte ao produto construído e itens de trabalho interno da equipe que
sirvam de apoio ao processo de desenvolvimento (ferramentas auxiliares, IDE de
desenvolvimento, plano de requisitos ou histórias de usuário etc.).
258
Tanto o modelo MPS.BR quanto o CMMI são baseados em normas técnicas,
aceitas internacionalmente, como as normas IEEE e ISO/IEC. Abordaremos algumas
normas importantes para o processo de gerenciamento de configuração no próximo
subtema.
3 NORMAS IEEE
Segundo IEEE (2023), ao se adotar uma norma reguladora, seja para um serviço
ou processo, busca-se garantir a excelência na prestação desse serviço ou as melhores
práticas para que o produto forneça a confiabilidade e segurança esperadas pelos seus
consumidores.
DICA
Para conhecer mais sobre o instituto IEEE, seu propósito, missão e as
respectivas normas publicadas, acesse em https://www.ieee.org/.
259
3.1 IEEE STD 828/1998
Conforme apresentado por IEEE (1998), a norma intitulada Padronização para
Planejamento do Gerenciamento de Configurações de Software (Standards for
Software Configuration Management Plans), tem o objetivo de instituir as melhores
práticas para a atividade de planejamento do gerenciamento de configurações de
Software (da sigla em inglês SCM).
A norma IEEE STD 828/1998 é avaliada por Gonçalves (2008) como não
específica para definir a forma como as atividades de gerenciamento de configurações
deverão acontecer, se focando apenas no conteúdo necessário para a elaboração de
um plano de gerenciamento de configurações. Como estrutura mínima necessária para
o plano de gerenciamento de configurações, é necessário que ele apresente:
260
A Figura 18 apresenta o fluxo do processo de identificação dos itens de
configuração, estabelecido pela norma IEEE STD 828/1998.
261
Ainda conforme explicado por IEEE (1987), o planejamento elaborado para
o gerenciamento de configurações de Software é considerado o ponto central de
integração para o processo de manutenção e integração do processo de gerenciamento
de configuração de Software, tendo em vista que este processo engloba todas as etapas
do ciclo de vida de uma aplicação.
A norma IEEE STD 1042/1986 define alguns itens que devem ser considerados
para a elaboração de um plano de gerenciamento de configuração, tais quais (IEEE,
1987):
Murta (2006) afirma que há uma diferença entre os termos versão e revisão
nessa norma, que considera uma versão aquela baseline que sofreu evoluções,
enquanto as revisões são compostas por correções de falhas ou melhorias que não
alterem as funcionalidades já implementadas nos itens de configuração.
262
Essa norma ainda indica a importância da definição de baselines para facilitar o
trabalho em conjunto de vários membros que estão fisicamente distantes entre si, mas
trabalham na mesma equipe de desenvolvimento. A forma de numeração das versões,
assim como o formato dos rótulos que serão aplicados a cada item de configuração
que será gerenciado também se mostra uma questão importante no processo de
armazenamento e recuperação dos itens gerenciados, como enfatizado por IEEE (1987).
4 NORMAS ISO/IEC
Segundo ISO Standards (2023), a Organização Internacional para Padronização
(International Organization for Standardization – ISO), se caracteriza por ser
independente, não governamental, formada por membros de 167 países que trazem o
conhecimento e práticas necessárias para que sejam definidos padrões internacionais
aos principais desafios globais.
Assim como a Organização IEEE, a ISO tem seu foco em elaborar e disponibilizar
normas que sigam as melhores práticas para as áreas abordadas, sendo um Instituto de
referência regulatória.
263
NOTA
As normas ISO/IEC podem ser encontradas em seu site oficial para aquisição.
Acesse em: https://www.iso.org/home.html.
ISO (2017) também explica que são apresentadas diretrizes para a definição
da estrutura da configuração do Software, incluindo a identificação de elementos de
configuração, a definição de suas relações e a identificação de sua versão. Além disso,
a norma fornece diretrizes para o registro e o controle de mudanças na configuração,
incluindo a gestão de solicitações de mudança, a verificação de mudanças e a aprovação
de mudanças.
A norma ISO 10007, conforme explicado por Ionică (2005), considera que
processos são correlacionados quando são executados por diferentes funcionalidades,
de forma que gerenciar todos esses processos é a base para o gerenciamento da
qualidade.
Ferreira e Cagnin (2006) afirmam que a norma também inclui diretrizes para a
gestão de problemas relacionados à configuração, incluindo a identificação de problemas,
a solução de problemas e o rastreamento de soluções de problemas. E finalmente, a
norma apresenta diretrizes para a documentação da configuração, incluindo a garantia
de que a documentação da configuração esteja sempre atualizada e disponível para
consulta.
264
No próximo subtema apresentaremos a norma ISO 12207, voltada para a gestão
do ciclo de vida de Softwares.
IMPORTANTE
Como destacado por Pavão (2009), a grande competitividade do mercado
atual é um fator importante para adoção de normas que garantem qualidade,
sendo um diferencial para as Empresas que buscam implantar a norma ISO
12207.
A ISO 12207, em concordância com o destaque dado por Pavão (2009), enfatiza a
importância de uma boa comunicação e colaboração entre todas as partes interessadas,
incluindo usuários, desenvolvedores, fornecedores, proprietários do sistema e gerentes
de projetos.
Conforme apresentado por Pavão (2009) e ISO (2017), Empresas que estão
em conformidade com a ISO 12207 garantem que seus projetos de Software sejam
executados de forma eficiente, eficaz e com alta qualidade. Além disso, a conformidade
com a norma pode ser usada como uma forma de demonstrar a competência e a
confiança dos fornecedores de Software para os clientes e outras partes interessadas.
265
É importante mencionar que a norma ISO 12207 tem o foco no desenvolvedor,
servindo-lhe de referência para que todas as etapas necessárias para construção de um
produto de Software sejam definidas e seguidas da melhor forma, como apresentado
pelos autores ISO (2017) e Júnior, Júnior e Silva (2009).
ISO (1998) afirma que o relatório define conceitos, processos e técnicas para
garantir que as configurações sejam identificadas, controladas, documentadas e
gerenciadas ao longo do ciclo de vida do projeto. Ainda destaca a importância de garantir
a consistência e integridade das configurações ao longo do tempo, o que é fundamental
para garantir a qualidade e a eficiência dos sistemas.
• implementação do processo;
• identificação da configuração;
• controle da configuração;
• avaliação da configuração;
• gerência de liberação e distribuição.
266
De forma complementar, ISO (1998) afirma que, para que a liberação de uma
nova versão aconteça, é preciso que um plano de dependência entre atividades do
processo de gerência de configuração seja formulado para cada nova versão (ou marco)
da aplicação. Todo processo de gerenciamento de configuração de Software deve ser
devidamente acompanhado, garantindo sua aderência ao planejamento efetuado e,
conforme necessário, promovendo a melhoria contínua de todo processo.
267
LEITURA
COMPLEMENTAR
REQUISITOS DE FERRAMENTAS DE GERENCIAMENTO DE CONFIGURAÇÃO
1 INTRODUÇÃO
[...]
268
Existem diversas ferramentas de GCS disponíveis no mercado, sendo que a
maioria possui foco no controle de versões e controle de liberações de arquivos-fonte,
negligenciando outros requisitos importantes do GCS; um exemplo é a atividade de
auditagem de configuração que tem recebido pouca atenção (CHAN; HUNG 1997), o qual
é um aspecto a ser tratado neste trabalho. A comunidade envolvida em processos de
desenvolvimento de Software em geral, tais como especificadores, implementadores,
testadores, arquitetos de Software etc., são os principais interessados neste trabalho,
no qual serão estabelecidas necessidades, restrições e expectativas em relação às
ferramentas de gerenciamento de configuração.
[...]
[...]
269
2.2 IDENTIFICAÇÃO DOS ITENS
• planos de gerenciamento;
• especificações de requisitos e desenho;
• documentação de usuário;
• projetos de teste, casos de teste;
• software de suporte;
• dicionários de dados;
• código-fonte;
• código executável;
• bibliotecas;
• bases de dados com dados processados ou aqueles que são parte de um programa;
• documentação de manutenção.
[...]
2.3 CONTROLE
[...]
270
através das contas podem ser usados para rastrear o fluxo de Software através de sua
evolução. O objetivo desta atividade é basicamente reportar transações que ocorrem
entre entidades controladas pelo GCS (IEEE, 1987, p. 30).
[...]
2.5 AUDITAGEM
[...]
271
[...]
3 REQUISITOS DE FERRAMENTAS
[...]
Alguns mecanismos serão mais bem exemplificados e outros que devem ser
suportados pela ferramenta serão apresentados a seguir:
272
• Check-in/check-out: A ferramenta deve suportar o mecanismo Check-in/check-
out. Antes de começar a trabalhar num item, o desenvolvedor executa um check-
out. [...]
• Hierarquia: A ferramenta deve organizar os arquivos em grupos que suportam as
visões dos projetos (SCHAMP, 1995).
• Controle de liberações: A ferramenta deve fornecer um mecanismo de identificação
de versões marco do sistema. [...]
• Marcação de versões: A ferramenta deve marcar de liberações do Software, sendo
de grande importância para o paralelismo em um ambiente (SCHAMP, 1995).
• Armazenamento de diferentes tipos de arquivos: A ferramenta deve permitir o
versionamento de arquivos com diferentes tipos e não apenas textuais (SCHAMP,
1995).
• Trilha de auditagem: A ferramenta deve gravar as atividades executadas em itens de
configuração sobre o controle de versões (SCHAMP, 1995).
• Controle de acesso: A ferramenta deve limitar ações de usuários não autorizados.
[...]
• Relacionamentos entre itens: A ferramenta deve suportar o registro de atributos e
relacionamentos entre objetos. Os relacionamentos permitem verificar o que pode
ser afetado se uma mudança no item ocorrer. [...]
[...]
273
3.4 CONTROLE DE MUDANÇAS (ESTUBLIER, 2002, p. 13)
[...]
274
RESUMO DO TÓPICO 3
Neste tópico, você aprendeu:
• A normas técnicas são importantes para garantir boas práticas já definidas por
membros experientes das principais instituições internacionais, como a IEEE e ISO,
garantindo competitividade para as Empresas que delas fizerem uso e melhoria
contínua nas etapas dos processos de gerenciamento de configuração, construção
e manutenção de Softwares dentre outras áreas importantes da Tecnologia da
Informação.
275
AUTOATIVIDADE
1 Uma baseline ou linha base é um conceito importante tanto para o controle de versão
de uma aplicação quanto para o controle dos itens de configuração de um projeto.
Com base em seus conhecimentos sobre baselines e itens de configuração, assinale
a alternativa CORRETA:
276
( ) A norma indica a elaboração de um plano de gerenciamento de configuração de
Software.
( ) A norma não fala sobre a distribuição de responsabilidades entre os membros do
time de desenvolvimento, por não ser uma tarefa pertencente ao processo de
gerenciamento de configurações.
( ) Uma liberação só acontecerá com baselines criadas nos últimos 30 dias.
a) ( ) V – F – F.
b) ( ) V – F – V.
c) ( ) F – V – F.
d) ( ) F – F – V.
277
REFERÊNCIAS
ANDERSON, D. J. Kanban – Mudança Evolucionária de Sucesso para Seu Negócio
de Tecnologia. Sequim: Blue Hole Press, 2011.
ARUN, R. Simple Learn, c2023. What is Trello and How To Use It? Disponível em: ht-
tps://bit.ly/41d9ZWj. Acesso em: 28 mar. 2023.
BIGGS, M. Infoword, 2004. TeamTrack keeps the business processes flowing. Disponí-
vel em: https://www.infoworld.com/article/2666505/TeamTrack-keeps-the-business-
-processes-flowing.html. Acesso em: 10 fev. 2023.
BITKEEPER. BitKeeper, 2023. Why use BitKeeper when there are lots of great alter-
natives? 2023. Disponível em: https://www.BitKeeper.org/why.html. Acesso em: 9 fev.
2023.
278
BUGZILLA. Bugzilla, 2023. About – What is Bugzilla? Disponível em: https://www.Bug-
zilla.org/about/. Acesso em: 8 fev. 2023.
CAROLI, P. Lean inception: como alinhar pessoas e construir o produto certo. 1. ed.
Atualizada. São Paulo: Editora Caroli, 2018.
CHACON, S.; STRAUB, B. Pro GIT, 2. ed. [S. l.]: Apress, 2022. E-book. Disponível em:
https://git-scm.com/book/en/v2. Acesso em: 23 jan. 2023.
DOCKER. Docker telepresence, c2023. Use containers to Build, Share and Run your
applications, 2023. Disponível em: https://www.docker.com/resources/what-contai-
ner/. Acesso em: 10 fev. 2023.
DYNAMSOFT. Reasons to Switch from SourceSafe: How to Make Your Life Easier
with SourceAnywhere Standalone, 2007. Disponível em: https://www.dynamsoft.com/
products/Reasons%20to%20Switch%20from%20SourceSafe%20(SourceAnywhe-
re%20Standalone).pdf. Acesso em: 9 fev. 2023.
279
FERREIRA, M. A. O.; CAGNIN, M. I. Proposta de um Modelo de Referência de Gerência de
Configuração para um Processo de Reengenharia baseado em Framework, In: Simpó-
sio Brasileiro de Sistemas de Informação. 3., Curitiba, PR, nov. 2006. Anais [...] Curitiba,
PR: Univem, 2006. Disponível em: https://sol.sbc.org.br/index.php/sbsi/article/downlo-
ad/14748/14593. Acesso em: 11 fev. 2023.
GIANNONE, D. et al. Quality Assurance and Safety Conformity for the 4-metre
Multi-Object Spectroscopic Telescope (4MOST) Project, 2018. Disponível em:
http://www.eso.org/sci/libraries/SPIE2018/10702-264.pdf. Acesso em: 11 fev. 2023.
GNU. CVS – Concurrent Versions System v1.11.23, 2023. Disponível em: https://
www.gnu.org/ Software/trans-coord/manual/cvs/cvs.html#What-is-CVS_003f. Aces-
so em: 23 jan. 2023.
HENSON, V.; GARZIK, J. BitKeeper for Kernel Developers, 2002. Disponível em:
https://www.kernel.org/doc/ols/2002/ols2002-pages-197-212.pdf. Acesso em: 9 fev.
2023.
HRISTOVSKI, T. Linkendin, 2017. Why Jira is #1 Software Development Tool for Agile
Teams? Disponível em: https://www.linkedin.com/pulse/why-jira-1-software-develop-
ment-tool-agile-teams-tome-hristovski/. Acesso em: 28 mar. 2023.
280
HUMBLE, J.; FARLEY, D. Entrega Contínua: como entregar Software de forma rápida
e confiável. Porto Alegre: Bookman, 2014.
IBM. Software support discontinuance: IBM Rational Synergy 7.2.x and IBM
Rational Change 5.3.x; Software withdrawal and support discontinance: Select
IBM Rational Synergy and Change Suite 7.2.x part numbers, 2022. Disponível em: ht-
tps://www.ibm.com/downloads/cas/AP-ENUSWP22-0007-CA/name/AP-ENUSWP22-
0007-CA.PDF. Acesso em: 10 fev. 2023.
IBM. IBM, c2023. IBM Rational Synergy, 2023. Disponível em: https://www.ibm.com/
products/rational-synergy. Acesso em: 10 fev. 2023.
IEEE. Guide to Software Configuration Management. ANSI/IEEE Std., [s. l.], p.1-93, 12
set. 1988. Disponível em: https://ieeexplore.ieee.org/document/89631. Acesso em: 10
abr. 2023.
IEEE. Standard for Software Configuration Management Plans. IEEE Std., [s. l.], v., n.,
p.1-24, 27 out. 1998. Disponível em: https://ieeexplore.ieee.org/document/720569.
Acesso em: 10 abr. 2023.
IONICĂ, A. Facts About The Relationship Between The Project Management (Pm) And
The Quality Management (Qm) In Compliance With The Present Standards. Annals of
the University of Petroşani, Economics, [s. l.], v. 5, p. 169-172, 2005. Disponível em:
https://www.academia.edu/download/32713624/Annals-2005.pdf#page=169. Acesso
em: 11 fev. 2023.
ISO. ISO, 1998. Information technology – Software life cycle processes – Configuration
Management – ISO/IEC TR 15846, 1998. Disponível em: https://www.iso.org/stan-
dard/30516.html. Acesso em:
ISO. ISO, 2017. Quality management — Guidelines for configuration management – ISO
10007, 2017. Disponível em: https://www.iso.org/standard/70400.html. Acesso em: 10
abr. 2023.
281
ISO STANDARDS. ISO, 2023. Benefits of standards. Disponível em: https://www.iso.org/
benefits-of-standards.html. Acesso em: 30 jan. 2023.
MICRO FOCUS. Micro Focus, 2019. What’s new – StarTeam. Disponível em: https://ad-
mhelp.microfocus.com/starteam/en/latest/online/Content/GetStarted/wn_17.1.htm.
Acesso em: 10 fev. 2023.
282
MICRO FOCUS. Micro Focus, 2023a.Serena Is Now Part of Micro Focus. Disponível em:
https://www.microfocus.com/en-us/products/serena/overview. Acesso em: 10 fev.
2023.
283
PONTES, R. M. STONE: um processo de gerência de configuração de Software para
projetos acadêmicos, 2019, 91 p. Monografia (Graduação em Engenharia de Software) –
Universidade Federal do Ceará, Russas, CE, 2019. Disponível em: https://repositorio.ufc.
br/bitstream/riufc/49802/1/2019_tcc_rmpontes.pdf. Acesso em: 4 fev. 2023.
PRESSMAN, R. S. e MAXIM, B. R. Engenharia de Software: uma abordagem profissio-
nal. 9. ed. Porto Alegre: AMGH, 2021.
RATIONAL. ClearCase Reference Manual – Release 4.1 and later, 2000. Disponível
em: http://ftpmirror.your.org/pub/misc/ftp.software.ibm.com/software/rational/docs/
documentation/manuals/cc42unix/cc_ref_1.ux.pdf. Acesso em: 9 fev. 2023.
ROSS, R. Pitfalls and Tips on Using ClearCase clearfsimport, 2011. Disponível em:
https://www.spkaa.com/wp-content/uploads/2013/12/SPK_clearfsimport.pdf. Acesso
em: 9 fev. 2023.
RODRIGUES, B. R. O2B, 2020. Simplificando suas pipelines Jenkins com Shared Libra-
ries. Disponível em: https://bit.ly/3of1b3r. Acesso em: 10 abr. 2023.
284
SAMPAIO, E. C. da. Uma abordagem para ajustar o controle de versão à natureza
das aplicações web. 2021, 84 p. TCC (Bacharelado em Ciência da Computação) –
Universidade Federal do Amapá, Macapá, 2021.
SERENA. Serena TeamTrack, 2006. Process Creates Success. Disponível em: https://
www.yumpu.com/en/document/read/34777136/serena-TeamTrack-serena- Software.
Acesso em: 10 fev. 2023.
285
TECHTARGET. TechTarget, 2011. Concurrent Version System (CVS). Disponível em:
https://www.techtarget.com/whatis/definition/Concurrent-Versions-System-CVS.
Acesso em: 22 jan. 2023.
WAHLI, U. et al. Software Configuration Management: A Clear Case for IBM Ratio-
nal. ClearCase and ClearQuest UCM. [s. l.]: IBM/Redbooks, dez. 2004.
VUORRE, M.; CURLEY, J. P. Curating Research Assets: A Tutorial on the Git Version
Control System. Aps, [s. l.], v. 1, n. 2, p. 219–236, 2018. Disponível em: https://journals.
sagepub.com/doi/pdf/10.1177/2515245918754826. Acesso em: 6 fev. 2023.
286