Documente Academic
Documente Profesional
Documente Cultură
DEPARTAMENTO DE INFORMÁTICA
Maio / 2003
INDICE
INTRODUÇÃO..................................................................................................................................................4
2
INTRODUÇÃO
Os computadores têm um papel importante e crescente no comércio, na indústria, em órgãos
governamentais, na medicina, instrução, entretenimento e em muitas outras áreas da sociedade. A
Engenharia de Software contribui diretamente analisando, especificando, testando, desenvolvendo,
mantendo, certificando e ensinando sobre sistemas de software. Um dos objetivos da engenharia de
software é criar padrões para desenvolvimento de software, para que estes sejam de boa qualidade.
Existem alguns compromissos que devem ser seguidos em relação ao software para que se mantenha
um relacionamento sadio entre cliente, usuário e desenvolvedores, e estes compromissos estão expostos no
código de ética para a prática do profissional (da IEEE e ACM).
3
CÓDIGO DE ÉTICA (IEEE e ACM)
Este código está dividido em várias partes - denominados Princípios. Cada princípio aborda um foco
diferente e nos dá soluções sobre como agir em situações onde a ética fica em cheque.
PRINCÍPIO 1: DO PÚBLICO
Estes princípios têm como foco o público:
Aprovação do software somente deve ocorrer caso haja uma opinião muito bem fundamentada de
que este é seguro, se encontra dentro das especificações, passou pelos testes apropriados, não se
diminui a qualidade de vida, não se diminui a privacidade nem se prejudica o ambiente. O efeito final
do trabalho deve ser bom para público:
Exemplos de falta de testes e de qualidade foram alguns casos que já aconteceram com softwares
voltados à área de cardiologia (utilizando o S.O. Windows 98) onde o sistema era entregue ao cliente,
funcionava normalmente por alguns dias e ,de uma phora para outra, durante algum exame que estava
sendo realizado, apresentava um “ Fatal Error ”. Após este erro, era necessário reinstalar o Windows98 e o
programa em questão. A empresa desenvolvedora já estava com vários sistemas vendidos e instalados, e
todos aprsentaram o mesmo problema. Foram necessárias várias semanas, muito desgaste com os
clientes, muita conversa e muitas desculpas até este problema ser resolvido.
4
Divulgue quais são os riscos do sistema e deixe as pessoas e autoridades a par de tudo. Exponha o
perigo real e o potencial do sistema ao usuário ou ao público que acredita-se estar associado
diretamente com o software e suas conseqüências :
Caso estejamos desenvolvendo um software para controle de , por exemplo, tráfego aéreo de um
aeroporto, é preciso expor para todas as partes envolvidas (da menor até a maior) todos e qualisquer
potenciais e conseqüências destes potenciais do sistema.
Por exemplo, o faixineiro da sala de comando precisa saber que se durante a limpeza ele pressionar
alguma tecla de controle , ele poderá confundir algum piloto e causar um acidente. Os usuários (operadores
de vôo) precisam saber da importância de manter alguém leigo longe dos comandos do sistema e assim por
diante.
Coopere nos esforços com as matérias de interesse público para solucionar problemas causados
pela instalação, manutenção, sustentação ou documentação do seu software:
Caso o sistema cause danos (não importa o grau destes danos) colabore com a solução destes para que
as conclusões adequadas sejam encontradas o mais rápido possível e a normalidade possa ser restaurada.
É claro que problemas podem ocorrer a qualquer momento da vida do software (seja na instalação quando
alguns requisitos de hardware não tenham sido atendidos , nas atualizações devido à má documentação do
código dentre outras).
Seja justo e evite o decepção geral dos clientes. Evite que haja críticas negativas, particularmente as
críticas públicas a respeito do software ou de outros relacionados, métodos e ferramentas:
Durante a divulgação do sistema, seja honesto, não prometa o que ele não pode fazer. Fale a verdade
sobre os recursos dos quais ele dispões as ferramentas e métodos utilizados para a confecção do
programa. Assim, quando o cliente adquirir seu sistema, não haverá como ele estar esperando uma ferrarri
e receber um Gol 1000 (nada contra o Gol).
5
PRINCÍPIO 2: DO CLIENTE E DO EMPREGADOR
Procura remediar os interesses do cliente e empregador de uma forma consistente com o interesse
público.
Forneça um seviço de qualidade dentro de sua área de competência. Para isso, seja honesto e franco
sobre todas as limitações de sua experiência e instrução:
Não adianta disfarçar, o cliente deve saber a verdade sobre o seu tempo de experiência e instrução
(queira ou não queira, muitos deles se apegam a alguns detalhes e podem acabar descobrindo uma mentira
sobre suas habilidades). Caso isso seja feito, com certeza o cliente vai respeitar suas limitações e
compreender qualquer dificudade que você estiver passando em várias situações.
Não utilize softwares ilegais (piratas ou códigos obtidos através de meos que fere a legislação
vigente):
Esta item é quase óbvio. Por exemplo, ao plagiar algum código ou utilizar softwares ilegais (sejam
ferramentas para desenvolvimento , SO etc) estamos dando legalidade para a desonestidade, e sendo
assim, este código ético não é útil para coisa alguma.
Utilize aquilo que pertence a um cliente ou ao seu empregador somente com pronta autorização
destes e dentro dos meios legais:
Ou seja, utilize os equipamentos, o ambiente de trabalho etc - fornecidos pelo cliente ou pelo empregador
- para executar os serviços para os quais ele o contratou e não para jogar Counter Strike ou Age of Empires.
Ter a certeza de que os relatórios que o cliente considera importantes estejam corretos:
Neste caso está em jogo a confiabilidade das informações que o sistema passa aos usuários, clientes e
empregadores. Não importa que tipo de relatório seja necessário ( gráfico, textual, completo , resumido etc)
faça o que é pedido, e após isso peça para que o cliente os avalie e corrija.
Manter a discrição sobre informações confidenciais obtidas durante sua vida profissional (desde que
estas não sejam estejam ferindo a lei e nem os interesses públicos – como o bem-estar social-
dentre outros):
Ou seja, deve haver bom senso ao se pensar a respeito das “informações confidenciais”, pois aquilo que
pode ser utilizado para o bem-estar estar geral da sociedade deve ser divulgado, bem como aquilo que
venha ferir as leis vigentes em nosso país para que a punição que a lei indica seja aplicada. Por algumas
vezes alguns clientes (como se nada quisessem) perguntavam no meio de um diálogo normal sobre
informações sobre seus concorrentes (os quais também solicitam nossos serviços) e nessa hora era preciso
muita calma para não dizer algo que pudesse comprometer o a mim mesmo.
6
usuários para utilizar o sistema (muitos casos já ocorreram onde o usuário passava insegurança para o
cliente – chefe - já que o sistema era novo e seria preciso uma certa adaptação. Mas após um treinamento
intensivo de um dia tudo era resolvido e a confiança reestabelecida).
Identifique, documente e deixe o cliente a par dos fatos significantes sobre o sistema e que dizem
respeito à empresa. Faça isso através de avisos no software ou através de documentos:
Ou seja, avise o cliente sobre determinadas ações que podem se efetivamente realizadas no sistema e
as respectivas conseqüências destas ações (por exemplo: caso exista a opção do cliente apagar algo dentro
do banco de dados, comunique à ele o que isto acarretará caso seja feito – perda total dos dados etc, não
guarde “surpresas” ) Uma vez precisei reinstalar um programa para teste ergométrico pois ocorreu um
problema com o registro do Windows98 e todos os pacientes cadastrados foram perdidos. Eram mais de
500 cadastros. Não houve jeito de resgatálos. A empresa que produzia o software nã encontrou solução
para o problema (pois o cadastro de pacientes é baseado em ponteiros e estes foram perdidos ). Por isso,
desenvolver um método para backup em nossas aplicações é muito interessante.
Não contrate terceiros para confeccionar o sistema, pois geralmente nestes casos o acabamento e a
performance do sistema são prejudicados:
O sistema deve ser projetado e desenvolvido por pessoas de sua confiança. Terceiros geralmente não
têm um compromisso de apresentar um trabalho de qualidade e isso pode vir a influenciar em pontos
importantes como a interface com o usuário mal projetada ou performance ruim.
PRINCÍPIO 3 : PRODUTOS
Visa todas as mudanças do produto, para que estas sejam efetuadas mantendo-se um padrão de alta
qualidade inclusive por parte dos profissionais:
Zele pela alta qualidade, custo aceitável e um prazo de entrega razoável, assegurando negociações
significantes, limpas e aceitáveis pelos clientes e que sejam considerados pelos usuários e pelo
público.
Sistema bom e barato. Esta é a idéia. Se possível ainda, um sistema “genérico” o qual possa ser aplicado
em várias áreas semelhantes.
Identifique, defina e marque questões éticas, econômicas, culturais, legais e ambientais relatadas no
projeto de trabalho:
Estas quetões são literalmente de utilidade pública e devem ser amplamente discutidas, em especial
quando o sistema tem algum papel relevante em algum destes aspectos (por exemplo, um sistema que
7
informa aos visitantes de um museu sobre a cultura de determinados povos, seus hábitos alimentares e
tradições)
Esteja certo de que os desenvolvedores estejam qualificados para qualquer projeto (ou propósito)
no qual estejam tralhando, para que haja uma combinação apropriada de educação, treinamento e
experiência.
Ao desenvolver algum projeto, o programador precisa saber dosar a criatividade, por exemplo, para que
as interfaces com o usuários sejam atrativas e amistosas. É preciso criar programas auto-explicativos, que
não exijam muita experiêcia para serem manipulados.
Assegure-se de que os métodos apropriados foram utilizados para todos os projetos nos quais estes
profissionais estejam envolvidos:
Não existem padrões “melhores” ou “piores”, mas sim padrões mais adequados para determinada
situação. Dependendo do foco da empresa ,ou como em muitos casos, do projeto, os padrões adotados
podem variar. O que é preciso saber é se aquele que está sendo usado em determinado projeto, é
realmente o mais adequado.
Trabalhe para seguir padrões profissionais, procure o mais apropriado para cada caso, escolhedo o
padrão somente quando este for éticamente ou tecnicamente justificado:
Nunca foi nem será realizar padronizações em empresas. Mas se o empregador deseja que sua empresa
seja vista como padrão de qualidade e confiabilidade, é preciso seguir algumas regras. E mais, estas regras
precisam estar eticamente ou tecnicamente justificadas.
Tenha uma estimativa real sobre custo, padrões a serem adotados, pessoal, qualidade e resultados
finais em quaisquer projetos nos quais esteja trabalhando e providencie uma avaliação destas
estimativas:
Estimativas ou previsões reais devem ser utilizadas com cautela. Nunca superdimensione ou sub
8
dimensione informações como estas (geralmente, superdimensionamos os resultados e subdimensionamos
o custo o que no final causará um grande trauma para o cliente).
Mantenha uma documentação adequada, incluindo problemas signifcantes que ocorreram e as suas
respectivas soluções para todos os projetos:
Manter uma documentação atualizada, completa e clara sobre problemas que ocorreram com o sistema
é um grande passo para o bom e pronto atendimento ao cliente. Em nossa empresa possuímos várias
anotações sobre problemas significantes e soluções para estes.
Esteja seguro de que os dados utilizados são extremamente confiáveis e respeitem a lei e a ética:
PRINCÍPIO 4: JULGAMENTO
Visa a manutenção da integridade e da independência no julgamento profissional :
Seja rígido no julgamento técnico mas sempre levando em consideração todo o suporte e
manutenção dos valores humanos:
Já é mais do que comprovado que nada adianta humilhar o funcionário na frente dos colegas caso ele
tenha feito algo de errado. Por isso, no momento em que ficar nervoso, pense que todos os humanos erram,
inclusive VOCÊ.
Somente aprove documentos preparados sob supervisão ou que estejam dentro da sua área de
competência e caso os responsáveis estejam de acordo:
Simples, nunca assine algo sem saber do que se trata, caso o fizer , poderá estar assinando o seu
“contrato de final de carreira”. Documentos somente devem ser aprovados se foram feitos sob supervisão de
pessoas de sua confiança ou se estes documentos são abrangidos pela sua área de conhecimento.
9
desenvolvedores fizerem. Caso não seja dada a importância devida à estes “produtos”, provavelmente
este(s) desenvolvedor(es) não terã muita motivação futuramente.
Não se comprometa com práticas financeiras ilegais como subornos, caixa 2 dentre outras:
Todos os seres humanos sabem distingüir o certo do errado, ainda mais quando se trata de finanças.
Certas práticas financeiras são ilegais e têm punições eterminadas pela lei. Seja honesto, não exagere nas
cobranças, não aceite subornos nem emita notas frias (dentre muitos outros meios obscuros! ).
Revele para todas as partes envolvidas todos os conflitos significantes que foram ou são
inevitáveis :
Muitos conflitos internos influenciam no desenvolvimento do sistema. Eles podem atrasar , e muito, a
entrega do software. Por isso, estes conflitos devemser expostos e discutidos por todas as partes
interessadas. A omissão de alguns fatos pode acarretar conflitos entre o cliente e o desenvolvedor ou entre
o empregador e o desenvolvedor.
PRINCÍPIO 5: GERÊNCIA
Visa uma gerência de projeto que promova uma aproximação da ética do desenvolvimento e
manutenção do software:
Fique certo de que os engenheiros de software estejam informados sobre os padrões adotados:
Se necessário faça um curso intensivo com os engenheiros novos, mas tenha certeza absoluta de que
todos possuem a mesma visão para desenvolvimento e estã caminhando na mesma direção.
Seja justo ao nomear alguém para algum cargo superior, considere as qualificações:
Não promova o funcionário por que ele possui algum nível de parentesco com você. Considere sempre
10
as qualificações pessoais de cada um. Muitas vezes, as empresas perdem grandes profissionais por
situações como esta.
Esteja certo de que há uma concordância e satisfação em relação aos processos, pesquisa, software
produzido, códigos ou outros materiais de propriedade intelectual com os quais a engenharia de
software pode contribuir:
Todos os desenvolvedores precisam estar cientes e concordar com os processos adotados na empresa.
Caso isto não ocorra, uma certa insatisfação será gerada e futuros problemas , até mesmo de
relacionamento, poderão ocorrer.
Não determine punições a alguém que expresse conceitos éticos sobre algum projeto:
Pois determinando punições para estas situações, estaremos impedindo que os desenvolvedores
tenham opinião própria – obviamente isso é péssimo, pois subentende-se que as opiniões pessoais não são
bem vindas.
PRINCÍPIO 6: PROFISSÃO
Visa a integridade e reputação dos profissionais :
11
Obedeça as leis que regem seu trabalho, em especial em circunstâncias em que há contrariedade
entre as leis e o interesse público:
Muitas vezes o público alvo exige algo que não é permitido perante a lei, neste caso, cabe aos
desenvolvedores explicar aos “requerentes” toda a situação – citando inclusive as leis que abordam o
assunto e os motivos pelos quais determinadas operações são proibidas. Em um caso ocorrido em nossa
empresa, foi realizada a manutenção em um equipamento do cliente, e este achou o custo um pouco alto e
nos fez uma proposta:
“Vocês poderiam fazer um serviço de qualidade um pouco inferior e eliminar a garantia neste caso (eu abro
mão dela). Assim o custo da manutenção do meu equipamento seria menor. O que vocês acham??”
É claro que tivemos que recusar a proposta e explicar ao cliente que a legislação vigente não permitia tal
operação.
Expresse inquietação para com as pessoas envolvidas quando violações significativas deste código
forem detectadas antes que estas violações cheguem a um ponto perigoso :
Advirta os colegas que estiverem violoando este código, em especial quando se tratam de informações
importantes e sigilosas. É inadmissível que um profissional da área furte dados confidenciais ou pessoais
12
dos sistemas aos quais dá suporte ou desenvolve.
Comunique violações significativas deste código para as devidas autoridades quando for impossível
voltar atrás nas ações cometidas e estas se tornem perigosas:
Ao serem detectadas violoações deste grau de seriedade, as autoridades devem ser comunicadas do
fato (não somente no âmbito dos profissionais do software, mas qualquer profissional honesto e digno faria
isso) e as punições cabíveis devem ser aplicadas.
Congratule o bom trabalho e tente não repreender quando os trabalhos não superam suas
expectativas:
Todos precisamos de elogios em relação às funções que desempenhamos. Muitas vezes precisei de
elogios ao meu trabalho (naquele momento era o que eu precisava, um elogio) mas muitas vezes fui
repreendido (e me lembro que mesmo quando meu chefe tinha razão eu ficava inconformado pela forma
como tudo foi falado).
Auxilie seus colegas a praticar os procedimentos para proteção de senhas , arquivos e outras
informações confidenciais:
Os processos de segurança devem ser rigorosamente praticados. Colegas novos (e até mesmo alguns
dos que já estão trabalhando com você há algum tempo, podem ainda não estar familiarizados a segurança
e cometerem algumas “gafes”, deixando por exemplo , arquivos importantes com permissões de leitura ou
escrita pare usuários externos).
13
entende antes que se faça algo errado.
PRINCÍPIO 8 – VOCÊ:
Aperfeiçoe sua habilidade para criar softwares com segurança e qualidade com custo razoável e em
um bom tempo:
Procure fazer bom e barato! Tome isto como regra e se esforce para que ela seja cumprida. Assim,
automaticamente, um software terá estas características incutidas.
Aperfeiçoe seu entendimento sobre o software e documentos relatados que serão utilizados:
Por várias vezes antes de realizar um treinamento com um cliente resolvi dar mais uma olhadinha em
documentos do sistema e acabava descobrindo algumas particularidades das quais eu não sabia. Ao revelar
estas para o cliente, o mesmo mostrava-se satisfeito.
Aperfeiçoe seu conhecimento sobre os padrões adotados e as leis que regem o software :
Sobre padrões e leis para que você possa informar prontamente ao cliente quais são os motivos de uma
determinada tarefa não poder ser executada pelo programa. Por exemplo, uma vez um cliente solicitou um
software que realizasse o eletrocardiograma do paciente e automaticamente fizesse o laudo, idicando
inclusive a medicação que o paciente deveria utilizar. Sabemos que no Brasil , não existe nenhum software
deste tipo que esteja devidamente registrado nos Ministério da Saúde, na ANVISA(Agência de Vigilância
Sanitária) e demais orgãos certificadores.
Assim sendo, caso este cliente venha adquirir algum sistema semelhante, deverá assumir as
responsabilidades caso o sistema erroneamente medique um paciente ou ainda se alguma agência de
fiscalização bater à porta dele.
Não trate ninguém desigualmente devido a algum ato (irrelevante e não prejudicia) contrário aos
seus conceitos:
Alguns fatos devem ser relevados para que a paz seja mantida. Muitas das cláusulas precisam ser
aplicadas de acordo com a situação.
14
Não influencie os outro a tomar atitudes que quebrem este código:
Não seja hipócrita.
15