Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de Software - Edição 69 PDF
Engenharia de Software - Edição 69 PDF
rodrigo.devmedia@gmail.com
Doutor e Mestre em Engenharia de Software pela COPPE/UFRJ. Realizou seu Pós-Doutorado na
University of Maryland Baltimore County e Centro Fraunhofer nos Estados Unidos. Atualmente é
Professor Titular do Programa de Pós-Graduação em Sistemas e Computação da Universidade
Salvador - UNIFACS.
Consultora Técnica
Daniella Costa
Nicolli Souza Rios Alves
nicolli.devmedia@gmail.com
Jornalista Responsável Bacharel em Ciência da Computação na Universidade Salvador (UNIFACS), Mestranda em Sistemas
Kaline Dolabella - JP24185 e Computação no Programa de Pós-Graduação em Sistemas e Computação da UNIFACS na linha de
Na Web Engenharia de Software. É editora da Engenharia de Software Magazine.
http://www.devmedia.com.br/revista-engenharia-de-software-magazine
Se você tiver algum problema no recebimento do seu exemplar ou precisar de algum gostaria de ler, que artigo você mais gostou e qual artigo você menos gostou. Fique a vontade para
esclarecimento sobre assinaturas, exemplares anteriores, endereço de bancas de entrar em contato com os editores e dar a sua sugestão!
jornal, entre outros, entre em contato com: Se você estiver interessado em publicar um artigo na revista ou no site ES Magazine,
entre em contato com os editores, informando o título e mini-resumo do tema que você gostaria
www.devmedia.com.br/central
(21) 3382-5038 de publicar.
Publicidade
Para informações sobre veiculação de anúncio na revista ou no site entre em
contato com:
publicidade@devmedia.com.br
Sumário
Conteúdo sobre Agilidade
sobre e
35 – Gestão de Projetos: Usando processos de desenvolvimento
[ Rommel Gabriel Gonçalves Ramos e Daniel Couto Gatti ]
s
ta
edição
Nesta seção você encontra artigos voltados para as práticas e métodos ágeis.
O
Scrum é uma abordagem ágil um projeto real, detalhando os papéis e funções
que prima pela otimização e de cada participante, cada etapa do processo e
objetividade no processo e em sua importância para que o projeto e a equipe
todas suas etapas, costuma minimizar ganhem maturidade e evoluam de forma que
burocracias, documentação e módulos se obtenha um produto com qualidade e que
em relação a outros processos (como obedece às regras da plataforma utilizada.
RUP). Tudo é baseado nas reuniões do
processo (que são muitas). Entre uma
reunião e outra o trabalho é realizado. A equipe na qual este artigo foi baseado
Essas reuniões são importantes ao ponto é constituída uma Product Owner, um
de algumas empresas não usarem ne- Scrum Master (que também acumula fun-
nhuma documentação escrita, ou seja, ções de Coordenador), um Analista de Tes-
fazem Sprints semanais e reuniões às tes (o autor do artigo), uma Designer, um
segundas e sextas, de Planning e Review Analista de UX (User Experience) e quatro
respectivamente, onde fazem todo o tra- desenvolvedores, que se dividem entre as
cking das atividades e desenvolvimento plataformas iOS e Android, fora outras
do produto. pessoas que auxiliam a equipe, como ana-
Roberto Passani Neste artigo usaremos o modelo de um listas de produto, infraestrutura e outros.
robertopassani@gmail.com
Sprint de 10 dias úteis, ou aproximada- A manutenção do processo é responsabi-
Quase oito anos de experiência com testes de
software, iniciado em qualidade de sistema mente 14 dias corridos, sendo o Planning lidade do Scrum Master, ou seja, marcar
operacional de aparelhos celulares, depois no primeiro dia e o Review no último. todas as reuniões, garantir a presença de
banco de dados, sistema de investimentos, pla- Após o Review ocorre a Retrospectiva toda a equipe, comandar as reuniões em
taforma de e-commerce e atualmente atuando e no decorrer do Sprint o pré-planning. si, escrever no sistema de gerenciamento
com aplicativos móveis. Há pouco menos de um
Diariamente devem ocorrer as reuniões do processo, auxiliar no desenvolvimento
ano atuando em projeto de aplicativos móveis.
Recentemente teve a oportunidade de conhe- Diárias (Daily Meetings). Todas essas dos critérios de aceite, avaliar questões de
cer mais do processo Scrum na prática. etapas são detalhadas no artigo. serviço, backend e etc.
tornar o ambiente do projeto o melhor possível, ações internas, é realizada corretamente em cada reunião a que pertence,
como performance de um colaborador específico ou mudanças garantir que todos estão executando suas atividades no mo-
no processo devem ser resolvidas internamente e monitoradas mento certo do projeto, se o desenvolvimento segue padrões
durante as daily meetings do próximo sprint. de qualidade, testes unitários, design patterns, métricas, bus-
Muitos projetos não veem importância na retrospectiva, car novas formas de atingir metas assim como, analisar se o
principalmente com a evolução dos sprints onde o processo fica analista de testes (ou qualidade) está seguindo corretamente
mais sólido e as retrospectivas se tornam repetitivas. Porém, o processo, escrevendo os objetivos de testes no pré-planning,
só há evolução do projeto se houver reuniões de retrospectivas se os testes da primeira história já estão prontos após o plan-
bem feitas. É importante também estar atento ao fato de que ning (para iniciar o desenvolvimento), se a cobertura dos
ninguém pode levar os pontos de melhoria para o lado pes- cenários de testes está adequada, coordenar se o processo é
soal. Essa é uma reunião para um processo de maturidade e corretamente seguido, bem próximo dos analistas que fazem
o conceito é altamente profissional com objetivo de fazer um com que ele ocorra.
trabalho melhor. Seu excedente pode ser analisar o sistema e ver se há formas
diferentes e talvez melhores de fazer o mesmo, pesquisar,
Planning - Sprint #2 procurar se inteirar nos documentos sobre sistemas similares
Após a retrospectiva, analisados os pontos positivos e defi- e analisar se há novos padrões sendo adotados, procurar o
nidos os pontos de melhoria, ocorre o Planning para definir que há de mais moderno, quais os caminhos que estão sendo
o segundo sprint. As ações de melhoria já devem começar a seguidos para obter o melhor desse modelo de sistema, assim
ser adotadas imediatamente, e o processo se reinicia, histórias como também do processo. Seguir práticas, discussões em
devem ser priorizadas. Se houve história com split no sprint fóruns, ler as revistas especializadas e obter dados de como
anterior, então essas podem ser as primeiras, porém não é otimizar o processo sem denegrir a qualidade, ou seja, o
obrigatório, por isso os branches devem estar bem organizados ScrumMaster deve ser sempre muito dedicado e proativo,
para que uma história com menor prioridade possa ser conti- muito curioso e ciente das atividades diversas para ver falhas
nuada em um sprint posterior sem uma linha de aprendizado onde não estão olhando, seja no desenvolvimento ou nos testes,
muito longa. Após priorizadas as histórias, deve-se discutir a sempre com objetivo de aprimorar onde pode haver algum
pontuação, e definir as histórias que ficam no Sprint e quais tipo de evolução.
serão adiadas para os próximos sprints.
Devem ser evitadas discussões paralelas nas reuniões. No
Planning algumas pessoas tendem a sair do foco, gostam de
opinar, porém é o Product Owner quem define, as prioridades
são dele e da área de negócios. É necessário manter o objetivo
de construir o Sprint rapidamente para retornar ao desenvol-
vimento, porém sem deixar pontos indefinidos, como dito
antes, todo o design, UX, backend, serviços, etc., precisa estar
definido antes de iniciar o Sprint.
Scrum Master
Sua função principal é definir e manter o processo sendo
seguido, marcar e manter os ritos, garantir a presença de to-
dos (ou o máximo possível) os participantes, ver se cada ação
A
área de TI para uma empresa definir uma variação no gerenciamento
possui orçamentos altos, a de custos do projeto. Por isso, essa é
tecnologia custa caro e os ele- uma atividade extremamente dinâmica,
mentos correspondentes também, um junto com o gerenciamento do escopo e
bom servidor, por exemplo, pode passar do tempo definem um tripé principal
da casa dos R$ 15.000,00. Muitas vezes da gerência de projetos na área de TI.
Fabiana de Lima o custo não é definido pela equipe de Ressalta-se aqui que outras áreas como a
fabianadelima@gmail.com
Mestre em Ciência da Computação na sub-
projetos e sim pelo próprio cliente ou qualidade, por exemplo, são de extrema
área de Engenharia de Software, atua como área supervisora da TI na empresa, que importância para um bom projeto.
professora e pesquisadora na área. Exerceu possui uma necessidade pulsante e esta- A tarefa de gerenciar os custos do
funções de analista de sistemas em empresas belece limites de custos para resolvê-la. projeto engloba, além do minucioso
de desenvolvimento de software e de recru- Com isso, as características do software processo de planejamento e definição
tamento e seleção. Atualmente, atua como
professora formadora também em cursos de
ou das necessidades do cliente/área su- dos custos e de seu gerenciamento, a
EAD em Maringá - PR. pervisora podem, e geralmente o fazem, definição e escolha de bons orçamentos
A seguir, apresenta-se as entradas determinado recurso do projeto, dentre incertezas no orçamento pode ser utili-
pertencentes a esse processo, com um outras; zado. Nessa técnica, conforme os dados
exemplo de como elas podem ser conse- • Contratos: informações de contratos passam a ser mais reais, as reservas po-
guidas em projetos de desenvolvimento e os custos dos mesmos sejam eles para dem também ser melhoradas, reduzidas
de software: aquisições de bens ou de serviços devem ou até eliminadas;
• Plano de gerenciamento de custos: ser relatados para que os custos possam • Opinião especializada: qualquer opi-
produzido como saída no inicial, tem fazer parte do orçamento total do proje- nião de membros técnicos pertencente ao
como principal objetivo nortear a forma to. Um exemplo é o contrato de serviço grupo de stakeholders ou que participa-
como o gerenciamento de custos será para fornecimento de Internet em proje- ram de projetos anteriores definindo e
realizado no projeto; tos de desenvolvimento em TI; planejando custos destinados a ativida-
• Linha de base do escopo: é a especifica- • Fatores ambientais da empresa: são des de projeto podem ser ouvidas, para
ção do escopo do projeto, com as principais elementos como normas, padrões ou que melhores estimativas dos recursos
entregas e os requisitos de aceitação. Os diretrizes estabelecidos que podem vir possam ser feitas no projeto;
documentos que vão sendo produzidos a influenciar os custos de desenvolvi- • Relações históricas: elas podem ser
durante o planejamento do escopo fazem mento do projeto; utilizadas para a realização de análises
parte dessa base para o projeto; • Ativos de processo organizacional: paramétricas ou análogas, de forma que
• Estimativas de Custo das atividades: são elementos conseguidos a partir custos estimados em outros projetos pos-
obtida como saída do processo anterior da realização de outros projetos na sam servir de suporte para a definição
traz uma visão da relação custo X ativi- empresa, que possam vir a direcionar de custos de um novo projeto;
dades para os elementos do projeto; melhor o gerenciamento de custos do • Restrição de limites financeiros: o
• Bases de estimativas: que também são projeto. Um exemplo claro são as linhas cronograma de projeto pode auxiliar
obtidas a partir do processo anterior de de base (baselines) do projeto, ou ainda, muito na relação de definição das
forma a oferecer suporte para o orçamen- definição de recursos produzidos em restrições existentes para o projeto.
to total do projeto; antigos projetos. Tarefas em paralelo ou subsequên-
• Cronograma do projeto: este docu- ciais podem dispensar mais ou menos
mento é produzido durante o processo De posse desses elementos de entrada, recursos.
de gerenciamento do tempo do projeto e a tarefa de Determinar o Orçamento
deve conter no mínimo as datas (início e pode ser executada, a partir do uso das A partir da realização dessas tarefas
término) planejadas para as atividades, ferramentas e técnicas. A seguir, exem- para a Determinação do Orçamento as
as metas, os recursos necessários e o plificamos de forma simples seu uso seguintes saídas devem ser produzidas:
encadeamento natural das atividades de para o desenvolvimento de um software: • Linha de base de custos: relaciona-se
acordo com as restrições empregadas; • Agregação de custos: os custos devem ao orçamento total do projeto em função
• Calendár ios dos recursos: nele ser agregados de acordo com a estrutura do tempo e de pequenos orçamentos
estarão indicadas as datas em que os hierárquica da EAP. Assim, custos totais intermediários de entregas e marcos
recursos como materiais, pessoas ou de um pacote presente no nível final da particulares.
equipamentos estarão sendo usados EAP são agregados aos custos de outros • Requisitos de recursos financeiros do
por outros projetos ou ainda liberados pacotes no mesmo nível para formarem projeto: produzidos para que os recur-
para o uso. Nesse processo a obtenção o custo total do elemento presente no sos necessários para o projeto possam
desse calendário é uma condição pri- EAP no nível superior a eles, consecuti- ser adquiridos ao longo do desenvolvi-
mordial para as estimativas. Além do vamente até que o custo total do projeto mento do mesmo, sem perda de poder de
que essa informação é importante, para possa ser calculado; execução, antecipando os mesmos para
identificar a possibilidade de trabalho • Análise de reservas: um esquema de sua aplicação no tempo devido.
de determinado membro da equipe em identificação de percentual para reser- • Atualização de documentos do pro-
seu projeto; como para que o projeto es- va de custos, com o intuito de suprir jeto: são produzidos de acordo com
teja preparado para riscos de eventuais
atrasos quando se tratar de um recurso
advindo de outra região, ou que depende
de fatores ambientais ou temporais (final
de ano, recessos ou grandes feriados)
para serem adquiridos;
• Registro de riscos: conseguidos a
partir do processo de gerenciamento de
riscos do projeto são eficientes para que
fiquem claros quais são os riscos de uma
seleção ou de uma disponibilização de Figura 3. Entradas, ferramentas e técnicas e saídas para a Determinação do Orçamento
documentos que contém dados, conseguidos a partir da Os processos estabelecidos devem também se relacionar
realização de outros projetos na empresa, devem ser atuali- com outras áreas de gerenciamento de projetos descritas no
zados com os dados do projeto atual para possíveis futuras PMBOK. Ora oferecendo entradas para outros processos, ora
experiências. recebendo como entrada elementos produzidos por eles e que
serão necessários para o desenvolvimento do Gerenciamento
Sabemos que o gerenciamento deve ser iniciado com um pla- dos Custos.
nejamento para o mesmo tendo como base diversos elementos
do projeto, tais como, as atividades definidas no gerenciamento Links:
do escopo e o cronograma do projeto. Essas três grandes áreas
do gerenciamento (trazidas pelo PMBOK) tempo, escopo e PMI no Brasil – a Maior Associação Mundial para Profissionais de Gerencia-
custos estão intrinsecamente relacionadas, criando-se uma mento de Projetos
dependência mútua entre as mesmas. http://brasil.pmi.org/
Os conhecimentos apresentados não fornecem um padrão, Página do projeto OpenProject
eles se traduzem por um Guia, que pode ser modificado, http://sourceforge.net/projects/openproj/
melhorado ou seguido em sua completude de acordo com o
projeto a ser gerenciado.
Ressalta-se aqui que esses processos possuem uma lógica Você gostou deste artigo?
sequencial didática, porém, sua execução pode ter atividades
sobrepostas em muitos casos, durante o Gerenciamento dos Dê seu voto em www.devmedia.com.br/esmag/feedback
Custos, como por exemplo, as atividades de estimar os custos
Ajude-nos a manter a qualidade da revista!
e definir o orçamento.
R
isco é falta de informação, a tempo gasta-se de casa até o destino
incerteza é a base do risco, por final, e outros.
José Luis Braga
zeluis@dpi.ufv.br essa razão ele está no futuro. Risco não é associado com certeza,
Pós-doutoramento em Tecnologias da Infor- O passado é conhecido, logo é possí- sendo assim, quando uma ação é de ris-
mação na University of Florida (1988-1999). vel saber quais incertezas afetaram co, não se pode definir a mesma sendo
Doutor em Informática-Departamento de In- positivamente ou negativamente. Por ruim ou boa. Existem diversos esportes
formática da PUC-Rio (1990). Mestre em Ciên-
mais que cada pessoa seja única e viva de alto risco como, por exemplo, o pa-
cias da Computação-Departamento de Ciência
da Computação da UFMG (1980). Atualmente experiências individuais, o cotidiano é raquedismo. Durante um salto, o para-
é Professor Titular do Departamento de Infor- cercado de influências comuns, que for- quedas pode desdobrar no ar da melhor
mática do Centro de Ciências Exatas e Tecno- necem informações que são mapeadas e maneira possível, mas em outros casos
lógicas da Universidade Federal de Viçosa-MG. utilizadas por todos como, por exemplo, isso pode não acontecer. As pessoas não
Atua na área de Ciência da Computação, com
o melhor caminho para ir ao trabalho, deixaram de praticar o esporte por causa
ênfase em Engenharia de Software e Sistemas
de Informação. o melhor tipo de investimento, quanto desse perigo, elas mapearam as formas
indesejadas da abertura do paraquedas e desenvolveram téc- • Análise qualitativa dos riscos: processo de priorização dos
nicas para lidar com cada uma delas. riscos para análise ou ação adicional através da avaliação e
Criar soluções para lidar com as incertezas não se restringe combinação de sua probabilidade de ocorrência e impacto;
ao esporte. Inovar é assumir riscos e é necessário arriscar • Análise quantitativa dos riscos: o processo de analisar
para quebrar o “status quo”. Sejam inovações disruptivas numericamente o efeito dos riscos identificados nos objetivos
(ver BOX 1), em processos, em modelos ou outros, a intenção gerais do projeto;
é aproveitar uma oportunidade para melhorar algo. Essa • Planejamento de respostas aos riscos: processo de desen-
busca pela melhoria constante obriga a esbarrar continua- volvimento de opções e ações para aumentar oportunidades
mente com o desconhecido. Todo caminho novo tem incer- e reduzir ameaças aos objetivos do projeto;
tezas associadas, mas muitas vezes possui características • Monitoramento e controle de riscos: processo de imple-
que interceptam com outros já conhecidos. Gerenciar riscos mentação de planos de respostas aos riscos, acompanhamento
é utilizar de conhecimentos prévios para minimizar efeitos dos riscos identificados, monitoramento dos riscos residuais,
indesejados. Este artigo fornece um conjunto de informações identificação de novos riscos, e avaliação da eficácia do pro-
para auxiliar o gerente de projetos a enxergar os pontos po- cesso de risco durante todo o projeto.
sitivos e negativos das decisões em projetos de software.
Na figura são apresentadas as entradas, ferramentas técnicas
BOX 1. Inovações disruptivas e saídas dos principais processos de gerenciamento de risco.
Para obter sucesso, uma organização deve estar compromis-
Disruptivo é algo que quebra conceitos, ruptura ou rompimento de algo. Uma inovação
sada em realizar gerenciamento de risco de forma proativa e
disruptiva é um produto, serviço ou tecnologia que rompe ideias preestabelecidas, ou seja, algo
consciente. Uma escolha consciente deve ser feita em todos
que extrapola o até então conhecido.
os níveis da organização para identificar e seguir um efetivo
gerenciamento de risco durante todo o ciclo de vida de um
O risco pode ser visto de várias formas. Primeiro, risco gira projeto. O gerente de projetos pode utilizar a Figura 1 para
em torno dos acontecimentos futuros. A questão é: pode-se organizar um plano de ação de gerenciamento de risco.
mudar ações hoje, a fim de criar oportunidades para uma A gestão de riscos tornou-se uma preocupação global, os
melhor situação amanhã? Segundo, risco envolve mudanças, efeitos indesejados dos riscos se transformaram em uma
tais como mudança de mentalidade, opinião, ações, ou lugares. apreensão. Por esse motivo, em 2009, saiu a norma ISO 31000
Em um mundo estático, não existe risco, logo, esse é o terceiro e no Brasil foi lançada em 30/11/2009 a ABNT NBR ISO 31000
aspecto do risco. Risco envolve escolhas, e todas as incertezas - Gestão de Riscos, Princípios e Diretrizes. A norma ISO 31000
que essas escolhas trazem. tem reconhecimento internacional, não tem finalidade de
O gerenciamento dos riscos em áreas como administração, certificação, mas é uma ferramenta de auxílio às empresas,
economia, estatística e matemática financeira, além de ser muito trazendo uma forte vantagem competitiva.
empregado é tratado como elemento chave para tomada de de- Observa-se que os projetos de desenvolvimento de software, em
cisão. O risco envolvido em projetos é uma condição ou evento geral, apresentam atrasos de cronogramas, custos realizados além
incerto que, se ocorrer, terá um efeito positivo ou negativo. Esses do planejado e funcionalidades aquém das expectativas. Esses
efeitos podem ser no prazo, custo, esforço e qualidade. Um risco problemas, embora considerados inerentes ao desenvolvimento
pode ter diversas causas e, se ele acontecer, pode ter diversos im- de software por muitos autores, podem ser minimizados e con-
pactos. Uma causa é uma condição que favorece o acontecimento trolados pelo contínuo gerenciamento de risco em projetos.
de resultados positivos ou negativos. Por exemplo, a causa pode O tempo de reação aos riscos é um fator preponderante para a
ser uma mudança no escopo, a falta de conhecimento ou pessoas economia, como pode ser visto na Figura 2. A reação imediata,
insuficientes para executar um projeto, entre outros. feita no momento da identificação e da análise dos riscos, na
O processo de manipulação dos riscos é realizado com a análise fase inicial, é chamada de reação de prevenção, e acontece
e gerenciamento. Na análise estão as etapas de identificação, esti- antes da decisão final sobre o projeto, alterando as principais
mativa e avaliação, já o gerenciamento é entendido como controle variáveis de impacto no projeto, como escopo, qualidade,
do planejamento e o monitoramento do sucesso dos mecanismos tempo ou condições financeiras. O quanto antes ocorrerem
de controle. Esse processo tem como objetivo básico observar o a identificação, prevenção e contingência relacionadas aos
que pode dar errado e auxiliar nas tomadas decisões. riscos, menores serão os custos de impacto ao projeto. Em
A Figura 1 apresenta a visão geral do gerenciamento de riscos contraposição, a estimativa de custo do projeto possui maior
apresentado no PMBOK e possui os seguintes itens: nível de acerto com o passar do tempo.
• Planejamento do gerenciamento de risco: o processo de A Figura 3 é conhecida como Cone de incerteza, sua leitura
definição de como conduzir as atividades do gerenciamento mostra que, no início do projeto, a estimativa possui maior
de risco; taxa de erro. Estimativas realizadas na fase conceitual po-
• Identificação dos riscos: processo de determinação de dem ter um erro de quatro vezes, ou um-quarto do valor
quais riscos podem afetar o projeto e documentação de suas estimado; o erro se reduz com o aumento do conhecimento
características; sobre o projeto.
desenvolvimento acarreta riscos a saída de um desenvolvedor, Existem diversos riscos negativos no desenvolvimento de
com grande impacto negativo no projeto mas, em contrapar- software. Estudos mostram que 25% dos sistemas de software
tida, uma equipe desse tamanho é mais fácil de ser alinhada, de larga escala em desenvolvimento são cancelados. Em média,
gerenciada e treinada; nessa situação cabe o gerenciamento projetos ultrapassam o prazo de desenvolvimento em mais
otimista para manter a equipe motivada e coibir saídas de da metade do tempo planejado, projetos maiores geralmente
colaboradores. são piores. Apenas 25% dos projetos de larga escala não são
considerados “falhas operacionais”, os outros 75%, ou não
Autores funcionam como previsto ou não são usados na íntegra.
Fatores de Risco a B c d
1. Mudança de Escopo/objetivos X X X X Riscos no desenvolvimento de software
A seguir é apresentada uma lista de riscos que impactam o
2. Falta de envolvimento adequado dos usuários X X X
desenvolvimento de software. Na Tabela 1 são listados trinta
3. Requisitos mal entendidos e/ou mal definidos X X X
e três fatores de risco, organizados por ordem de relevância.
4. Escopo/objetivos pouco claros ou equivocados X X X Essa lista é um trabalho exploratório com gerentes de projeto
5. Prazos e tempo para tarefas mal estimados X X X de software de diversas localidades no Brasil e em Hong Kong,
6. Gerenciamento impróprio de mudanças X X X Finlândia e Estados Unidos da América.
7. Volatilidade nos requisitos (falta de requisitos estáticos) X X X
Grupos de fatores de risco
8. Custos mal estimados X X X
A partir dos riscos listados na Tabela 1, é possível observar
9. Falta de poderes para o gerenciamento de projetos X que alguns possuem impactos semelhantes nos projetos de
10. Conflito entre departamentos de usuário X X software como, por exemplo, mudança de escopo/objetivos;
11. Falha em gerenciar as expectativas finais dos usuários X X escopo/objetivos pouco claros ou equivocados; requisitos mal
12. Planejamento inexistente ou inadequado X X entendidos e/ou mal definidos; volatilidade nos requisitos
(falta de requisitos estáticos). Na Tabela 2 é apresentada uma
13. Pessoal envolvido insuficiente/inapropriado X X X X
comparação entre diferentes grupos de fatores de risco.
14. Falta de conhecimento/competência dos envolvidos
X X X X
no projeto
Grupo 1 Grupo 2 Grupo 3
15. Falta de Cooperação dos usuários X X X
Novidade Tecnológica Tecnologia Conhecimento e incerteza tecnológica
16. Falta de metodologia efetiva em gerenciamento de
X X
projetos Complexidade da Aplicação Requisitos
Escopo e Requisitos
17. Controle pobre ou inexistente X X Tamanho da Aplicação Escopo
18. Adoção de novo método/tecnologia X X X Habilidades da Equipe
Equipe de desenvolvimento
Expertise Pessoas
19. Falha em obter comprometimento do cliente X X
Gestão de Projetos
20. Definição imprópria de papéis e responsabilidades X X - Financiamento
21. Falta de comprometimento da alta gerência X X X Processo de
-
22. Falta de motivação da equipe X desenvolvimento Gestão de projetos
- Planejamento
23. Falta de habilidade para o gerenciamento de projetos X X
Programação/
24. Assunto novo ou não familiar X X X -
Agendamento
25. Mudança no proprietário do projeto ou na alta - Patrocínio/Propriedade
X Relacionamento com cliente e usuário
gerência - Gestão de Relacionamentos
26. Rotatividade da equipe X Valor/importância atribuído ao
Ambiente Organizacional Ambiente Corporativo
27. Projeto com múltiplos fornecedores X projeto
28. Usar nova metodologia de desenvolvimento em Relacionamento com o ambiente
X - Dependências externas
projetos importantes externo
29. O sistema possui integração e interface com outros Tabela 2. Tabela comparativa entre os grupos de riscos propostos na
X X literatura
sistemas
30. Sistema complexo X
Tomando por base os dados apresentados na tabela anterior,
31. Tarefas complexas X X
é proposta uma nova lista de grupos de fatores de risco. Esses
32. Falta de tecnologias maduras/existentes X
conjuntos foram propostos para um melhor entendimento
33. Deficiência de execução em tempo real X acerca dos riscos. Segmentar os riscos em grupos facilita o
entendimento do gerente de projetos sobre o contexto de cada
Tabela 1. Levantamento dos fatores de risco do desenvolvimento de
software risco. Os seis grupos propostos são:
Os símbolos “+ e -”, simbolizam que, quando se altera deter- Pode ser iniciada uma leitura do diagrama a partir de qual-
minada variável, essa causa um impacto na variável adjacente quer item, por exemplo tomando como ponto inicial a capacidade
(ligada a ela) no mesmo sentido (sinal de mais) ou em sentido produtiva, quanto mais código é produzido, tem-se mais software
oposto (sinal de menos). Na modelagem anterior, quando se desenvolvido, e maior é a quantidade de erro gerado, em conse-
aumenta solução sintomática, seta com “+”, aumenta-se o efeito quência cresce também a quantidade de retrabalho que a equipe
de consequências não-intencionais e diminui-se, seta com terá que realizar e, com isso, menos software desenvolvido, uma vez
“-”, sintoma do problema. As consequências não-intencionais que retrabalho é refazer algo que a princípio já estava pronto. A
quando crescem, aumentam os efeitos de sintoma do problema. quantidade de software produzido é afetada tanto pela capacidade
O arco cortado por duas linhas paralelas tem o significado de produtiva quanto pelo retrabalho, e por sua vez, ele impacta o tempo
que o efeito produzido não é imediato, ou seja, demanda um de entrega, que significa o tempo necessário para entregar o proje-
tempo até ocorrer, possui um “delay”. As letras “R” e “E” sig- to, ou seja, se existe muito software pronto, precisa-se de menos
nificam, respectivamente, que o caminho fechado tende a um tempo para entregá-lo, de outro modo, se o desenvolvimento não
reforço ou equilíbrio, ou seja, sintoma do problema estimula foi satisfatório o prazo de entrega cresce. O tempo de entrega afeta
solução sintomática e solução sintomática desestimula sintoma diretamente a capacidade produtiva, quanto mais tempo é gasto
do problema, com isso tem-se um equilíbrio entre eles. desenvolvendo algo, cresce também o conhecimento da equipe,
A Figura 5 apresenta um exemplo de diagrama de causalida- tanto na tecnologia utilizada para desenvolver o projeto, quanto
de utilizando as variáveis de risco citadas neste artigo. no projeto em si, com isso, a produção aumenta.
Uma nota importante: por mais que a produção aumente com
o passar do tempo, esse fator não infere em um crescimento
constante, a tendência é um aumento produtivo nos primeiros
meses e posteriormente uma estabilidade, sendo assim, tem-se
um estado de equilíbrio com o tempo. Esse equilíbrio pode
ser quebrado aumentando a equipe, melhorando os treina-
mentos, técnicas motivacionais e outros. Esses fatores podem
ser testados a partir de simulações, diagramas de causalidade
são convertidos em diagramas matemáticos que suportam
simulações de cenários.
A simulação é a avaliação numérica de um modelo mate-
mático que descreve um sistema. Muitos sistemas são muito
complexos para soluções analíticas fechadas, ou seja, planilhas,
fluxogramas, entre outros. Portanto, a simulação é usada
para exercitar modelos com entradas dadas para ver como o
sistema executa.
Existem diversas técnicas para realizar simulações com vari-
áveis dinâmicas. Uma dessas é conhecida como Dinâmica de
Sistemas – DS. Com a DS é possível analisar o comportamento
dinâmico dos riscos. Utilizando os contextos dos grupos de
Figura 5. Esta figura é um exemplo de diagrama de causalidade no
riscos listados neste artigo, foram realizadas análises com
desenvolvimento de software base em simulações.
Análise de Pontos de Função – APF, é uma técnica que visa medir o tamanho funcional de um
software, para, a partir desses dados, oferecer mecanismos para estimar esforço, prazo e custo.
Na edição de número 44 da Engenharia de Software Magazine é possível ter uma visão geral
acerca dessa técnica. Na tabela o esforço é dado na unidade de homem-horas, uma medida
que significa a quantidade de horas que um homem teria que trabalhar para realizar o projeto.
Tamanho da equipe é o número de pessoas envolvidas na realização do projeto.
A
gestão de projetos de software Este artigo descreve a dificuldade existente
tem se fortalecido ao longo dos da aplicação da atividade de monitoramento
anos em razão da necessidade e controle nos processos de desenvolvimento
de garantir a qualidade e o sucesso de software, apresentando como ferramentas
dos projetos de software. Aliada aos e indicadores podem auxiliar a sua utilização
Rommel Gabriel Gonçalves Ramos conceitos clássicos da área da adminis- constante em uma organização. Apesar dos
Possui Graduação em Administração de Siste-
mas de Informação pelo Centro Universitário tração, tais como planejar, coordenar e processos de desenvolvimentos de software in-
Una (2004). Pós-graduação (especialização) em controlar, com os elementos específicos dicarem atividades ligadas ao monitoramento
Melhoria de Processo de Software pela Univer- da engenharia de software em relação e controle, na gestão de projetos ainda há uma
sidade Federal de Lavras (2007). Mestrado em aos processos de software consegue in- carência no uso efetivo dessas atividades.
Tecnologias da Inteligência e Design Digital
tegrar os aspectos tanto organizacionais
(TIDD) na PUC/SP. (2013). Atualmente e Consul-
tor de TI na Caixa Econômica Federal. Professor quanto técnicos.
do SENAC/SP do Curso de Pós-Graduação (Espe- As atividades organizacionais atribuí- acrescentam o aperfeiçoamento dos pro-
cialização) em Gestão e Governança de Tecnolo- das à gestão de projetos de software vão cessos, mas existem fatores que devem
gia da Informação). desde o atendimento às necessidades ser observados.
do cliente em relação a um produto e/ O trabalho da gestão de projetos de
ou serviço, até o relacionamento com software é tentar cumprir o que foi
Daniel Couto Gatti
Possui graduação em Ciência da Computação os envolvidos em todo o ciclo de vida planejado. Muitos projetos fracassam
pela Pontifícia Universidade Católica de São do projeto, já que as atividades técnicas em seus objetivos ou não os alcançam
Paulo (1995), Mestrado em Comunicação e englobam desde as metodologias de de- plenamente devido a diversos desvios
Semiótica pela Pontifícia Universidade Católica senvolvimento de software até a implan- ou falhas que não foram identificados
de São Paulo (2002) e Doutorado em Educação
tação propriamente dita do software. no seu planejamento. Para obter mais
Matemática pela Pontifícia Universidade Cató-
lica de São Paulo (2009). Atualmente é Diretor Decidir sobre a utilização de um qualidade, não só no software, mas em
da Faculdade de Ciências Exatas e Tecnologia instrumento para aplicar as práticas todo o seu processo, deve-se realizar um
da PUC/SP, professor da Faculdade de Tecnolo- administrativas principalmente em planejamento minucioso.
gia Bandeirantes, professor titular do Instituto relação à gestão projetos de software O planejamento diz como e onde a
Brasileiro de Tecnologia Avançada e assistente
torna-se adequado, pois, os ganhos equipe deveria estar em determinado
mestre da Pontifícia Universidade Católica de
São Paulo. que são obtidos com essa iniciativa momento. O monitoramento e controle,
por sua vez, consistem em acompanhar as atividades plane- • A tomada de decisão da gestão de projetos sem considerar
jadas com a finalidade de identificar possíveis problemas ou os indicadores e relatórios de produtividade fornecidos pelo
desvios e deflagrar eventuais ajustes que possam ser necessá- monitoramento e controle nos processos de desenvolvimento
rios para fazer o projeto de volta ao seu caminho original. de software: os relatórios de desempenho extraídos dos indi-
Monitorar e Controlar é definido pelo o PMI (Instituto de cadores devem estar alinhados ao monitoramento e controle
Gerenciamento de Projetos) como “coletar os dados do projeto sendo uma maneira de trazer mais visibilidade aos gestores
referente ao plano de gerenciamento, produzindo medições de projetos. Ainda que eles não sejam utilizados na sua totali-
de desempenho e divulgando essas informações por meio de dade, devem ser considerados em ações a serem tomadas não
relatórios”. Dessa forma, podem ser tomadas ações corretivas somente pelo conhecimento empírico, mas em informações
quando desvios forem identificados, garantindo o atendimento consolidadas e confiáveis em relação aos problemas identifi-
dos objetivos do projeto. cados nos processos de desenvolvimento de software.
Analisando o monitoramento e o controle, pode-se dizer que
enquanto no monitoramento estão às atividades envolvendo o Monitoramento e controle
acompanhamento e a coleta de dados a respeito do andamento, Uma pesquisa do PMI realizada em 2012 revelou a frequência
o controle consiste na tomada de ações frente aos desvios en- com que as empresas brasileiras adotam atividades de mo-
contrados no monitoramento, e por isso é necessário que haja nitoramento e controle em seus projetos. Nesta pesquisa
uma medição e a apuração de indicadores com as informações identificou-se que:
que serão reportadas à gestão de projetos de software. • 22% sempre adotam;
O problema em realizar o monitoramento e controle nos pro- • 54% adotam na maioria das vezes;
cessos de desenvolvimento de software, pode estar relacionado • 24% nunca adotaram.
com as seguintes situações:
• A forma de utilização do monitoramento e controle nos Com a análise desses dados, identificamos que 76% das
processos de desenvolvimento de software: nem sempre os empresas de certa forma adotam alguma forma de acompa-
processos e metodologias de desenvolvimento de software nhamento das fases e/ou atividades dos projetos porém, 24%
deixam explícito como deve ser feito o monitoramento e con- das empresas não se preocupam em fazer nenhum monitora-
trole. E normalmente cada metodologia aborda o processo de mento e controle.
software buscando a execução das suas fases e atividades sem Esses dados não diferem do cenário quanto aos problemas
nenhum tipo de monitoramento e controle; mais frequentes enfrentados pelas empresas em relação aos
• As ferramentas não são suficientes para o suporte das seus projetos atribuídos a prazo (65,7%), escopo (61,7%) e custo
atividades de monitoramento e controle nos processos de (41,3%).
desenvolvimento de software: algumas ferramentas dispo- Neste estudo, 18,4% dos problemas está relacionado à falta de
níveis no mercado que são utilizadas como apoio à gestão de uma ferramenta para o monitoramento e controle, indicando
projetos de software não oferecem opções suficientes para que 24,5% dos softwares mais utilizados são desenvolvidos
realizar o monitoramento e controle no acompanhamento internamente por opção da empresa, o que mostra que as em-
das fases e/ou atividades no processo de desenvolvimento de presas não conseguem encontrar uma ferramenta adequada
software, pois devem apresentar alguns pontos e ter opções devido às necessidades e particularidades internas.
que permitam: Cabe destacar que, habitualmente, o monitoramento e contro-
- selecionar projetos de software com alinhamento às estra- le é considerado pelo nível operacional como uma ação de audi-
tégias corporativas, analisando os seus impactos e riscos; toria em que são tratadas as inconformidades das atividades e
- gerenciar os recursos envolvidos em vários projetos de dos processos. Esse pensamento dificulta a sua abordagem do
software, compartilhando as suas informações de tempo, que deve ser entendido, pois não é apenas uma tarefa externa
custo e qualidade; que verifica como o processo está sendo conduzido, mas se ele
- gerenciar o retorno de investimento em pequenos, grandes é realmente entendido pela equipe e principalmente se gera
e complexos projetos de software; valor aos envolvidos e responsáveis pelo processo.
- gerenciar o ciclo de vida dos projetos promovendo melho- O monitoramento e controle nos projetos de software busca
rias contínuas no processo de software; garantir a verificação do que deve ser realizado no projeto,
• Existem falhas no papel dos gerentes de projetos em relação ou seja, acompanhar os processos que são executados com as
ao monitoramento e controle nos processos de desenvolvi- suas atividades, identificando ações corretivas e preventivas,
mento de software: o monitoramento e controle fornecem estabelecendo assim maneiras de tomada de decisão na gestão
insumos importantes para que o processo de desenvolvimento de projetos de software.
de software possa ser melhorado nas suas fases e/ou ativida- Se a execução do projeto tem como objetivo entregar produtos
des, mas a atuação gerencial precisa ser mais eficaz e eficiente e/ou serviços planejados, o monitoramento e controle envol-
em relação às ações preventivas e/ou corretivas, pois de nada vem o acompanhamento destes resultados para garantir que
adianta ter instrumentos que auxiliam este processo se não estejam de acordo com o planejado e que o projeto continue
existe uma atuação assertiva; seguindo o plano de gerenciamento do projeto.
em relação ao plano de gerenciamento do projeto definido dos riscos residuais, identificação de novos riscos e avaliação
que inclui: do processo de risco durante todo o projeto.
• Controlar as mudanças e recomendar ações preventivas em • Administrar as requisições: gerenciamento das aquisições
antecipação a possíveis problemas; e monitoramento dos desempenhos dos contratos, fazendo
• Monitorar as atividades do projeto em relação ao plano de mudanças e correções conforme necessário.
gerenciamento e a linha de base de desempenho do mesmo;
• Influenciar os fatores que poderiam impedir o controle inte- A utilização do PMBOK no monitoramento e controle nos
grado de mudanças, para que somente as mudanças aprovadas processos de software explicita uma documentação em todas
sejam implementadas. as áreas, tornando esta atividade aderente ao que deseja a
gestão de projetos de software.
Este monitoramento contínuo oferece à equipe do projeto uma
visão melhor sobre a saúde do mesmo e identifica quaisquer Ferramentas para monitoramento e controle
áreas que requeiram atenção adicional. Não apenas monitora e Os softwares para o gerenciamento de projetos são usados
controla o trabalho que está sendo feito durante um grupo de com diversos fins como: planejar, monitorar, controlar, relatar
processos, mas também monitora e controla o projeto inteiro, e comunicar a situação dos projetos.
incluindo os seguintes processos (apresentados na Figura 2): Um software de monitoramento e controle implica em deter-
• Monitorar e controlar o trabalho no projeto: acompanhamento, minar quais dados coletar, como, quando e quem irá coletá-los,
avaliação e regulação do progresso para atender aos objetivos de analisa-los e relatar o progresso alcançado:
desempenho definidos no plano de gerenciamento do projeto; • Quais dados são coletados: dados coletados são determina-
• Realizar o controle integrado de mudanças: avaliação de dos por qual sistema de medição será usado para o controle
todas as solicitações de mudanças, aprovação de mudanças e do projeto.
gerenciamento das mesmas em entregas, ativos de processos • Coletar dados e fazer análise: com a definição de quais
organizacionais, documentos e plano de gerenciamento do dados são coletados, o próximo passo é estabelecer por quem,
projeto; quando e como os dados serão agregados;
• Verificar o escopo: formalização da aceitação das entregas • Relatórios e o modo de reportar: quem recebe os relatórios
terminadas no projeto; de desempenho? As partes interessadas e gerentes necessitam
• Controlar o escopo: monitoramento do andamento do escopo de diferentes tipos de informação relacionadas ao projeto.
do projeto e do produto e gerencia-
mento das mudanças feitas na linha
de base do escopo;
• Controlar o cronograma: monito-
ramento do andamento do projeto
para atualização do seu progresso e
gerenciamento de mudanças feitas na
linha de base do cronograma;
• Controlar os custos: monitoramen-
to do andamento do projeto para
a atualização do seu orçamento e
gerenciamento de mudanças feitas
na linha de base dos custos;
• Realizar o controle da qualidade:
monitoramento e registro dos re-
sultados da execução das atividades
de qualidade para avaliar o desem-
penho e recomendar as mudanças
necessárias;
• Reportar o desempenho: coleta e
distribuição de informações sobre o
desempenho, inclusive relatórios de
andamento, medições do progresso
e previsões;
• Monitorar e controlar os riscos:
implementação de planos de respos-
tas aos riscos, acompanhamento dos
riscos identificados, monitoramento Figura 2. Monitoramento e Controle no PMBOK
Fique por dentro: que não possui como atividade final o desenvol-
Este artigo descreve como a gestão de projetos uti- vimento de software, mas que necessita ter a vi-
Rommel Gabriel Gonçalves Ramos liza a engenharia de software para a modelagem sibilidade para as suas áreas gestoras de projetos
rommel.gabriel@gmail.com
de produtos de software e, consequentemente, e negócios, verificando e acompanhando as fases,
Possui Graduação em Administração de Siste-
as atribuições requeridas no gerenciamento de etapas e atividades previstas nos processos de de-
mas de Informação pelo Centro Universitário
Una (2004). Pós-graduação (especialização) em projetos. O objetivo principal é apresentar a apli- senvolvimento, comumente utilizados em várias
Melhoria de Processo de Software pela Univer- cação quanto às técnicas, modelos, metodologias empresas de desenvolvimento de software, ten-
sidade Federal de Lavras (2007). Mestrado em e ferramentas para a construção do produto de do como premissa a construção e a manutenção
Tecnologias da Inteligência e Design Digital software em um determinado cenário. O mode- de produtos e serviços que são documentados e
(TIDD) na PUC/SP. (2013). Atualmente e consul-
lo de desenvolvimento utilizado na empresa é aderentes aos normativos internos desta empre-
tor de TI na Caixa Econômica Federal. Professor
do SENAC/SP do Curso de Pós-Graduação (Espe- baseado em controles institucionais. Os cenários sa, estipulados pelas áreas gestoras de tecnologia
cialização) em Gestão e Governança de Tecnolo- apresentados neste artigo são os mais usados da informação.
gia da Informação). Professor Assistente da FMU atualmente em uma empresa de grande porte,
- Faculdades Metropolitanas Unidas do Curso de
Análise e Desenvolvimento de Sistemas.
A
s empresas de desenvolvimento precisam vencer o seu buraco negro que
Daniel Couto Gatti
daniel@pucsp.br
de software buscam alguma é o seu estilo de gerenciar de maneira
Possui graduação em Ciência da Computação forma de gerenciar os seus informal, sem métodos e sem técnicas.
pela Pontifícia Universidade Católica de São projetos de software, desejando ter um Constantemente são oferecidas em
Paulo (1995), Mestrado em Comunicação e modelo e/ou processo de “sucesso” que diversos eventos de tecnologia da infor-
Semiótica pela Pontifícia Universidade Católica
possa atender todas as etapas, fases e ati- mação voltados para o gerenciamento
de São Paulo (2002) e Doutorado em Educação
Matemática pela Pontifícia Universidade Cató- vidades na produção do software. Entre- de projetos: ferramentas, metodologias,
lica de São Paulo (2009). Atualmente é Diretor tanto, não existe uma receita que garanta modelos e melhores práticas que possam
da Faculdade de Ciências Exatas e Tecnologia à empresa alcançar este objetivo. tornar o desenvolvimento de software
da PUC/SP, professor da Faculdade de Tecnolo- O SEI - Software Engineering Institute mais eficaz e eficiente, tendo em vista
gia Bandeirantes, professor titular do Instituto
constatou que o principal problema que que hoje somos muito dependentes da
Brasileiro de Tecnologia Avançada e assistente
mestre da Pontifícia Universidade Católica de aflige as organizações de software é ge- mão-de-obra técnica especializada para
São Paulo. rencial e preconizou que as organizações o processo de produção de software.
O diagnóstico serve de base para recomendações de melhoria Estes fatores dificultam o trabalho das equipes de desenvolvi-
de processos, e estas recomendações podem ser consolidadas mento na medição do desempenho dos projetos, na verificação
em um plano de melhoria. Além dos benefícios naturais, como de pontos falhos, no registro de problemas, na realização de
produtividade e qualidade, acredita-se que em curto prazo as estimativas e planejamentos adequados.
certificações dos processos fabris será um pré-requisito básico De acordo com o PMBOK, “as atividades da organização
para contratações de produtos de software. executora é que determinam as responsabilidades, os objetivos
Por esses motivos, o CMM (Modelo de Capacidade e Maturida- e as políticas, de modo que o projeto atenda às necessidades
de) tornou-se ao longo de uma década o mais conhecido, usado que motivaram sua realização, com as atividades dos processos
e respeitado pela comunidade de engenharia de software, com o conduzidos do início ao fim, conforme adequado”.
objetivo principal de estabelecer um padrão de qualidade para
software desenvolvido para as forças armadas. Atualmente, o Aplicação da gestão de projetos nas empresas de
modelo de referência é o Capability Maturity Model Integration software
- CMMI v1.3, lançado em 2002 como evolução do CMM. As organizações devem buscar alternativas sobre como fazer
As empresas de software que alcançam níveis de maturi- a gestão de seus projetos de software, visando a diminuição
dade mais elevados possuem processos capazes de produzir dos fracassos e a melhoria na qualidade de seus produtos e
produtos extremamente confiáveis dentro de limite de custo e serviços. Os processos tradicionais de desenvolvimento e a
cronograma previsível. À medida que cresce o entendimento gerência de projetos têm sido caracterizados como uma des-
dos níveis de maturidade mais elevados, as áreas de processos crição linear de um processo sequencial.
existentes vão sendo redefinidas e outras ainda podem ser Qualquer projeto de software será beneficiado pelo uso de
adicionadas ao modelo. algum tipo de modelo, inclusive no setor comercial, em que às
Além dos modelos CMM/CMMI, outra publicação que in- vezes é mais comum distribuir softwares inadequados devido
fluencia a abordagem de desenvolvimento de software é o Cor- à produtividade oferecida pelas linguagens de programação
po de Conhecimentos em Gerência de Projetos - PMBOK. visual. A modelagem poderá auxiliar a equipe de desenvol-
O PMBOK descreve os conhecimentos necessários para uma vimento a visualizar melhor o planejamento do sistema e
gerência de projetos não apenas de software, mas de outras permitir que o desenvolvedor seja mais rápido ajudando a
áreas de conhecimento, definindo como aplicar os conheci- construir o item correto.
mentos, habilidades, ferramentas e técnicas às atividades do No desenvolvimento de um software, podemos utilizar
projeto a fim de atender aos seus requisitos. Dentre algumas modelos existentes no mercado como referência de forma que
das atividades de um gerente de projeto estão: seja uma metodologia de sucesso.
• Identificar as necessidades do projeto; Neste contexto, é essencial o uso da gestão de projetos para
• Estabelecer objetivos claros e alcançáveis; descrever como um software deva ser construído e modelado
• Equilibrar as demandas conflitantes de qualidade, escopo, utilizando ferramentas, padrões e normas baseados em pro-
tempo e custo; cessos e como eles serão aplicados em quem desenvolve e/ou
• Adaptar as especificações, planos e a abordagem às diferentes adquire soluções para conduzir o seu negócio no dia a dia.
preocupações e expectativas das diversas partes interessadas; e; Isto deve ser uma meta a se alcançar nas empresas que estão
• Minimizar os impactos negativos das incertezas dos em busca de benefícios e resultados, principalmente para esta-
projetos. belecer melhorias contínuas na mudança de paradigmas, e na
maneira de introduzir inovações tecnológicas para a resolução
Além da questão de conhecimentos em gerência de projetos, de problemas rotineiros e complexos.
a utilização de alguma ferramenta apropriada facilita o acom- Contudo, as organizações precisam adaptar suas estruturas,
panhamento e o controle do projeto no sentido de atender as estratégias e políticas para satisfazerem os novos ambientes e a
demandas de desenvolvimento de software da área de negócio crescente demanda da sociedade contemporânea por sistemas
de um determinado sistema dentro da organização, classifi- de informação que são construídos a partir da iniciativa da
cando assim as suas prioridades no seu atendimento. gestão de projetos.
Um processo de gerenciamento de projeto deve: identificar, A falha nos projetos é discutida em algumas pesquisas. Em uma
estabelecer, coordenar e monitorar as atividades, as tarefas e delas, realizada nos anos de 1992 e 1993, mais de 60% dos projetos
os recursos necessários para um projeto produzir um produto pesquisados nos Estados Unidos estavam atrasados e mais da
e/ou serviço, de acordo com seus requisitos. Todavia, gerenciar metade ultrapassava em 50% o prazo planejado. Um outro estudo
projetos de software é uma atividade complexa devido a uma conduzido em 1999 indicou que somente 37% dos sistemas de
série de fatores, tais como: informação foram finalizados no prazo estipulado.
• Dinamicidade do processo; Adicionalmente, dos 63% dos projetos que atrasaram 42%
• Grande número de variáveis envolvidas; seriam finalizados acima do orçamento. O Standish Group,
• Exigência de adaptabilidade ao ambiente de desenvol- através de um estudo chamado de relatório do “Chaos”, iden-
vimento; tificou que as empresas dos Estados Unidos gastaram US$81
• Constantes alterações no que foi planejado. milhões em projetos de software, sendo que 31% dos projetos
como a ideia modelada pelo levantamento de requisitos e ne- também a sua manutenção com uma modelagem adequada.
cessidades dos clientes pode ser transformada em produto. O processo padrão estabelece o conjunto de elementos fun-
Os gerentes de projeto de software estão desacostumados a damentais que guia o desenvolvimento e a manutenção de
estimar. Quando estimam, costumam basear-se em estimativas sistemas. Ele define uma estrutura única a ser seguida por
passadas, mesmo sabendo que elas podem estar incorretas toda a equipe envolvida em projetos de software, independen-
(não sabem também precisar o quanto elas estão incorretas). temente das características do software a ser desenvolvido e
Há gerentes que se recusam a estimar somente por julgarem das técnicas a serem utilizadas.
perda de tempo, uma vez que correm o risco de obter resultados Essas técnicas são definidas de acordo com as necessidades
incorretos e, portanto, estarem desperdiçando tempo. do projeto, ambiente, a preferência e competência da equipe
Boas estimativas de custo, esforço e prazo de software reque- multidisciplinar envolvida. A inovação tecnológica é um di-
rem um processo ordenado que defina a utilização de métricas ferencial que deve ser incentivado. É o ponto de partida para
de software, método e ferramenta de estimativa. As empresas a instanciação dos processos de software adequados às dife-
de software, de forma geral, não detêm conhecimentos e re- rentes características de cada projeto, permitindo economia de
cursos para isso. tempo e esforço na definição do processo a ser seguido.
Estimar, medir e controlar um projeto de software são tarefas As orientações sobre as técnicas mais utilizadas são apresen-
difíceis, pois o desenvolvimento de software é uma atividade tadas como cenários e também compõem a metodologia de
criativa e intelectual, com muitas variáveis envolvidas (como sistemas que deu suporte à construção de grande parte dos sis-
metodologias, modelos, técnicas, ferramentas, tecnologias, temas. Os modelos instanciam os processos de desenvolvimen-
recursos e atividades diversas). Os gerentes inexperientes to que são associados a estas técnicas e são disponibilizados
tentam cumprir prazos dando a máxima velocidade na fase dentro dos cenários através de casos de desenvolvimento.
inicial e estão despreparados para os momentos de impasse, Observe a Figura 2. Este modelo exemplifica a estrutura do
quando os ajustes são inevitáveis. modelo de desenvolvimento dos sistemas. O processo padrão
A dinamicidade do processo de software dificulta também está normatizado e estabelece controles rigorosos com o foco
o gerenciamento efetivo de projetos de software, devido às na preservação institucional. Adicionalmente, a título de
alterações constantes nos planos de projetos, redistribuição orientação, são apresentados cenários direcionados a técni-
de atividades, inclusão/exclusão de atividades, adaptação de cas específicas, de acordo com a experiência anteriormente
cronogramas, realocação de recursos, novos acordos com os adquirida (o conhecimento acumulado no desenvolvimento
clientes, entregas intermediárias não previstas etc. Um projeto de sistemas, cujo registro foi apropriado através do grupo
de software também deve se adaptar ao ambiente, dependendo de trabalho).
da disponibilidade de recursos, ferramentas e habilidades do O uso de abordagens como o RUP, conforme Figura 3, con-
pessoal ou equipe. templará atividades e artefatos efetivamente indispensáveis à
Outros fatores ainda agravam os problemas da gestão de pro- instituição, incluindo os controles institucionais, e que deverá
jetos de software em empresas, tais como: inexistência de um ser flexível o suficiente para atender às diversas situações co-
processo definido, recursos pessoais e financeiros limitados, muns ao desenvolvimento, em qualquer tipo de projeto.
falta e/ou pouca cultura em processos, pouco treinamento em Se você depende de sua capacidade para desenvolver e im-
engenharia de software, imaturidade metodológica, cresci- plantar software, que é essencial para o sucesso da instituição,
mento ocorrido por demanda, falta de experiência adminis- ele irá ajudá-lo, pois foi desenvolvido visando dois grupos
trativa por parte dos gerentes e diretores e falta de definição primários de usuários:
das metas organizacionais. • Profissionais de desenvolvimento de software que trabalham
Tem-se também a persistência de um conhecido problema no como parte de uma equipe de projeto, incluindo os investidores
desenvolvimento de software: muitos projetos consomem mais desses projetos de desenvolvimento de software;
recursos do que o planejado e demoram mais tempo para serem • Profissionais de engenharia de processo, especificamente
realizados, possuem menos funções e menor qualidade do que engenheiros de processo de software e gerentes.
o esperado. Relatos de insucesso na produção de sistemas de
software podem ser encontrados em diversos estudos de casos Os profissionais de desenvolvimento de software podem
e experimentos documentados ao longo dos últimos anos. encontrar orientação sobre o que é exigido deles nas funções
definidas. Um profissional que trabalha em um projeto de
O modelo de desenvolvimento para a gestão de engenharia de software é designado a uma ou mais funções
projetos definidas, e em que cada função particiona um conjunto
Partindo do pressuposto de que uma organização de grande de tarefas e produtos de trabalho pelos quais essa função é
porte utiliza um processo padrão de desenvolvimento de soft- responsável.
ware, e que nele são apresentados os controles institucionali- Também é fornecida orientação sobre como essas funções
zados com seus cenários, é possível ter a visão compartilhada trabalham em conjunto, em termos das atividades requeridas
sobre como a gestão de projetos percebe os marcos que são para representar o processo configurado, referenciado como
desenvolvidos para um novo produto de software, aferindo o processo de entrega. Além disso, são fornecidas várias
resultados. Além disso, é recomendada quando for possível a Os controles institucionais definidos pela empresa que
comunicação entre clientes e usuários e a equipe de desenvol- tem como premissa a utilização de modelos de software são
vimento de forma a se garantir a clareza de ideias e o rigor da eventos fundamentais para o processo de desenvolvimento,
especificação. Isso pressupõe uma equipe de desenvolvimento e exigem algum tipo de aprovação de produto ou servem de
capaz, com expertise técnica e habilidade de comunicação. insumo para uma etapa seguinte e se não realizados, impedem
Deve ser aplicada preferencialmente na construção/manu- a continuidade do processo (ver Figura 5).
tenção de sistemas de médio e grande porte, cujos requisitos se- Esses controles podem significar ainda a geração de produto
jam relativamente estáveis. A metodologia poderá ser utilizada explicitamente recomendado, normalmente ligados à política
no início de um novo projeto de desenvolvimento de software de segurança da informação ou à gestão de conhecimento. Os
e também em manutenções e em ciclos de desenvolvimento controles institucionais sempre necessitam de uma evidência
subsequentes após a implantação do sistema em produção. de sua realização.
Além dos controles instituições, no modelo de desenvol-
vimento existem guias de utilização padronizados por um
comitê de melhoria de processo voltadas para os gestores,
gerentes, desenvolvedores, usuários e demais envolvidos
no processo, trazendo diversas orientações da estrutura
que podem ser usadas em detrimento de um projeto e/ou
manutenção.
Toda documentação técnica e gerencial de um projeto e/ou
manutenção produzida durante o processo de desenvolvimen-
to é mantida pelas áreas de desenvolvimento em repositório
oficial. Os artefatos técnicos dos sistemas (ATS) são mantidos
durante todo o ciclo de vida, pois registram a inteligência do
sistema e serão utilizados e atualizados em todas as manuten-
Figura 4. Analise estruturada ções e evoluções futuras.
A
FACISA - UNIVIÇOSA (2012) e Bacharel em Sis- complexidade dentro da área Porte de Tecnologia da Informação. A ITIL for-
temas de Informação pela Faculdade de Viçosa
de Tecnologia da Informação nece um conjunto coerente e compreensivo de
(2008). Atualmente atua como orientadora de
trabalhos de Graduação na Faculdade de Viçosa (TI) é crescente. Juntamente, melhores práticas para gestão de serviços de
e pós-graduação Lato Senso pela FACISA - UNI- os números de mudanças oriundos das TI, provendo qualidade técnica para realizar
VIÇOSA. Tem experiência na área de Sistemas alterações do mercado, das tecnologias negócios com eficiência e efetividade no uso
de Informação com ênfase em Engenharia de e das necessidades dos próprios clientes de sistemas da informação. Este artigo é útil
Software, Engenharia de Requisitos e Repre-
e até mesmo da organização, vem au- para organizações que desejam implantar ou
sentação do Conhecimento, Sistemas de Apoio
à Decisão e Gestão de Pessoas. mentando proporcionalmente. Com essa aprimorar o processo de gerenciamento de mu-
constante transformação a TI precisa ser danças utilizando as boas práticas da biblioteca
dinâmica, eficaz e eficiente e os serviços ITIL. Sua utilização irá assegurar que os proces-
Bruno Torres Satler relacionados precisam ser oferecidos sos sofram modificações planejadas, garantin-
bruno@cientec.net
com qualidade, de forma estável e con- do menor impacto nos serviços/processos que
Mestre em Ciência da Computação - Engenha-
ria de Software pela Universidade Federal de fiável. Porém, o conhecimento detalhado passarão por modificações.
Viçosa (2010). Bacharel em Ciência da Com- e a identificação das mudanças não é
putação pela Universidade Federal de Viçosa uma tarefa simples de ser executada por
(2007). Consultor implementador Melhoria Microempresas e Empresas de Pequeno objetivo é satisfazer uma ou mais neces-
de Processo de Software - MPS-Br. Professor
Porte, que muitas vezes demonstram sidades da área de negócio e suportar
Assistente - FDV Faculdade de Viçosa. Professor
Assistente - FACISA Univiçosa. Gerente de Proje- falta de estruturação dos processos e os objetivos estratégicos do negócio da
tos e Analista de Processos - Cientec Consultoria pouco conhecimento de metodologias organização e do cliente.
e Desenvolvimento de Sistemas. Professor da de governança de TI. Porém, para que a TI satisfaça as ne-
pós-graduação Lato Sensu em Sistemas de Os serviços de TI podem ser vistos cessidades da organização é preciso
Informação - FACISA-Univiçosa. Professor da
como um conjunto de recursos, TI e não que ocorra um alinhamento entre os
pós-graduação Lato Sensu Especialização em
Sistemas para Internet - UFV. TI, mantidos por um provedor de TI, cujo recursos tecnológicos da TI com os
Information Technology
Infraestructure Library - ITIL
A ITIL (Information Technology In-
frastructure Library) é um conjunto de
padrões de melhores práticas para o Figura 2. Processo do ITIL
gerenciamento de serviços de Tecnologia
da Informação. Esta metodologia oferece os processos do ITIL subdivididos em: 3. Gerenciamento de Configuração:
uma descrição detalhada das importan- Gerenciamento de Aplicações, Gerencia- responsável por fornecer à organização
tes práticas de TI, incluindo checklists, mento de Serviços, Gerenciamento da de TI um controle maior sobre todos os
tarefas, procedimentos e responsabi- Infraestrutura, Gerenciamento de Ca- seus ativos;
lidades. Estas práticas são definidas nais de Suprimento, Gerenciamento de 4. Gerenciamento de Incidente: seu foco
como processos e podem ser adaptadas Segurança e Gerenciamento de Infraes- principal é restabelecer o serviço o mais
a qualquer organização de TI cobrindo trutura de Tecnologia de Comunicações rápido possível, minimizando o impacto
a maioria de suas atividades. e de Informação (TCI). negativo no negócio;
Criada na década de 80 pelo Centro Como pode ser visto na figura, além da 5. Gerenciamento de Liberação: respon-
de Computadores e Agência de Teleco- definição do negócio, dos parceiros e da sável pela implementação das mudanças
municações – CCTA do Reino Unido, tecnologia a ser usada ou implementada, no ambiente de infraestrutura de TI;
atualmente conhecido como Office of existem diversos processos que devem 6. Gerenciamento do Nível de Serviço:
Governamment Commerce – OGC, teve ser analisados e implementados que é responsável por gerenciar o nível dos
por objetivo padronizar e comparar as são indispensáveis para o sucesso do serviços prestados pela equipe de TI,
diversas propostas de prestadores de processo. com o objetivo de definir o tempo de
serviços de TI ao governo Britânico. A Além do processo de Gerenciamento de resolução para cada solicitação realizada
metodologia foi desenvolvida a partir Mudanças, que abordaremos neste arti- pelos clientes e tempo para restabeleci-
de pesquisas realizadas por consultores, go, a ITIL conta com mais dez processos mento de cada indisponibilidade ocor-
especialistas e doutores na área, para que podem ser implementados de forma rida na operação;
desenvolver as melhores práticas para isolada nas organizações, são eles: 7. Gerenciamento de Capacidades: dese-
a gestão de TI nas empresas públicas e 1. Service Desk: ponto único de contato nhado para assegurar que a capacidade
privadas. Seu foco está na descrição dos entre usuários/clientes e o departamento da infraestrutura de TI esteja alinhada
processos necessários para gerenciar de TI; com as necessidades do negócio;
eficientemente e eficazmente a infra- 2. Gerenciamento de Problemas: res- 8. Gerenciamento de Disponibilidade:
estrutura de TI garantindo os níveis ponsável por minimizar a interrupção visa otimizar a capacidade da infraestru-
de serviço acordados com os clientes nos serviços de TI por meio da organi- tura de TI ajudando a organização a en-
internos e externos. zação dos recursos para solucionar pro- tregar um nível sustentado de disponibi-
Na década de 90, a ISO 9000 e o modelo blemas de acordo com as necessidades lidade a um custo aceitável, garantindo
de referência da EFQM (European Foun- de negócio, prevenindo a recorrência e que os serviços estarão à disposição dos
tation for Quality Management) passam garantindo o registro de informações clientes e usuários sempre que for preci-
a adotar as melhores práticas da ITIL que melhore a maneira pela qual a so e permitindo assim que os objetivos
tornando-a um padrão mundialmente organização de TI trata os problemas, do negócio sejam alcançados;
conhecido e a metodologia de serviços de resultando em níveis mais altos de dis- 9. Gerenciamento da Continuidade
TI mais utilizada. A Figura 2 apresenta ponibilidade e produtividade; dos Serviços de TI: tem por objetivo
organização não possui um Service Desk estruturado, ficando requisição de mudanças, agora aprovada, chega novamente às
sem um ponto central de contato entre os usuários e a área mãos do gerente de mudanças que inicia a fase de coordenação
de TI. e desenvolvimento.
O objetivo do processo é definir os papéis e responsabilida- Na fase inicial de coordenação e desenvolvimento, deve-se
des, processos e o fluxo padrão a serem utilizados para todas identificar se a RDM tem urgência alta ou impacto mínimo.
as solicitações, para que haja o controle integrado de mudanças. Caso a RDM se enquadre em uma destas duas formas, a fase
O controle integrado de mudanças compreenderá a identifi- de autorização pode ser deixada de lado e passar direto para
cação, documentação, análise e autorização das mudanças, a fase de implementação.
tendo como critérios de avaliação para aprovação o escopo, Toda mudança deve ser testada nas atividades ao final da fase
custo de execução e prazo previamente autorizados para cada de autorização e na atividade de avaliação, antes de ser enviada
solicitação de mudanças, sendo classificadas em três tipos de para o ambiente de produção. É importante que exista uma
mudanças, normal, padrão e emergencial. equipe de testes para elaboração do plano de testes avaliando
A normal é a mudança planejada com antecedência. A padrão o funcionamento após realização da mudança.
por sua vez é uma mudança rotineira e de baixo impacto, por Na fase de autorização a equipe de testes irá acompanhar
exemplo, a mudança de senhas, alteração de cursos, modifi- como está o planejamento de execução das mudanças e, ao
cação de arquivos para licitação. Já a emergencial, é aquela obter resultados satisfatórios por meio de testes, a mudança
mudança vital que surge para atender uma necessidade ou será autorizada a passar para a fase de implementação que
sanar um incidente ocorrido. Esse tipo de mudança não ne- tem como objetivo apenas executar a solicitação de mudanças
cessita passar pela fase de autorização indo direto para a fase conforme a coordenação do gerente de mudanças. Nesta fase
de implementação. são gerados os relatórios de testes realizados.
O enquadramento de cada solicitação de mudanças auxilia O gerente de mudanças irá coordenar a execução durante a
na coordenação da implementação. O plano de gerenciamento fase de implementação, ficando a cargo da equipe de desen-
de mudanças não tem como objetivo executar a implementa- volvimento executar o plano de desenvolvimento informar se
ção das mudanças sendo apenas responsável por decidir e existem alterações críticas para que elas sejam autorizadas e
coordenar o processo de mudanças. A implementação será novamente implementadas. Não havendo alterações inicia-se
realizada pela equipe de desenvolvimento. Assim, é necessário a fase de avaliação.
a definição dos papéis e responsabilidades de cada participante A fase de avaliação tem como objetivo, revisar todo o escopo
da equipe. de acordo com o que foi implementado. Assim, será possível
As solicitações de mudanças devem seguir um roteiro padrão, verificar se a mudança foi realizada como esperado ou se re-
onde cada solicitante deve registrar sua solicitação por meio de sultou outros erros inesperados e quais ações a serem tomadas
um formulário que por sua vez deve ser enviado ao gerente de para a correção. Não ocorrendo a rejeição, a mudança entra em
mudanças. Neste momento cria-se o registro de solicitação de produção e é formalizada a entrega da solicitação de mudança
mudanças – RDM, o qual fica a cargo do gerente de mudanças, como executada e aprovada para o solicitante.
atribuir uma identificação única para cada solicitação. O ideal
é que esses registros sejam individuais evitando a sobreposição Planejamento de Mudança
de registros. O primeiro passo do planejamento para implantação do
Na fase de registro e classificação várias informações serão processo de Gerenciamento de Mudanças da ITIL é escrever
utilizadas para a tomada de decisão, tais como categoria, im- o documento da metodologia no qual será formalizado: Solici-
pacto, custo. Estas informações também serão utilizadas para tações de Mudanças, Planejamento das Atividades, Avaliação
produzir relatórios gerenciais, onde a RDM será classificada de Riscos, Avaliação de Impacto, Registro de Envolvidos, Fluxo
de acordo com a prioridade para cada mudança para definir de Comunicação, Definição e Homologação das Contingências,
o tipo de mudança a qual se encaixa. Definição e Homologação de Planos de Retorno entre outros.
O comitê, por meio do relatório gerencial, deve filtrar a soli- Esse documento terá que ser escrito pelo gerente responsável
citação no início da atividade de classificação, para saber se a pelas mudanças, juntamente com outros gerentes de outros
solicitação é pertinente. Caso não seja, será encaminhada para setores da empresa.
o gerente de mudanças para que possa informar a recusa da Para implantar o plano de gerenciamento, a fase inicial será
solicitação ao solicitante por meio do documento de registro de composta de reuniões com todos os membros para explicar
encerramento da solicitação. Caso a solicitação seja pertinente, os objetivos esperados, quais serão os papéis de cada um e
o comitê deve classificá-la em um dos três tipos de mudanças: suas respectivas responsabilidades, além de inserir o fluxo de
normal, padrão ou emergencial. gerenciamento de mudanças. Após as definições iniciais, será
Após as RDMs serem classificadas e filtradas, elas devem disponibilizado o treinamento sobre a nova forma de gestão
ser aprovadas. Na fase de aprovação o comitê se reúne com o de mudanças, detalhando o objetivo e execução das fases que
gerente de mudanças para avaliar os possíveis impactos, que compõem cada solicitação de mudanças.
podem ser gerados pela solicitação de mudança, baseados em O treinamento é importante para que a equipe esteja pre-
custo, cronograma e escopo para sua realização. Em seguida, a parada para receber, registrar e dar prioridade a todas as
• Impacto: Quando a mudança foi realizada, no entanto, ultra- discutidas com mais detalhes. Estando a mudança acordada
passou o tempo planejado, causando impacto para o mesmo. na reunião, será buscada a aprovação formal dos coordena-
• Falha: Quando a mudança não pôde ser concluída devido dores. Essa aprovação significa que a mudança foi negociada
a algum problema durante sua execução e que a mudança foi e autorizada, sendo assim cabe ao Coordenador de Mudanças
abortada, porém dentro da janela acordada com o cliente. da empresa que será o gerente de Projetos que também é o
gerente de TI, aprovar somente as mudanças requisitadas
Prevenção pelos analistas e/ou outros solicitantes e ao Coordenador
As prevenções que seguem são fundamentais para a definição Geral da empresa que será o gerente geral, sinalizar que a
do escopo do Processo Gerência de Mudanças: mudança foi negociada.
• Cabe ao Solicitante da mudança fazer seu planejamento
técnico. Mudanças Emergenciais
• Quando um pedido de mudança é feito, todas as informações Desde que sejam registradas adequadamente e negociadas
técnicas e de planejamento devem ser acompanhadas desde com a Gerência de Mudanças, mudanças de emergência
o início do pedido. poderão ocorrer a qualquer momento, passando antes por
• O processo de Gerência de Mudanças não possui envolvi- uma triagem onde deverá ser comunicado e esclarecido o
mento direto com a fase de implementação da mudança, porém motivo da emergência, cabendo ao coordenador avaliar a real
deverá monitorá-la e registrar sua implementação necessidade.
As responsabilidades do setor responsável pelas mudanças
Aprovação: Processo e responsável são:
Durante a Reunião de mudanças, todas as mudanças • Coordenar todas as mudanças solicitadas;
apresentadas serão aprovadas ou não pelo grupo técnico • Garantir a existência de planos de retorno para as mudan-
participante da reunião. Se não houver o consenso do grupo ças;
para sua aprovação, essa mudança será levada para outra reu- • Em caso de falhas, garantir a implementação do plano de
nião mais técnica e específica (mudança crítica), onde serão retorno para as mudanças executadas pela empresa;
A
vida de um programador não les que trabalham envolvidos em atividades de
é fácil. A tecnologia é algo programação.
que não para de evoluir e a
cada dia surge uma forma diferente de
escrever um código. A carreira de um • Eficiente: código que faz o que é
profissional de informática é algo de sua proposto;
responsabilidade. O código produzido • Sem duplicidade: não faz o que outra
por esse profissional também é de sua parte do código já faz;
responsabilidade. Um bom código não • Elegante: porque é diferente dos outros
é somente aquele que é funcional, mas códigos;
também aquele que não tem valores • Feito com cuidado: quem fez teve preo-
exorbitantes para ser mantido. A maior cupação em produzir aquele código.
parte dos programadores não gostam de
alterar códigos mal escritos. Isso é algo Antes de falarmos sobre como fazer
que traz muita frustração e muitas vezes para atingir esse nível de qualidade,
um retrabalho desnecessário. vamos falar um pouco sobre testes.
Leandro Tavares Siciliano
ltsiciliano@gmail.com Clean Code Importância dos testes
Formado em Análise de Sistemas UNESA com Um código limpo deve ser: Construir um software não é somente
MBA na UFRJ. Experiência de 17 anos de mer-
• Simples: código fácil de entender; escrever código e vê-lo funcionar, é você
cado. Atualmente atuando como desenvolvedor
desenvolvedor Java e Lotus Notes. Certificações: • Direto: vai direto ao ponto, não dá saber que aquele código será manutení-
Certified Lotus Professional e Scrum Master. “voltas” para atingir seu objetivo; vel e que outras pessoas vão alterá-lo.
Poderíamos analisar essa frase como um princípio da coesão com vários comentários que não serviam para nada e, pior,
no seu código. Muitas vezes não é fácil saber se aquele método confundiam. Se um método ou uma classe estiver bem escrito,
está fazendo somente uma coisa. Uma dica para isso é: você a importância do comentário é minimizada.
deve tentar extrair parte do seu código para um método, se
você conseguir é porque aquele seu método realmente não
Listagem 5. Métodos com objetivos mal definidos
está tendo uma função apenas.
Imagine que você tenha um método onde quiséssemos mos- public boolean verificarSenha(String senha){
if(senha.equals(“zzz”)){
trar os detalhes de um usuário:
Session.initialize();
return true;
private void mostrarDadosUsuario(Usuario usuario){ }
return false;
mostrarCabecalhoUsuario();
}
System.out.print(“Nome: “, usuario.getNome());
S ystem.out.print(“Sobrenome: “, usuario.getSobrenome()); Listagem 6. Ajuste do objetivo do método
}
if(verificaSenha(“zzz”){
Session.initialize();
Neste exemplo, as linhas do System.out.print são os detalhes }
do usuário. Mas será que isso não ficaria melhor escrito se
public boolean verificarSenha(String senha){
estivesse de acordo com o código da Listagem 4?
if(senha.equals(“zzz”)){
return true;
Listagem 4. Separando métodos }
return false;
private void mostrarDadosUsuario(Usuario usuario){ }
mostrarCabecalhoUsuario();
mostrarDetalhesUsuario();
}
Se um dia você quiser apenas listar os dados de um usuário Date d1; //dia da semana
ficará mais fácil. Agora temos os métodos separados. Essa
prática também é um bom exemplo do tipo de refatoração Esse comentário não irá se propagar para todo o código e sem-
chamada “Extract Method”. pre que você se deparar com uma linha como “d1.after(d2);”
Um outro item que deve ser observado é a quantidade de pa- você vai continuar não entendendo o propósito do código.
râmetros de um método. Você deve ter uma justificativa muito Podemos tentar colocar uma regra nisso. Muitas vezes quan-
boa para ter uma quantidade tão grande de parâmetros em um do se comenta um código, pode ser que o mesmo precise ser
método. Um agravante de um método com vários parâmetros refatorado. Lembra dos exemplos anteriores onde “d1” passou
é a dificuldade de se testar uma vez que você deverá testar a ser “dataCompra”? Com essa mudança seu código pode ser
todas as combinações possíveis. entendido por todos e se fizermos essa refatoração o código
Outra situação a que você deve estar atento é com um método passa a não precisar mais de comentário.
que informa que irá fazer uma determinada ação e faz outra. Observe agora o exemplo a seguir:
Observe a Listagem 5.
O objetivo do método é verificar a senha, porém, se a //Verifica se o usuário tem direito ao benefício
senha estiver correta o mesmo inicia uma sessão, ou seja, if(usuario.getIdade() > 10 && usuario.getIdade() < 20){
o método já não tem a coesão esperada, pois possui duas ….
responsabilidades. }
Uma solução melhor para esse cenário pode ser observada
na Listagem 6. Observe agora o exemplo ajustado na Listagem 7.
Note que tiramos o comentário, melhoramos o código e o
Comentários nos códigos tornamos mais legível. Agora a leitura do código é suficiente
Comentários, apesar de importantes, podem trazer desin- para saber o que ele realmente faz.
formação. Por que podemos afirmar isso? Alguém conhece Outro tipo de comentário que deve ser evitado é apresentado
programadores que atualizam comentários? Há vários códigos no exemplo a seguir:
Dentro do seu método você já pode ver o erro que está sendo
retornado e tratá-lo ali. Defina o fluxo do método separando Concorda que o “!texto.equals(“”)” não serve para nada? Se fi-
as regras de negócio de erros ou outras situações. Para seus zermos a refatoração a seguir obteremos o mesmo resultado:
erros, crie mensagens informativas mencionando a operação
que falhou e o tipo de falha. private boolean isStringVazia(String texto){
if (!StringUtils.isNullOrEmpty(texto)) {
Procure utilizar exceptions para situações inesperadas, por //...
exemplo: seu código está lendo um arquivo e a rede se tornou }
indisponível. }
Assim, se você tiver que testar se um CPF é válido, por exem- Você gostou deste artigo?
plo, você deve criar alguns testes tais como:
• se o CPF for em branco; Dê seu voto em www.devmedia.com.br/esmag/feedback
• se o CPF estiver com menos caracteres. Ajude-nos a manter a qualidade da revista!