Professional Documents
Culture Documents
Carlos Miguel Amorim Sousa1, Mrio Rui Cabral Aguiar2, Orlando Lopes Silva3
Faculdade de Engenharia da Universidade do Porto, Rua Dr. Roberto Frias, s/n 4200-465 Porto PORTUGAL
Resumo. Pretende-se neste artigo explicar o Cdigo de tica e Deontologia Profissional em Engenharia de Software. Apresentando sua histria e sua evoluo at aos dias de hoje. Listando tambm seus princpios e modo de uso na vida diria de um engenheiro de software profissional. So retratados os seus casos de utilizao em diversas actividades da sociedade actual, dilemas ticos e adeso a este cdigo por parte das pessoas ligadas a este tipo de actividade profissional.
Os engenheiros de software devero agir de acordo com o interesse pblico. 1.01. Aceitar todas a responsabilidade pelo seu trabalho. 1.02. Moderar o seu interesse, do empregador, do cliente e dos utilizadores com o bem pblico. 1.03. Aprovar software, que apenas seja seguro, corresponda s especificaes, passe nos testes apropriados, no diminua a qualidade de vida, no diminua a privacidade ou prejudique o ambiente. O ltimo efeito do trabalho dever ser para o bem pblico. 1.04. Alertar as devidas pessoas ou autoridades, de algum actual e potencial perigo para o utilizador, pblico ou ambiente, que esteja razoavelmente associado ao software ou documentos relacionados. 1.05. Cooperar em esforos para alertar, assuntos de grave preocupao pblica, causado por software na sua instalao, manuteno, suporte ou documentao. 1.06. Ser justo e evitar, enganos nas suas declaraes, particularmente nas pblicas relacionadas com software, documentos, mtodos e ferramentas. 1.07. Considerar problemas de incapacidade fsica, alocao de recursos, desvantagens econmicas e outros factores que podem diminuir o acesso aos benefcios do software. 1.08. Ser encorajado em voluntariar-se a tcnicas profissionais para boas causas e contribuir para a educao do pblico. 2 Principio 2: Cliente e Empregador
Os engenheiros de Software agiro de acordo com os melhores interesses de seus clientes e empregadores, e consistente com o interesse pblico. 2.01. Providencia servio em reas da sua competncia, sendo honestos e indicando as suas limitaes da sua experincia e educao. 2.02. No permitir o uso de software que seja obtido ilegalmente e no eticamente. 2.03. Usar a propriedade do cliente ou empregador apenas de maneira autorizada, e com o conhecimento e consentimento deste. 2.04. Assegurar que qualquer documento em que eles confiem seja aprovado, quando requerido por algum autorizado a aprov-lo. 2.05. Manter privado toda a informao confidencial que adquiriram no seu trabalho, desde que a confidencialidade seja consistente com o interesse publico e a lei. 2.06. Identificar documentos, recolher provas e relatar ao cliente ou empregador, para saber a sua opinio se um projecto ir falhar, se ser dispendioso, violar a lei, ou se ser problemtico. 2.07. Identificar, documentos e relatar ao seu cliente ou empregador, problemas de preocupao social de que eles estejam cientes em software ou documentos. 2.08. No aceitar trabalho externo em detrimento do seu trabalho para o seu principal empregador. 2.09. No promover nenhum interesse contrrio ao seu empregador ou cliente, a no ser que, um assunto tico esteja comprometido, nesse caso dever informar o empregador ou outra autoridade acerca desse assunto. 3 Principio 3: Produto Os engenheiros de Software devero assegurar que os seus produtos e as alteraes a eles relacionadas cumprem o mais alto padro profissional possvel.
3.01. Empenhar-se por mais qualidade, custos aceitveis, e prazos razoveis, assegurando que significantes tradeoff sejam claros e aceites pelo empregador e o cliente, e estejam disponveis para considerao por parte do utilizador e do pblico. 3.02. Assegurar objectivos propcios para qualquer projecto em que trabalha. 3.03. Identificar e definir assuntos ticos, econmicos, culturais, legais e ambientes que estejam relacionados com o projecto. 3.04. Assegurar que so qualificados para qualquer projecto que trabalhem, ou propor para trabalhar numa combinao de educao, treino e experincia. 3.05. Assegurar que o mtodo apropriado usado em qualquer projecto em que trabalha. 3.06. Trabalhar seguindo normas profissionais. 3.07. Empenhar-se em entender as especificaes do software em que iro trabalhar. 3.08. Assegurar que as especificaes de software estejam bem documentadas e que satisfaa os requisitos dos utilizadores. 3.09. Assegurar estimativas realistas do custo, prazos possveis, qualidade, em qualquer projecto em que trabalhem. 3.10. Assegurar testes adequados, debugging e reviso do software e documentos relacionados em que trabalhem. 3.11. Assegurar uma documentao adequada, incluindo problemas encontrados e solues adoptadas para qualquer projecto em que trabalhem. 3.12. Trabalhar para desenvolver software que respeite a privacidade de quem ir ser afectado por esse software. 3.13. Usar apenas informao precisa, obtida por meios ticos e legais, e usar apenas de maneira autorizada. 3.14. Manter a integridade da informao, tendo ateno a sua desactualizao e possvel falha. 3.15. Tratar todas as formas de manuteno de software com o mesmo profissionalismo como se trata-se de um novo desenvolvimento. 4 Principio 4: Julgamento
Os engenheiros de software mantero integridade e independncia em seu julgamento profissional. 4.01. Acomodar todos os julgamentos tcnicos que necessitem suporte e mantm os valores humanos. 4.02. Apenas endossar documentos que foram preparados sob sua superviso ou que estejam na sua rea de competncia e que estejam de acordo. 4.03. Manter objectividade profissional com respeito a qualquer software ou documentos que sejam pedidos para avaliar. 4.04. No aceitar suborno, pagamentos duplos ou outras prticas financeiras imprprias. 4.05. Revelar a todas as partes interessadas os conflitos de interesse que no possam ser evitados. 4.06. Recusar em participar, como membros ou conselheiros, em grupos privados, governamentais ou profissionais preocupados com assuntos relacionados com software em que possa existir conflitos de interesse com os clientes ou empregadores.
Principio 5:
Gesto
Os gerentes e lderes de engenharia de software adoptaro e promovero uma abordagem tica para a gesto do desenvolvimento e da manuteno do software. 5.01. Assegurar uma boa gesto para qualquer projecto em que trabalhar, incluindo procedimentos eficazes para promoo da qualidade e reduo do risco. 5.02. Assegurar que os engenheiros sejam informados das normas antes de as usar. 5.03. Assegurar que os engenheiros conhecem as politicas do empregador e procedimentos para proteger suas palavras-chave, ficheiros e informao confidencial para o empregador ou confidencial para outros. 5.04. Designar trabalho apenas aps ter em conta as contribuies da educao e experincia mostrada e o desejo de prosseguir os estudos e adquirir mais experincia. 5.05. Assegurar estimativas realistas dos custos, prazos, pessoa, qualidade e gastos em qualquer projecto em que trabalhe e providenciar acesso a essas estimativas. 5.06. Atrair potenciais engenheiros de software apenas com a descrio completa das condies de trabalho. 5.07. Oferecer uma remunerao justa. 5.08. No impedir injustamente que uma pessoa tome um cargo para o qual est qualificada. 5.09. Assegurara que h um acordo justo quanto propriedade de qualquer software, processo, pesquisa, escrito ou outra propriedade intelectual para q qual um engenheiro de software contribuiu. 5.10. Providenciar auditorias para qualquer violao das polticas do empregador ou deste cdigo. 5.11. No pedir a um engenheiro de software que faa algo de inconsistente com o cdigo. 5.12. No punir ningum por expressar problemas ticos para com um projecto. 6 Principio 6: Profisso
Os engenheiros de software fomentaro a integridade da profisso, de modo consistente com o interesse pblico. 6.01. Ajudar a organizar um ambiente favorvel para agira eticamente. 6.02. Promover conhecimento pblico da engenharia de software. 6.03. Expandir o conhecimento da engenharia de software participando em organizaes profissionais, encontros e publicaes. 6.04. Apoiar, como membros da profisso, outros engenheiros de software e seguidores deste cdigo. 6.05. No promover o seu interesse pessoal s custas da profisso, cliente ou empregador. 6.06. Obedecer a todas as leis que regem o seu trabalho, a no ser que, em circunstncias especiais, sejam inconsistentes com o interesse pblico. 6.07. Ser preciso na apresentao das caractersticas do software em que trabalharam evitando falsas reivindicaes mas tambm reivindicaes que possam ser especulativas, vazias, confusas, enganadoras ou duvidosas. 6.08. Tomar a responsabilidade em detectar, corrigir e relatar erros no software e documentos associados em que trabalharam. 6.09. Assegurar que clientes, empregadores e supervisores sabem que o engenheiro tem compromisso para com este cdigo de tica e respectivas ramificaes deste compromisso. 6.10. Evitar associaes com negcios e organizaes que esto em conflito com este cdigo.
6.11. Reconhecer que violar este cdigo inconsistente com ser um engenheiro ode software profissional. 6.12. Expor a sua preocupao s pessoas envolvidas quando detectadas violaes significativas do cdigo. 6.13. Relatar as violaes do cdigo s autoridades quando for impossvel consultar as pessoas envolvidas. 7 Principio 7: Os Colegas
Os engenheiros de software sero justos e daro apoio aos seus colegas. 7.01. Encorajar os colegas a aderir ao cdigo. 7.02. Assistir os colegas no desenvolvimento profissional. 7.03. Reconhecer o trabalho dos outros e no se apropriar de mrito alheio. 7.04. Rever o trabalho dos outros com objectividade e de uma maneira bem documentada. 7.05. Ouvir sempre as opinies, preocupaes e queixas de um colega. 7.06. Ajudar os colegas a tomar conscincia das normas actuais de trabalho, quer sejam politicas e procedimentos relacionadas com a proteco de palavras-chave, ficheiros e outras informaes confidenciais ou outras medidas de segurana em geral. 7.07. No interferir, injustamente na carreira de um colega, no entanto, tendo em conta o empregador, cliente ou o interesse pblico podero compelir o engenheiro a questionar a competncia de um colega. 7.08. Em situaes fora da sua rea de competncia pedir a opinio de outros profissionais que tenham competncia dessa rea. 8 Princpio 8: Pessoal
Os engenheiros de software participaro de aprendizagem constante com relao prtica de sua profisso e promovero uma abordagem tica dessa prtica. 8.01. Prolongar o seu conhecimento no desenvolvimento, na anlise, especificao, design, desenvolvimento, manuteno, teste de software e documentao relacionada, em conjunto com a gesto do desenvolvimento do processo. 8.02. Melhorar a sua aptido em criar software seguro, de confiana e til a um custo e prazo razovel. 8.03. Melhorar a sua aptido em produzir documentao precisa, informativa e bem escrita. 8.04. Melhorar a sua compreenso do software e de documentos em que iro trabalhar e do ambiente em que vai ser utilizado. 8.05. Melhorar o seu conhecimento de normas relevantes e da lei, que regula o software e documentos relacionados em que trabalhem. 8.06. Melhorar o seu conhecimento acerca deste Cdigo, a sua interpretao e aplicao no trabalho. 8.07. No dar um tratamento injusto a ningum por causa de preconceitos irrelevantes. 8.08. No influenciar outros a agir contra o Cdigo. 8.09. Reconhecer que violaes pessoais deste Cdigo so inconsistentes com ser um engenheiro de software profissional. Copyright (c) 1999 by the Association for Computing Machinery, Inc. and the Institute for Electrical and Electronics Engineers, Inc.
no deve comentar com ningum. Caso seja necessrio comentar com um superior, por exemplo, esse abrangido pela mesma regra de confidencialidade. No entanto, nem todos os casos de tica que envolvem computadores so problemas de tica na rea de computao. Por exemplo, no caso de uma pessoa, para poder comprar remdios de uso contnuo para a sua me, usa um computador para aplicar golpes em clientes de um banco. Esse caso no pode ser considerado um caso de tica em computao, da mesma forma que um advogado que encomenda o assassinato da esposa no um caso de tica na rea legal. A tica na rea de computao deve abranger as aces dos profissionais de computao no seu papel como profissionais de computao. 3.2 Automao de decises Foram vrias as causas que conduziram a sociedade automao de um sistema, entre elas, o aumento da concorrncia com a globalizao, o encarecimento das matrias-primas e o desenvolvimento da tecnologia, sendo um dos principais objectivos garantir melhor distribuio das tarefas entre o usurio e o computador. O nvel de automao est relacionado com a transferncia de responsabilidade do homem para o sistema de automao: Transferncia obrigatria: segurana ou preciso exigidas so incompatveis com a habilidade humana Transferncia planejada: as tarefas podem ser realizadas pelo homem, mas o sistema de automao aumenta a produtividade. Benefcios da automao: Qualidade assegurada dentro de limites estabelecidos Reduo de custos atravs de: Racionalizao de trabalho Eficincia no processo Uniformidade da qualidade dos produtos e servios Reduo de tempo na manuteno
Flexibilidade para adaptao a novos produtos ou servios Melhor conhecimento do processo, atravs da colheita dos dados e dos estados Melhor conhecimento dos equipamentos do processo para a obteno de melhor desempenho Uma das principais desvantagens da automao de sistemas consiste em, por vezes, conduzir ao desemprego de muitas pessoas que foram substitudas pelas mquinas.
Os engenheiros de software tm de possuir um comportamento responsvel, tico e ntegro. Devem tambm garantir e respeitar os nveis de confidencialidade dos dados e a segurana da comunicao. Devero ainda assegurar que os seus produtos e as alteraes a eles efectuadas esto protegidas contra aces de vrus e no podero vir a danificar o sistema computacional. O desrespeito desta conduta pode acartar as seguintes consequncias: O sistema no reflecte as necessidades reais dos clientes Sistema inconsistente ou incompleto O cliente e os usurios no ficam satisfeitos com o sistema Os usurios no usam todos os recursos do sistema O sistema no confivel, apresentando falhas ou interrupes na operao Os custos de manuteno so altos
3.4 Internet Com a elevada afluncia para a Internet e a sua expanso escala mundial, aumenta a responsabilidade do engenheiro de software quando implicado em projectos relacionados com a web. As possibilidades de desrespeito pelos princpios do cdigo de tica so vrias pelo que sero apresentados alguns casos em que tal acontece. O abuso dos motores de busca e a procura duma posio privilegiada fez nascer uma nova problemtica. Os sites utilizavam todos os meios possveis para desviarem a ateno dos motores de busca de maneira a conseguirem uma posio que no mereciam. Actualmente este fenmeno est mais controlado devido ao trabalho realizado pelas equipas de vrios motores de busca. Uma tcnica utilizada pelos criadores dos sites e que j no permitida era escreverem palavras-chave da mesma cor do fundo da pgina, sendo assim invisveis para quem visita a pgina mas entrando na pesquisa do motor de busca. Outra tcnica evitada pelos motores de busca consiste em repetir palavras-chave nas tag META do cdigo fonte dos sites. A controvrsia destas medidas dos motores de busca prende-se com o facto de serem estes a ditar as suas prprias leis e no existe nenhum regulamento consensual por parte dos utilizadores da Internet sobre este assunto. Um dos aspectos mais badalados do momento a difuso pela web de produtos pirateados. A grande questo para os engenheiros de software consiste em saber onde termina a sua responsabilidade neste assunto e comea a responsabilidade dos consumidores ou provedores destes servios, no esquecendo que o primeiro principio do cdigo de tica leva a agir sempre para o interesse pblico. A violao de direitos de autor prtica frequente na Internet, at nas mais simples aces, como por exemplo na criao de um site em que se utiliza documentos ou informaes pertencentes a outro sem o referir. O correio electrnico tambm utilizado como meio de infraco ao cdigo de tica, nomeadamente no que diz respeito ao SPAM e utilizao do e-mail para fins no consentidos pelo destinatrio deste tipo de correio electrnico. Estas atitudes so geralmente levadas a cabo com fins publicitrios.
O contedo das pginas web tem restries legais e ticas. Nesse papel os profissionais de software funcionam como intermedirios entre os donos (ou provedores de contedo) e os consumidores da informao e a sua aco pode prevenir ou facilitar a ocorrncia de condutas consideradas eticamente imprprias pela sociedade. Por um lado, podem ser responsabilizados por aces criminosas com origem no seu sistema ou material imprprio armazenado em seus equipamentos e, por outro lado, no h regras claras quanto a que tipo de censura poderiam exercer sobre o trfego de mensagens ou sobre o contedo dos sites que administram. Alguns estudiosos deste assunto comparam a informao que circula pela Internet com a informao que circula pelo servio telefnico. Seguindo essa analogia, o provedor do servio no responsvel pelo contedo da informao e nem tem o direito de censura sobre seus usurios. Outra analogia pode ser feita com os jornais, em que as empresas jornalsticas tm alguma responsabilidade sobre o contedo do que publicam ou ento a tem quem assina a matria. A primeira analogia parece estar mais prxima do correio electrnico e a segunda mais prxima da web. A mxima que considera que a liberdade de uns acaba quando comea a dos outros tambm vlida para a Internet, isto porque todo o tipo de pessoas e de todas as idades utiliza a Internet no seu dia-a-dia. Esta situao origina um conceito de liberdade de informao para a Internet e deve ser tomado em conta pelos responsveis de pginas web. 3.5 Sistemas Crticos A rea de software relacionada com os sistemas crticos a que exige maior responsabilidade por parte dos engenheiros de software. Isto porque qualquer falha tem, geralmente, consequncias gravssimas. Nos sistemas crticos, a confiabilidade dos mesmos normalmente a propriedade mais importante. A confiabilidade do sistema reflecte o grau de confiana desse sistema, isto , reflecte a confiana do utilizador de que o sistema operar como esperado e que no falhar em situaes normais. Os custos de uma falha do sistema podem ser extremamente elevados. Sistemas inseguros ou que no so confiveis so rejeitados porque podem causar percas de informao com consequncias graves a nvel de custos de recuperao. Existem vrios tipos de sistemas crticos: Sistemas crticos com relao segurana so aqueles que controlam algum dispositivo, com componentes de tempo real e que tm potencial para ameaar a vida de pessoas, causar ferimentos ou danos materiais no caso de falhas. Como exemplo h os equipamentos mdicos e os sistemas de proteco de centrais nucleares e qumicas. Sistemas crticos misso so aqueles cujas falhas resultam no incumprimento de objectivos de uma determinada actividade. Para este caso pode-se referir como exemplo o sistema de navegao de satlites ou naves espaciais. Sistemas crticos de negcio so aqueles cujas falhas resultam em elevadas perdas econmicas. Exemplo deste tipo de sistemas so os responsveis por transferncias bancrias e outro tipo de pagamentos.
Um sistema crtico avaliado segundo os seguintes critrios: Confiana que o utilizador pode ter no sistema; Probabilidade de estar disponvel para fornecer servios quando solicitado; Probabilidade de um sistema esta operacional (sem avarias) por um dado perodo de tempo; Capacidade do sistema se proteger de ameaas externas.
O engenheiro de software deve ter em conta estes critrios principais, porque existem outros, e assumir total responsabilidade na aprovao de um software. Estes sistemas necessitam de tcnicas de desenvolvimento e de avaliao que garantam que o produto seguro. Depois desta fase vem outra igualmente importante que consiste na verificao e validao do produto. Para este tipo de sistemas, so de relevante importncia os principios do cdigo de tica relacionados com o interesse pblico, realando o facto do engenheiro de software assumir total responsabilidade sobre o seu trabalho, e com o produto visto que este tem de ser de elevada qualidade e fiabilidade total. Um exemplo de uma falha num sistema crtico aconteceu em Fevereiro de 1992 em Atlanta, Estado Unidos, quando hackers penetraram na rede de computadores da Equifax e tiveram acesso aos ficheiros dos consumidores, nmeros de cartes de crdito e outras informaes. Este tipo de acontecimentos bastante frequente em sistemas pouco protegidos e pode ter as mais variadas consequncias.
5 Adeso ao cdigo
Aceitando que estes cdigos de tica so agora o mtodo natural de promover o profissionalismo e comportamento tico entre os engenheiros de software, deve-se, ento, assegurar que tais cdigos so respeitados e correctamente mantidos. Para assegurar a adeso ao cdigo de tica, necessrio reduzir qualquer possibilidade de confuso do significado deste cdigo e de suas intenes. Esta clarificao no s assegura que os seguidores recebem directrizes claras e especificas das suas expectativas de desempenho, mas tambm assegura que a violao do cdigo de tica ser correctamente e justamente acompanhada de aces disciplinares. Actualmente, nem a IEEE Computer Society, o ACM, nem qualquer outra organizao tem qualquer autoridade significativa para impor o cdigo. A conformidade com o cdigo de tica voluntria. Com o passar do tempo, no entanto, a engenharia de software seguir o mesmo caminho que as outras profisses. O cdigo de tica ser imposto para profissionais, o que ser benfico para engenheiros de software individuais, para seus empregadores e clientes, e o pblico. Os engenheiros de software devem ser encorajados a melhorar o ambiente ao aderir aos princpios de desenvolvimento sustentvel com o objectivo de aumentar a qualidade de vida do pblico. Acm disso devem trabalhar sob um padro de comportamento profissional que exige adeso aos princpios altos de conduta tica. Existem ainda muitos profissionais de engenharia de software que no do grande importncia ao cdigo de tica, visto ser um cdigo relativamente recente. O que no quer dizer que no seja respeitado, at porque muitos dos princpios do cdigo de tica e deontologia profissional para a engenharia de software confundem-se com a tica humana e os princpios morais que cada um deve ter da vida em sociedade. A adeso a este cdigo implicaria um conjunto de benefcios a todas as partes envolvidas na engenharia de software profissional, dos quais se destacam alguns: - Atrair empregadores empregadores conscientes e dedicados que desejam produzir software de qualidade; - Reputao a adeso ao cdigo promove a imagem tica de uma companhia e o reconhecimento pblico da realizao de trabalho com qualidade; - Imagem profissional uma companhia ganhar o respeito da concorrncia; - Confiana do pblico o software desenvolvido vai ao encontro do interesse pblico seguindo altos padres de confidencialidade; - Padres internos A relao entre engenheiros de software sair melhorada com a adopo do cdigo de tica.
6 Dilemas ticos
Os dilemas ticos surgem quando pessoas tm pontos de vistas diferentes. Como reagir quando se discorda das polticas dos nveis mais altos de gesto da companhia? Depende da natureza dos indivduos em particular e da natureza dessa discordncia. Defender sua posio dentro da organizao ou se resignar quanto a esse princpio? Uma soluo possvel empregador e empregado tornarem, com antecedncia, seus pontos de vista conhecidos. Na maioria dos casos, so problemas de menor importncia e acabam sendo resolvidos sem dificuldades. Porm, defender seus princpios pode muitas vezes significar um pedido de demisso e causar danos a outras pessoas, tais como, seu cnjuge ou seus filhos. Quando revelar gerncia um problema com um projecto de software? Se o problema for discutido enquanto for apenas uma suspeita, poder estar exagerando sua reaco situao mas se deixar para resolver muito tarde, poder ser impossvel resolver as dificuldades. O que fazer quando o empregador age de modo anti-tico? A dvida que nos surge se devemos manter a confidencialidade ou alertar o cliente que o sistema entregue pode no ser seguro. Nesta situao devemos sempre tentar resolver a situao visando aos direitos do empregador. Mas, se for uma situao perigosa ser justificvel divulgar a questo imprensa.
Referncias:
1. 2. 3. 4. 5. 6.
ACM: Software Engineering Code of Ethics and Professional Practice, ACM/IEEE joint task force, consultado em Novembro de 2005, http://www.acm.org/serving/se/code.htm Software Engineering Professional Ethics Project, consultado em Novembro de 2005 http://seeri.etsu.edu/se_code_adopter/default.asp Terrell Ward Bynum, A very short story of computer ethics, consultado em Novembro de 2005, http://www.southernct.edu/organizations/rccs/resources/research/introduction/bynum_shrt_hist.html Ins Boaventura, Introduo Engenharia de Software, consultado em Novembro de 2005, http://beast.dcce.ibilce.unesp.br/~ines/cursos/eng_soft/aula01.pdf Selma Melnikoff, tica em Computao, Escola Politcnica da USP, Setembro de 2004, consultado em Novembro de 2005, http://www.lps.usp.br/lps/arquivos/conteudo/grad/dwnld/etica_comp.ppt Steven C. McConnell, The Professionals code, 13 de Setembro de 2002, consultado em Novembro de 2005, http://www.stevemcconnell.com/Ethics.pdf