Engenharia de Software responsável: princípios, práticas e impactos da ética e da sustentabilidade na tecnologia
A engenharia de software é a disciplina que se ocupa do desenvolvimento, manutenção e evolução de sistemas de software, aplicando princípios, metodologias, processos, métodos e ferramentas científicas e técnicas. O trabalho dos engenheiros de software envolve responsabilidades mais amplas do que a simples aplicação de habilidades técnicas, pois os sistemas de software que eles criam podem ter impactos significativos na sociedade, na economia, na política, no meio ambiente e na vida das pessoas. Por isso, os engenheiros de software devem se comportar de maneira responsável, ética e moral, para serem respeitados como profissionais e contribuírem para o bem comum.
Neste artigo, vamos abordar alguns aspectos éticos e sociais relacionados à engenharia de software, tais como:
- Responsabilidade profissional e ética na construção de software;
- Impactos sociais da tecnologia e desenvolvimento sustentável, e
- Privacidade, segurança e proteção de dados.
Responsabilidade Profissional e Ética na Construção de Software
A responsabilidade profissional e ética na construção de software se refere ao compromisso dos engenheiros de software em seguir padrões de qualidade, eficiência, confiabilidade, segurança e legalidade em seus projetos, respeitando os direitos, as necessidades e os interesses dos clientes, dos usuários, dos colegas, dos empregadores, da sociedade e do meio ambiente. Isso implica em adotar uma conduta honesta, íntegra, competente, respeitosa e cooperativa no exercício da profissão, evitando conflitos de interesse, fraudes, corrupção, discriminação, abuso de poder e violação de normas.
Para orientar e regular a responsabilidade profissional e ética na engenharia de software, existem códigos de ética e conduta profissional elaborados por organizações nacionais e internacionais, como o IEEE (Institute of Electrical and Electronics Engineers), a ACM (Association for Computing Machinery) e a SBC (Sociedade Brasileira de Computação). Esses códigos estabelecem princípios gerais e específicos que devem ser seguidos pelos engenheiros de software em suas atividades profissionais. Alguns exemplos desses princípios são:
- Interesse público: os engenheiros de software devem agir consistentemente com o interesse público.
- Qualidade do produto: os engenheiros de software devem garantir que seus produtos e serviços atendam aos padrões adequados de qualidade.
- Julgamento profissional: os engenheiros de software devem manter a integridade e a independência em seu julgamento profissional.
- Gerenciamento: os engenheiros de software devem gerenciar o pessoal e os recursos para melhorar a qualidade e a eficácia do processo profissional.
- Autodesenvolvimento: os engenheiros de software devem buscar continuamente melhorar suas habilidades técnicas e profissionais.
- Colaboração: os engenheiros de software devem cooperar com seus colegas para promover um ambiente ético.
- Cliente: os engenheiros de software devem atender às necessidades legítimas dos clientes dentro dos princípios éticos.
- Empregador: os engenheiros de software devem agir fielmente em benefício do empregador ou cliente.
- Profissão: os engenheiros de software devem avançar a integridade e a reputação da profissão.
- Sociedade: os engenheiros de software devem considerar as questões éticas, sociais e ambientais relacionadas ao seu trabalho.
Um exemplo prático da aplicação da responsabilidade profissional e ética na construção de software é o caso do Volkswagen Dieselgate, que ocorreu em 2015, quando a empresa alemã admitiu ter instalado um software fraudulento em milhões de veículos a diesel para burlar os testes de emissão de poluentes. Esse software detectava quando o veículo estava sendo testado e reduzia as emissões de óxido de nitrogênio, um gás nocivo à saúde e ao meio ambiente. No entanto, quando o veículo estava em uso normal, o software desativava o controle de emissões, aumentando o consumo de combustível e a poluição. Esse caso revelou uma grave violação da responsabilidade profissional e ética por parte dos engenheiros de software envolvidos, que colocaram em risco a saúde pública, o meio ambiente e a confiança dos consumidores. Além disso, a empresa teve que arcar com multas bilionárias, processos judiciais, recall de veículos e danos à sua imagem.
Benefícios de seguir os códigos de ética e conduta profissional na engenharia de software
Seguir os códigos de ética e conduta profissional na engenharia de software pode trazer diversos benefícios para os engenheiros de software, para as organizações que eles trabalham e para a sociedade em geral. Alguns desses benefícios são:
- Melhoria da qualidade do software: ao seguir os códigos de ética e conduta profissional, os engenheiros de software se comprometem a garantir que seus produtos e serviços atendam aos padrões adequados de qualidade, eficiência, confiabilidade, segurança e legalidade. Isso implica em aplicar as melhores práticas, técnicas e ferramentas disponíveis para o desenvolvimento, teste e manutenção do software, bem como em realizar revisões, inspeções e auditorias periódicas para verificar o cumprimento dos requisitos e das normas. Um software de qualidade pode satisfazer as necessidades e expectativas dos clientes e usuários, reduzir os custos e os riscos associados ao seu uso, aumentar a sua competitividade e o seu valor agregado no mercado.
- Fortalecimento da confiança e da reputação: ao seguir os códigos de ética e conduta profissional, os engenheiros de software se comportam de forma honesta, íntegra, competente, respeitosa e cooperativa no exercício da profissão. Isso implica em honrar os compromissos assumidos com os clientes, os usuários, os colegas, os empregadores, a sociedade e o meio ambiente, evitando conflitos de interesse, fraudes, corrupção, discriminação, abuso de poder e violação de normas. Um comportamento ético pode gerar confiança e credibilidade entre as partes envolvidas no processo de desenvolvimento do software, bem como melhorar a imagem e a reputação dos engenheiros de software e das organizações que eles trabalham perante o público.
- Promoção do bem comum e do desenvolvimento sustentável: ao seguir os códigos de ética e conduta profissional, os engenheiros de software agem consistentemente com o interesse público. Isso implica em considerar os impactos sociais, econômicos, políticos, ambientais e humanos dos sistemas de software que eles criam ou participam da criação, buscando maximizar os benefícios e minimizar os malefícios para a sociedade. Um software que contribui para o bem comum pode melhorar a qualidade de vida e a saúde das pessoas, ampliar as oportunidades de trabalho, educação e lazer, promover a inclusão social e a participação cidadã, facilitar a comunicação e a colaboração, inovar e criar soluções para problemas globais.
- Desenvolvimento profissional e pessoal: ao seguir os códigos de ética e conduta profissional, os engenheiros de software participam do aprendizado contínuo sobre a prática da sua profissão. Isso implica em buscar constantemente melhorar as suas habilidades técnicas e profissionais, atualizar-se sobre as novas demandas e tecnologias, compartilhar conhecimentos e experiências com seus colegas, aderir às normas
Consequências de não seguir os códigos de ética e conduta profissional na engenharia de software
Por outro lado, não seguir os códigos de ética e conduta profissional na engenharia de software pode trazer diversas consequências negativas para os engenheiros de software, para as organizações que eles trabalham e para a sociedade em geral. Algumas dessas consequências são:
- Prejuízo da qualidade do software: ao não seguir os códigos de ética e conduta profissional, os engenheiros de software podem negligenciar ou comprometer os padrões de qualidade, eficiência, confiabilidade, segurança e legalidade dos seus produtos e serviços. Isso pode resultar em software defeituoso, ineficiente, inseguro, ilegal ou inadequado para as necessidades e expectativas dos clientes e usuários. Um software de baixa qualidade pode causar insatisfação, frustração, perda de tempo e dinheiro, danos materiais ou morais, riscos à saúde ou à vida das pessoas.
- Perda da confiança e da reputação: ao não seguir os códigos de ética e conduta profissional, os engenheiros de software podem se comportar de forma desonesta, incompetente, irresponsável, desrespeitosa ou anticooperativa no exercício da profissão. Isso pode gerar desconfiança e descrédito entre as partes envolvidas no processo de desenvolvimento do software, bem como prejudicar a imagem e a reputação dos engenheiros de software e das organizações que eles trabalham perante o público.
- Violação do bem comum e do desenvolvimento sustentável: ao não seguir os códigos de ética e conduta profissional, os engenheiros de software podem ignorar ou desconsiderar os impactos sociais, econômicos, políticos, ambientais e humanos dos sistemas de software que eles criam ou participam da criação. Isso pode resultar em software que prejudique a qualidade de vida e a saúde das pessoas, reduza as oportunidades de trabalho, educação e lazer, promova a exclusão social e a desinformação, dificulte a comunicação e a colaboração, gere problemas ou agravem problemas globais.
- Sanções legais e disciplinares: ao não seguir os códigos de ética e conduta profissional, os engenheiros de software podem infringir as leis e regulamentações aplicáveis ao seu trabalho, bem como as normas e procedimentos estabelecidos pelas organizações que eles trabalham ou pelos órgãos reguladores da sua profissão. Isso pode resultar em sanções legais, como multas, indenizações, processos judiciais ou criminais. Também pode resultar em sanções disciplinares, como advertências, suspensões, demissões ou cassações do registro profissional.
Um exemplo prático das consequências de não seguir os códigos de ética e conduta profissional na engenharia de software é o caso do Theranos, que ocorreu entre 2003 e 2018, quando a empresa norte-americana prometia revolucionar o mercado de exames laboratoriais com uma tecnologia que permitia realizar testes sanguíneos com apenas algumas gotas de sangue coletadas por um dispositivo portátil chamado Edison. No entanto, a empresa fraudou investidores, clientes, parceiros e reguladores sobre a eficácia e a confiabilidade da sua tecnologia, que na verdade era falha, imprecisa e perigosa. Esse caso revelou uma grave falta de ética por parte dos engenheiros de software envolvidos, que colocaram em risco a saúde pública, o meio ambiente e a confiança dos consumidores. Além disso, a empresa teve que encerrar suas operações, devolver milhões de dólares aos investidores, enfrentar centenas de processos judiciais e criminais.
Desafios e dilemas éticos na engenharia de software
Os engenheiros de software podem enfrentar diversos desafios e dilemas éticos em seus projetos, que envolvem situações complexas, incertas ou controversas, nas quais não há uma resposta única ou óbvia sobre o que é certo ou errado. Esses desafios e dilemas podem surgir em diferentes fases do ciclo de vida do software, desde a análise de requisitos até a manutenção, e podem afetar diferentes aspectos do software, como a funcionalidade, a usabilidade, a confiabilidade, a segurança, a privacidade, a acessibilidade, a sustentabilidade, entre outros. Alguns exemplos de desafios e dilemas éticos na engenharia de software são:
- Responsabilidade e AI: Projetar sistemas justos e transparentes. A inteligência artificial (AI) é uma área da engenharia de software que visa criar sistemas capazes de realizar tarefas que normalmente requerem inteligência humana, como reconhecimento de padrões, aprendizado, raciocínio, tomada de decisão, entre outras. A AI pode trazer benefícios para diversas áreas da sociedade, como saúde, educação, transporte, entretenimento, entre outras. No entanto, a AI também pode gerar riscos e desafios éticos, como: discriminação, viés, injustiça, falta de transparência, falta de explicabilidade, falta de controle, falta de confiança, entre outros. Os engenheiros de software que desenvolvem sistemas baseados em AI devem se preocupar em garantir que esses sistemas sejam justos e transparentes para os usuários e para a sociedade. Isso implica em considerar os valores e os princípios éticos que devem orientar o design, o desenvolvimento e o uso desses sistemas. Por exemplo: como evitar que um sistema de AI reproduza ou amplifique preconceitos ou estereótipos existentes na sociedade? Como garantir que um sistema de AI respeite os direitos humanos e a dignidade das pessoas? Como assegurar que um sistema de AI seja auditável e responsabilizável por suas ações e decisões? Como explicar aos usuários como um sistema de AI funciona e quais são os seus limites e incertezas?
- Privacidade de dados: Proteger a confiança e a segurança dos usuários. A privacidade de dados se refere ao direito dos indivíduos de controlarem as informações pessoais que são coletadas, armazenadas, processadas e divulgadas por sistemas de software. A privacidade de dados é um tema fundamental na engenharia de software, pois os sistemas de software lidam com uma grande quantidade e variedade de dados, que podem ser sensíveis, confidenciais, estratégicos ou críticos para os indivíduos, as organizações ou a sociedade. Os engenheiros de software que desenvolvem sistemas que envolvem dados pessoais devem se preocupar em proteger a confiança e a segurança dos usuários. Isso implica em seguir as leis e regulamentações aplicáveis ao tratamento dos dados pessoais no país, bem como as boas práticas e os padrões técnicos para garantir a privacidade por design. Por exemplo: como coletar apenas os dados necessários e relevantes para o propósito do sistema? Como obter o consentimento livre e informado dos usuários sobre o uso dos seus dados? Como armazenar os dados de forma segura e criptografada? Como garantir o acesso, o controle, a correção e a exclusão dos dados pelos usuários? Como evitar vazamentos ou violações dos dados?
Como resolver ou prevenir conflitos de interesse, fraudes, corrupção, discriminação, abuso de poder e violação de normas na engenharia de software
Os engenheiros de software podem enfrentar situações em seus projetos que envolvam conflitos de interesse, fraudes, corrupção, discriminação, abuso de poder e violação de normas, que podem comprometer a sua ética profissional e a qualidade do software. Essas situações podem ser causadas por fatores internos ou externos, como pressões econômicas, políticas ou sociais, interesses pessoais ou de terceiros, falta de transparência ou de fiscalização, entre outros. Para resolver ou prevenir essas situações, os engenheiros de software devem adotar algumas medidas e boas práticas, tais como:
- Identificar e declarar os conflitos de interesse: os engenheiros de software devem identificar e declarar qualquer situação em que os seus interesses pessoais, profissionais ou financeiros possam interferir ou influenciar o seu julgamento ou a sua conduta no projeto. Essa declaração deve ser feita por escrito e comunicada aos clientes, aos usuários, aos colegas, aos empregadores e aos órgãos competentes. Os engenheiros de software devem evitar participar de decisões ou atividades que possam envolver conflitos de interesse, a menos que haja uma autorização expressa e fundamentada dos envolvidos.
- Seguir as normas e os procedimentos estabelecidos: os engenheiros de software devem seguir as normas e os procedimentos estabelecidos pelas organizações que eles trabalham ou pelos órgãos reguladores da sua profissão. Essas normas e procedimentos devem estar alinhados com os códigos de ética e conduta profissional da engenharia de software, bem como com as leis e regulamentações aplicáveis ao seu trabalho. Os engenheiros de software devem documentar e registrar todas as suas ações e decisões no projeto, bem como os seus resultados e impactos.
- Denunciar as irregularidades e as ilegalidades: os engenheiros de software devem denunciar as irregularidades e as ilegalidades que eles presenciarem ou tomarem conhecimento em seus projetos. Essas denúncias devem ser feitas aos canais adequados, como as instâncias internas das organizações que eles trabalham ou os órgãos externos responsáveis pela fiscalização ou pela investigação. Os engenheiros de software devem fornecer provas ou indícios das irregularidades ou ilegalidades que eles denunciarem, bem como cooperar com as autoridades competentes. Os engenheiros de software devem ser protegidos contra represálias ou retaliações por suas denúncias.
- Promover a diversidade e a inclusão: os engenheiros de software devem promover a diversidade e a inclusão em seus projetos, respeitando e valorizando as diferenças individuais e coletivas dos clientes, dos usuários, dos colegas, dos empregadores e da sociedade. Essas diferenças podem incluir gênero, raça, etnia, religião, orientação sexual, idade, deficiência, entre outras. Os engenheiros de software devem evitar qualquer forma de discriminação ou preconceito em seus projetos, bem como garantir que os sistemas de software que eles criam sejam acessíveis e adequados para todos os públicos.
- Combater a corrupção e o abuso de poder: os engenheiros de software devem combater a corrupção e o abuso de poder em seus projetos, recusando-se a participar ou a facilitar qualquer ato ilícito ou imoral que envolva o uso indevido dos recursos públicos ou privados para obter vantagens pessoais ou para terceiros. Esses atos podem incluir suborno, propina, extorsão, nepotismo, favorecimento, entre outros. Os engenheiros de software devem agir com integridade e transparência em seus projetos
Impactos Sociais da Tecnologia e Desenvolvimento Sustentável
Os impactos sociais da tecnologia se referem aos efeitos positivos ou negativos que os sistemas de software podem causar na sociedade, na cultura, na política, na economia, na educação, na saúde, na comunicação, na segurança e em outros aspectos da vida humana. Alguns exemplos de impactos sociais positivos são: a democratização do acesso à informação e ao conhecimento; a ampliação das oportunidades de trabalho, educação e lazer; a melhoria da qualidade de vida e da saúde; a promoção da inclusão social e da participação cidadã; a facilitação da comunicação e da colaboração; a inovação e a criatividade. Alguns exemplos de impactos sociais negativos são: a exclusão digital e social; a desigualdade e a discriminação; a perda de privacidade e de autonomia; a dependência e o vício; a alienação e o isolamento; a desinformação e a manipulação; a violência e o cyberbullying.
Ou seja, temos a Tecnologia como Agente de Mudança, onde softwares têm desempenhado um papel crucial em revoluções sociais, democratização da informação e na promoção de justiça social (Friedman & Nissenbaum, 1996).
O desenvolvimento sustentável é um conceito que busca conciliar o crescimento econômico com a preservação ambiental e a justiça social, atendendo às necessidades do presente sem comprometer as possibilidades das gerações futuras. A tecnologia pode contribuir para o desenvolvimento sustentável, por meio da criação de soluções inovadoras que reduzam os impactos ambientais, promovam o uso eficiente dos recursos naturais, melhorem as condições sociais e humanas, estimulem a educação ambiental e a conscientização cidadã, entre outros benefícios. Por outro lado, a tecnologia também pode gerar problemas para o desenvolvimento sustentável, por meio do consumo excessivo de energia e materiais, da geração de resíduos eletrônicos, da poluição sonora e visual, da degradação dos ecossistemas, da exploração dos trabalhadores, entre outros malefícios.
Ou seja, no Desenvolvimento Sustentável a engenharia de software pode contribuir, considerando aspectos ambientais, sociais e econômicos em suas práticas (Beckers et al., 2016).
Um exemplo prático dos impactos sociais da tecnologia e do desenvolvimento sustentável é o caso do aplicativo Waze, que é um sistema de navegação por GPS que permite aos usuários compartilhar informações sobre o trânsito em tempo real. Esse aplicativo pode ter impactos sociais positivos, como: facilitar o deslocamento dos motoristas; economizar tempo e combustível; evitar acidentes e congestionamentos; melhorar a mobilidade urbana; integrar as comunidades. Porém, também pode ter impactos sociais negativos, como: invadir a privacidade dos usuários; incentivar o uso do carro individual; desrespeitar as leis de trânsito; prejudicar os moradores das ruas afetadas; aumentar as emissões de gases poluentes. Portanto, é preciso avaliar os prós e os contras do uso dessa tecnologia para o desenvolvimento sustentável.
Critérios ou indicadores para avaliar os impactos sociais da tecnologia e o desenvolvimento sustentável
Avaliar os impactos sociais da tecnologia e o desenvolvimento sustentável é uma tarefa complexa e multidimensional, que envolve diferentes dimensões, atores, perspectivas e métodos. Os impactos sociais da tecnologia e o desenvolvimento sustentável podem ser entendidos como os efeitos positivos ou negativos que as tecnologias têm sobre a sociedade, a cultura, a política, a economia, a educação, a saúde, a comunicação, a segurança e outros aspectos da vida humana, em relação aos princípios e às metas do desenvolvimento sustentável. O desenvolvimento sustentável é definido como aquele que atende às necessidades do presente sem comprometer a capacidade das gerações futuras de atenderem às suas próprias necessidades, e é orientado pelos 17 Objetivos de Desenvolvimento Sustentável (ODS) da Agenda 2030 da ONU.
Para avaliar os impactos sociais da tecnologia e o desenvolvimento sustentável, é preciso estabelecer critérios ou indicadores que possam medir ou qualificar esses impactos de forma objetiva, sistemática e comparável. Os critérios ou indicadores são variáveis que representam ou aproximam os conceitos ou fenômenos que se quer avaliar. Os critérios ou indicadores podem ser quantitativos ou qualitativos, descritivos ou normativos, absolutos ou relativos, entre outras classificações. A escolha dos critérios ou indicadores depende dos objetivos, do contexto, dos recursos e das limitações da avaliação.
Existem diferentes fontes, modelos e propostas de critérios ou indicadores para avaliar os impactos sociais da tecnologia e o desenvolvimento sustentável. Alguns exemplos são:
- Os indicadores dos ODS: são um conjunto de 232 indicadores globais que foram definidos pela ONU para monitorar o progresso dos 17 ODS e suas 169 metas. Esses indicadores abrangem diversas dimensões do desenvolvimento sustentável, como pobreza, fome, saúde, educação, igualdade de gênero, água, energia, trabalho, indústria, inovação, cidades, consumo, clima, biodiversidade, paz e justiça. Esses indicadores podem ser usados para avaliar como as tecnologias contribuem ou prejudicam o alcance dos ODS em diferentes níveis (global, regional, nacional ou local).
- O Índice de Desenvolvimento Humano (IDH): é um indicador composto que mede o nível de desenvolvimento humano de um país ou região. O IDH combina três dimensões: a expectativa de vida ao nascer (como uma medida da saúde), a escolaridade média e esperada (como uma medida da educação) e a renda nacional bruta per capita (como uma medida do padrão de vida). O IDH pode ser usado para avaliar como as tecnologias afetam o bem-estar e as oportunidades das pessoas em diferentes contextos.
- A Avaliação de Impacto Social (AIS): é um método que visa identificar e avaliar as consequências futuras de uma ação atual ou proposta que esteja relacionada aos indivíduos, às organizações e aos sistemas sociais. A AIS pode envolver diferentes etapas, como a definição do escopo e dos objetivos da avaliação, a identificação dos stakeholders e dos impactos potenciais, a coleta e análise de dados qualitativos ou quantitativos, a elaboração de recomendações ou planos de ação. A AIS pode ser usada para avaliar como as tecnologias geram impactos sociais positivos ou negativos em diferentes grupos ou setores da sociedade.
Vantagens e desvantagens de usar a tecnologia para o desenvolvimento sustentável
Usar a tecnologia para o desenvolvimento sustentável é uma estratégia que visa aproveitar os benefícios das inovações científicas e tecnológicas para promover soluções que atendam às necessidades do presente sem comprometer as capacidades das gerações futuras. A tecnologia pode contribuir para o desenvolvimento sustentável em diversas dimensões, como a social, a econômica, a ambiental e a institucional. No entanto, a tecnologia também pode gerar desafios e riscos para o desenvolvimento sustentável, dependendo de como é concebida, desenvolvida, implementada e utilizada. A seguir, apresentamos algumas vantagens e desvantagens de usar a tecnologia para o desenvolvimento sustentável.
Vantagens de usar a tecnologia para o desenvolvimento sustentável:
- Aumento da eficiência e da produtividade: a tecnologia pode aumentar a eficiência e a produtividade dos processos produtivos, dos serviços públicos, da gestão de recursos, entre outros aspectos. Isso pode resultar em uma maior geração de riqueza, uma melhor alocação de recursos, uma maior competitividade e uma maior qualidade de vida. Por exemplo: a tecnologia pode permitir a otimização do uso da energia, da água, dos materiais, entre outros insumos, reduzindo os custos e os desperdícios.
- Melhoria da educação e da saúde: a tecnologia pode melhorar a educação e a saúde das populações, ampliando o acesso, a qualidade e a diversidade das oportunidades de aprendizagem e dos serviços de saúde. Isso pode resultar em uma maior inclusão social, uma maior capacitação humana, uma maior prevenção e tratamento de doenças, entre outros benefícios. Por exemplo: a tecnologia pode permitir o uso de plataformas digitais, de dispositivos móveis, de realidade virtual ou aumentada, entre outros recursos, para facilitar o ensino e a aprendizagem à distância ou personalizada.
- Promoção da inovação e da criatividade: a tecnologia pode promover a inovação e a criatividade das pessoas, das organizações e da sociedade, estimulando o desenvolvimento de novas ideias, soluções, produtos ou serviços que possam atender às demandas ou aos desafios do desenvolvimento sustentável. Isso pode resultar em uma maior diversificação econômica, uma maior resiliência social, uma maior adaptação ambiental, entre outros benefícios. Por exemplo: a tecnologia pode permitir o uso de inteligência artificial, de internet das coisas, de biotecnologia, entre outras ferramentas, para criar soluções inteligentes ou disruptivas para problemas globais.
Desvantagens de usar a tecnologia para o desenvolvimento sustentável:
Algumas desvantagens de usar a tecnologia para o desenvolvimento sustentável são:
- Aumento das desigualdades e das exclusões: a tecnologia pode aumentar as desigualdades e as exclusões sociais, econômicas ou digitais entre as pessoas, as regiões ou os países, dependendo do grau de acesso, de distribuição ou de participação na produção ou no consumo das tecnologias. Isso pode resultar em uma maior pobreza, uma maior vulnerabilidade, uma menor coesão social, entre outros problemas. Por exemplo: a tecnologia pode gerar um fosso digital entre aqueles que têm acesso à internet ou aos dispositivos eletrônicos e aqueles que não têm.
- Redução da privacidade e da segurança: a tecnologia pode reduzir a privacidade e a segurança dos indivíduos, das organizações ou da sociedade, dependendo de como os dados pessoais ou sensíveis são coletados, armazenados, compartilhados ou usados pelos sistemas de software. Isso pode resultar em uma maior exposição, vigilância, invasão, roubo, manipulação ou violação dos dados pessoais ou sensíveis. Por exemplo: a tecnologia pode permitir o uso de câmeras, microfones, sensores, rastreadores, entre outros dispositivos, para monitorar ou espionar as atividades ou as comunicações das pessoas.
- Aumento da dependência e da vulnerabilidade: a tecnologia pode aumentar a dependência e a vulnerabilidade dos indivíduos, das organizações ou da sociedade, dependendo do grau de confiança, de uso ou de necessidade dos sistemas de software para realizar suas funções ou atividades. Isso pode resultar em uma menor autonomia, diversidade ou resiliência dos indivíduos, das organizações ou da sociedade. Por exemplo: a tecnologia pode permitir o uso de algoritmos, robôs, inteligência artificial, entre outros recursos, para automatizar ou substituir as decisões ou as ações das pessoas.
Portanto, é importante que os engenheiros de software considerem os impactos positivos e negativos da tecnologia para o desenvolvimento sustentável em seus projetos, buscando criar sistemas de software que sejam eficientes, inovadores e responsáveis.
Responsabilidades e desafios dos engenheiros de software para criar sistemas de software que promovam o desenvolvimento sustentável
Os engenheiros de software são profissionais que criam ou participam da criação de sistemas de software, que são conjuntos de programas, dados, documentos e procedimentos que realizam funções específicas em um determinado domínio ou contexto. Os sistemas de software podem ter impactos positivos ou negativos para o desenvolvimento sustentável, dependendo de como são concebidos, desenvolvidos, implementados e utilizados. O desenvolvimento sustentável é aquele que atende às necessidades do presente sem comprometer a capacidade das gerações futuras de atenderem às suas próprias necessidades, respeitando os princípios e as metas do desenvolvimento sustentável.
Os engenheiros de software têm responsabilidades e desafios para criar sistemas de software que promovam o desenvolvimento sustentável, tanto em relação aos aspectos técnicos quanto aos aspectos éticos, sociais e ambientais do seu trabalho. Algumas dessas responsabilidades e desafios são:
- Seguir os códigos de ética e conduta profissional da engenharia de software: os códigos de ética e conduta profissional são documentos que estabelecem os princípios gerais e específicos que devem ser seguidos pelos engenheiros de software em suas atividades profissionais. Esses códigos são elaborados por organizações nacionais e internacionais, como o IEEE, o ACM e a SBC, que representam a comunidade profissional da engenharia de software. Seguir esses códigos pode ajudar os engenheiros de software a agir com honestidade, integridade, competência, respeito, cooperação e responsabilidade em seus projetos.
- Considerar os impactos sociais da tecnologia: os impactos sociais da tecnologia se referem aos efeitos positivos ou negativos que os sistemas de software podem causar na sociedade, na cultura, na política, na economia, na educação, na saúde, na comunicação, na segurança e em outros aspectos da vida humana. Considerar esses impactos pode ajudar os engenheiros de software a desenvolver uma visão crítica e holística sobre o seu trabalho, considerando as implicações éticas, sociais e ambientais dos sistemas de software que eles criam ou participam da criação.
- Aplicar métodos e ferramentas para a análise e a tomada de decisão ética: aplicar métodos e ferramentas para a análise e a tomada de decisão ética pode ajudar os engenheiros de software a resolver ou prevenir dilemas ou problemas éticos em seus projetos. Esses métodos e ferramentas podem envolver técnicas como o brainstorming, o diagrama de Ishikawa, o método dos quatro quadrantes, o método dos seis chapéus do pensamento, entre outras. Essas técnicas podem auxiliar os engenheiros de software a identificar os fatos, as alternativas, as consequências, os valores, os critérios e os stakeholders envolvidos em uma situação ética, bem como a escolher a melhor opção disponível.
- Desenvolver sistemas de software sustentáveis: desenvolver sistemas de software sustentáveis significa criar sistemas de software que sejam eficientes no uso dos recursos naturais e humanos, que sejam adaptáveis às mudanças do ambiente e das necessidades dos usuários, que sejam duráveis ao longo do tempo e que sejam compatíveis com os princípios e as metas do desenvolvimento sustentável. Desenvolver sistemas de software sustentáveis pode envolver práticas como a otimização do consumo de energia, a redução das emissões de carbono, a reutilização ou reciclagem dos materiais, a melhoria da qualidade do código, a aplicação de padrões de design sustentáveis, entre outras.
Recomendações ou orientações para os engenheiros de software seguirem os princípios e as metas do desenvolvimento sustentável
Seguir os princípios e as metas do desenvolvimento sustentável é um compromisso ético e social dos engenheiros de software, que devem buscar criar sistemas de software que contribuam para o bem-estar das gerações presentes e futuras, respeitando os limites e as potencialidades do planeta. Para seguir os princípios e as metas do desenvolvimento sustentável, os engenheiros de software podem adotar algumas recomendações ou orientações, tais como:
- Conhecer e alinhar-se aos Objetivos de Desenvolvimento Sustentável (ODS): os ODS são um conjunto de 17 objetivos e 169 metas que foram definidos pela ONU para orientar o desenvolvimento sustentável até 2030. Os ODS abrangem diversas dimensões do desenvolvimento sustentável, como pobreza, fome, saúde, educação, igualdade de gênero, água, energia, trabalho, indústria, inovação, cidades, consumo, clima, biodiversidade, paz e justiça. Os engenheiros de software devem conhecer e alinhar-se aos ODS, buscando criar sistemas de software que contribuam para o seu alcance ou que não os prejudiquem. Os engenheiros de software podem consultar os indicadores dos ODS para monitorar e avaliar o progresso dos seus projetos em relação aos ODS.
- Adotar práticas de engenharia de software verde: a engenharia de software verde é uma disciplina emergente que visa definir, desenvolver e executar sistemas de software que sejam eficientes no uso dos recursos naturais e humanos, que sejam adaptáveis às mudanças do ambiente e das necessidades dos usuários, que sejam duráveis ao longo do tempo e que sejam compatíveis com os princípios e as metas do desenvolvimento sustentável. A engenharia de software verde envolve práticas como a otimização do consumo de energia, a redução das emissões de carbono, a reutilização ou reciclagem dos materiais, a melhoria da qualidade do código, a aplicação de padrões de design sustentáveis, entre outras.
- Envolver os stakeholders na análise e na tomada de decisão ética: os stakeholders são as pessoas ou grupos que têm interesse ou são afetados pelos sistemas de software que são criados ou participados pelos engenheiros de software. Os stakeholders podem incluir clientes, usuários finais, colegas, empregadores, fornecedores, reguladores, comunidade e sociedade. Os engenheiros de software devem envolver os stakeholders na análise e na tomada de decisão ética sobre os sistemas de software que eles criam ou participam da criação. Isso implica em identificar os stakeholders relevantes para cada projeto, comunicar-se com eles de forma clara e transparente, consultar suas opiniões e expectativas, considerar seus valores e interesses, negociar soluções satisfatórias para todos.
Privacidade, Segurança e Proteção de Dados
A privacidade se refere ao direito dos indivíduos de controlarem as informações pessoais que são coletadas, armazenadas, processadas e divulgadas por sistemas de software. A segurança se refere à proteção dos sistemas de software contra ameaças externas ou internas que possam comprometer sua integridade, confidencialidade e disponibilidade dos dados. A proteção de dados se refere ao respeito aos direitos dos titulares dos dados, que são as pessoas físicas a quem os dados se referem, garantindo que eles tenham acesso, controle, consentimento e transparência sobre o uso de suas informações pessoais.
A privacidade, a segurança e a proteção de dados são temas fundamentais na engenharia de software, pois os sistemas de software lidam com uma grande quantidade e variedade de dados, que podem ser sensíveis, confidenciais, estratégicos ou críticos para os indivíduos, as organizações ou a sociedade. Além disso, os sistemas de software estão expostos a diversas ameaças e riscos, que podem afetar a sua funcionalidade, integridade, confiabilidade e reputação. Por isso, os engenheiros de software devem adotar medidas e boas práticas para garantir a privacidade, a segurança e a proteção de dados em todas as fases do ciclo de vida do software, desde o planejamento, o desenvolvimento, o teste, a implantação, a operação e a manutenção.
Algumas das medidas e boas práticas para garantir a privacidade, a segurança e a proteção de dados na engenharia de software são:
- Análise de requisitos: os engenheiros de software devem identificar e especificar os requisitos de privacidade, segurança e proteção de dados dos sistemas de software, considerando as necessidades e expectativas dos clientes, dos usuários e das partes interessadas. Esses requisitos devem estar alinhados com as leis e regulamentações aplicáveis, como a Lei Geral de Proteção de Dados (LGPD), que é a lei brasileira que regula o tratamento de dados pessoais no país.
- Design: os engenheiros de software devem projetar os sistemas de software seguindo princípios e padrões de privacidade, segurança e proteção de dados, como o Privacy by Design (PbD), que consiste em incorporar a privacidade desde o início do projeto, o Security by Design (SbD), que consiste em incorporar a segurança desde o início do projeto, e o Data Protection by Design and by Default (DPbD), que consiste em incorporar a proteção de dados desde o início do projeto e por padrão.
- Implementação: os engenheiros de software devem implementar os sistemas de software utilizando técnicas e ferramentas adequadas para garantir a privacidade, a segurança e a proteção de dados. Algumas dessas técnicas e ferramentas são: a criptografia, que consiste em codificar os dados para torná-los ilegíveis para terceiros não autorizados; a autenticação, que consiste em verificar a identidade dos usuários ou sistemas que acessam os dados; a autorização, que consiste em definir os níveis de acesso aos dados; o controle de acesso, que consiste em restringir o acesso aos dados conforme as regras definidas; a anonimização, que consiste em remover ou alterar os dados que possam identificar ou associar uma pessoa; a pseudonimização, que consiste em substituir os dados identificáveis por pseudônimos; entre outras.
- Teste: os engenheiros de software devem testar os sistemas de software para verificar se eles atendem aos requisitos e aos padrões de privacidade, segurança e proteção de dados. Esses testes devem incluir testes funcionais, não funcionais, de penetração, de vulnerabilidade, entre outros. Os testes devem ser realizados em ambientes controlados e com dados fictícios ou anonimizados.
- Implantação: os engenheiros de software devem implantar os sistemas de software em ambientes seguros e confiáveis, seguindo as normas e procedimentos estabelecidos. Os ambientes devem contar com mecanismos de proteção contra ataques, invasões, vírus, malwares, entre outros. Os ambientes devem ser monitorados e auditados periodicamente para garantir o seu funcionamento adequado e a detecção de eventuais problemas ou incidentes.
- Operação: os engenheiros de software devem operar os sistemas de software de forma a garantir a privacidade, a segurança e a proteção de dados dos usuários e dos clientes. Isso envolve fornecer suporte, manutenção, atualização, backup, recuperação, entre outros serviços. Os engenheiros de software devem respeitar as políticas e os contratos estabelecidos com os usuários e os clientes, bem como as leis e regulamentações vigentes. Os engenheiros de software devem informar e comunicar aos usuários e aos clientes sobre o uso dos seus dados, os seus direitos e as suas responsabilidades.
- Manutenção: os engenheiros de software devem manter os sistemas de software atualizados e compatíveis com as novas demandas e tecnologias, sem comprometer a privacidade, a segurança e a proteção de dados. Isso envolve realizar modificações, correções, melhorias, adaptações, entre outras ações. Os engenheiros de software devem documentar e registrar as alterações realizadas nos sistemas de software, bem como os seus impactos na privacidade, na segurança e na proteção de dados.
Um exemplo prático da importância da privacidade, da segurança e da proteção de dados na engenharia de software é o caso do Facebook-Cambridge Analytica, que ocorreu em 2018, quando foi revelado que a empresa britânica Cambridge Analytica obteve ilegalmente os dados pessoais de cerca de 87 milhões de usuários do Facebook, por meio de um aplicativo de teste psicológico que coletava as informações dos usuários e dos seus contatos. Esses dados foram usados para criar perfis psicográficos dos usuários e influenciar as suas opiniões políticas nas eleições presidenciais dos Estados Unidos em 2016 e no referendo do Brexit no Reino Unido em 2016. Esse caso mostrou uma grave violação da privacidade, da segurança e da proteção de dados por parte do Facebook e da Cambridge Analytica, que afetou a democracia, a confiança e os direitos dos usuários. Além disso, o Facebook teve que enfrentar multas milionárias, investigações judiciais, boicotes dos usuários e danos à sua reputação.
Leis e regulamentações aplicáveis à proteção de dados pessoais no Brasil e no mundo
A proteção de dados pessoais é um tema que tem ganhado cada vez mais relevância e atenção no cenário nacional e internacional, diante do aumento do uso e do compartilhamento de dados pessoais nas atividades econômicas, sociais e digitais. Os dados pessoais são informações relacionadas a uma pessoa natural identificada ou identificável, como nome, endereço, e-mail, telefone, CPF, entre outras. A proteção de dados pessoais visa garantir o respeito aos direitos fundamentais de privacidade, intimidade, liberdade, dignidade e autodeterminação informativa dos titulares dos dados.
Para regular a coleta, o tratamento, o armazenamento, o uso, o compartilhamento e a eliminação dos dados pessoais, existem diversas leis e regulamentações aplicáveis à proteção de dados pessoais no Brasil e no mundo. Essas leis e regulamentações estabelecem os princípios, os direitos, as obrigações, as sanções e as autoridades competentes para fiscalizar e aplicar as normas de proteção de dados pessoais. A seguir, apresentamos algumas das principais leis e regulamentações aplicáveis à proteção de dados pessoais no Brasil e no mundo.
No Brasil, a principal legislação relacionada à privacidade e à proteção de dados pessoais é a Lei Federal nº 13.709/2018, conhecida como Lei Geral de Proteção de Dados Pessoais ou LGPD. A LGPD é a primeira lei brasileira que aborda de forma abrangente e específica a proteção de dados pessoais em diversos setores e contextos. A LGPD foi influenciada pela Regulação Geral de Proteção de Dados da União Europeia (GDPR) e também ampliou sua abrangência em alguns aspectos em relação à GDPR. A LGPD entrou em vigor em 18 de setembro de 2020, mas as sanções administrativas previstas na lei só passaram a ser aplicáveis em 1º de agosto de 2021. A LGPD é composta por 65 artigos, que tratam dos conceitos, dos princípios, dos direitos dos titulares dos dados, das bases legais para o tratamento dos dados, das obrigações dos agentes de tratamento dos dados, das hipóteses de transferência internacional dos dados, das sanções administrativas, entre outros aspectos. A LGPD também criou a Autoridade Nacional de Proteção de Dados (ANPD), órgão federal responsável por editar normas e fiscalizar o cumprimento da lei.
No mundo, existem diversas leis e regulamentações aplicáveis à proteção de dados pessoais em diferentes países ou regiões. Algumas das mais conhecidas são:
- A Regulação Geral de Proteção de Dados da União Europeia (GDPR): é uma regulamentação que entrou em vigor em 25 de maio de 2018 e que se aplica a todos os países membros da União Europeia. A GDPR é considerada uma das mais avançadas e rigorosas normas de proteção de dados pessoais do mundo, servindo como referência para outras legislações. A GDPR estabelece os princípios, os direitos, as obrigações, as sanções e as autoridades competentes para a proteção de dados pessoais na União Europeia. A GDPR também se aplica a organizações que não estão localizadas na União Europeia, mas que oferecem bens ou serviços ou monitoram o comportamento de indivíduos localizados na União Europeia.
- A Lei de Privacidade do Consumidor da Califórnia (CCPA): é uma lei estadual que entrou em vigor em 1º de janeiro de 2020 e que se aplica a todas as empresas que fazem negócios na Califórnia ou que coletam ou vendem os dados pessoais dos residentes da Califórnia. A CCPA é considerada uma das mais abrangentes e inovadoras normas de proteção de dados pessoais nos Estados Unidos da América. A CCPA estabelece os direitos dos consumidores da Califórnia em relação aos seus dados pessoais, como o direito à informação, ao acesso, à exclusão, à portabilidade, à não discriminação e à recusa da venda de seus dados. A CCPA também impõe obrigações às empresas que tratam esses dados, como fornecer avisos claros e transparentes, implementar medidas de segurança adequadas, responder às solicitações dos consumidores e respeitar suas escolhas. A CCPA é fiscalizada pela Procuradoria Geral da Califórnia, que pode aplicar multas e sanções em caso de violação da lei. Além disso, a CCPA concede aos consumidores o direito de ajuizar ações coletivas contra as empresas em caso de violação de dados que causem danos.
Boas práticas e padrões técnicos para garantir a privacidade por design nos sistemas de software
Garantir a privacidade por design nos sistemas de software significa incorporar a proteção dos dados pessoais desde as fases iniciais do desenvolvimento até o final do ciclo de vida dos sistemas. Para isso, os engenheiros de software devem seguir algumas boas práticas e padrões técnicos que possam assegurar a conformidade com os princípios, os direitos e as obrigações da legislação aplicável à proteção de dados pessoais, bem como com as expectativas e as preferências dos usuários. Algumas dessas boas práticas e padrões técnicos são:
- Realizar uma Avaliação de Impacto à Proteção de Dados Pessoais (AIPD): uma AIPD é um processo que visa identificar, avaliar e mitigar os riscos para a privacidade e a proteção dos dados pessoais que podem ser gerados por um sistema de software. Uma AIPD deve ser realizada antes do início do tratamento dos dados pessoais, envolvendo os stakeholders relevantes, como os titulares dos dados, os agentes de tratamento dos dados, as autoridades competentes, entre outros. Uma AIPD deve considerar os objetivos, o contexto, o escopo, as bases legais, as medidas de segurança, as garantias e os controles do sistema de software. Uma AIPD deve documentar os resultados da análise e as recomendações para a melhoria da privacidade por design.
- Aplicar técnicas de anonimização ou pseudonimização dos dados pessoais: anonimização é uma técnica que visa modificar ou remover os dados pessoais de forma que não seja possível identificar ou reidentificar os titulares dos dados. Pseudonimização é uma técnica que visa substituir os dados pessoais por pseudônimos, que são identificadores não relacionados aos titulares dos dados. Essas técnicas podem reduzir os riscos para a privacidade e a proteção dos dados pessoais, bem como facilitar o cumprimento das bases legais para o tratamento dos dados. Essas técnicas devem ser aplicadas sempre que possível e adequado, levando em conta o propósito e o contexto do sistema de software.
- Implementar mecanismos de consentimento, informação e transparência: consentimento é a manifestação livre, informada e inequívoca pela qual o titular dos dados concorda com o tratamento dos seus dados pessoais para uma finalidade determinada. Informação é o direito do titular dos dados de receber informações claras, precisas e completas sobre o tratamento dos seus dados pessoais. Transparência é o princípio pelo qual o tratamento dos dados pessoais deve ser realizado de forma aberta, acessível e compreensível para os titulares dos dados. Esses mecanismos devem ser implementados nos sistemas de software para garantir o respeito à autodeterminação informativa e à confiança dos usuários. Esses mecanismos devem ser fáceis de usar, configurar e revogar pelos usuários.
Riscos e consequências de violar a privacidade de dados dos usuários ou dos clientes
Violar a privacidade de dados dos usuários ou dos clientes significa desrespeitar o direito que eles têm de controlar como seus dados pessoais são coletados, compartilhados e usados pelos sistemas de software que os engenheiros de software criam ou participam da criação. Esses dados pessoais podem incluir informações como nome, endereço, e-mail, telefone, CPF, entre outras, que podem identificar ou tornar identificável uma pessoa natural. Violar a privacidade de dados dos usuários ou dos clientes pode gerar riscos e consequências negativas para os indivíduos, para as organizações e para a sociedade. Algumas dessas riscos e consequências são:
- Danos aos indivíduos: violar a privacidade de dados dos usuários ou dos clientes pode causar danos aos indivíduos que tiveram seus dados pessoais violados. Esses danos podem ser de natureza material ou imaterial, como perda financeira, roubo de identidade, discriminação, assédio, violência, constrangimento, angústia, entre outros. Esses danos podem afetar a dignidade, a liberdade, a segurança e o bem-estar dos indivíduos.
- Prejuízos às organizações: violar a privacidade de dados dos usuários ou dos clientes pode causar prejuízos às organizações que são responsáveis pela violação ou que são afetadas por ela. Esses prejuízos podem ser de natureza econômica ou reputacional, como multas, indenizações, perda de competitividade, perda de confiança, perda de clientes, entre outros. Esses prejuízos podem comprometer a sustentabilidade, a inovação e a qualidade dos serviços das organizações.
- Problemas para a sociedade: violar a privacidade de dados dos usuários ou dos clientes pode causar problemas para a sociedade como um todo. Esses problemas podem ser de natureza política ou social, como manipulação eleitoral, desinformação, polarização, radicalização, violação de direitos humanos, entre outros. Esses problemas podem afetar a democracia, a justiça e a coesão social.
Portanto, é importante que os engenheiros de software respeitem a privacidade de dados dos usuários ou dos clientes em seus projetos, seguindo as leis e regulamentações aplicáveis à proteção de dados pessoais no Brasil e no mundo, bem como as boas práticas e os padrões técnicos para garantir a privacidade por design nos sistemas de software.
Exemplos de sistemas de software que respeitam ou desrespeitam a privacidade de dados
Os sistemas de software que respeitam ou desrespeitam a privacidade de dados são aqueles que seguem ou não seguem os princípios, os direitos e as obrigações da legislação aplicável à proteção de dados pessoais, bem como as boas práticas e os padrões técnicos para garantir a privacidade por design nos sistemas de software. Esses sistemas de software podem ter impactos positivos ou negativos para os usuários ou clientes que fornecem ou usam seus dados pessoais para os sistemas de software. A seguir, apresentamos alguns exemplos de sistemas de software que respeitam ou desrespeitam a privacidade de dados.
Exemplos de sistemas de software que respeitam a privacidade de dados:
- Signal: é um aplicativo de mensagens instantâneas que utiliza criptografia de ponta a ponta para proteger a comunicação entre os usuários. O Signal não coleta, armazena ou compartilha nenhum dado pessoal dos usuários, como nome, número de telefone, endereço, localização, contatos, histórico de conversas, entre outros. O Signal também permite que os usuários configurem mensagens que se autodestroem após um período determinado. O Signal é considerado um dos aplicativos mais seguros e privados do mercado.
- DuckDuckGo: é um mecanismo de busca na internet que não rastreia, armazena ou compartilha nenhum dado pessoal dos usuários, como endereço IP, histórico de pesquisa, localização, preferências, entre outros. O DuckDuckGo também não exibe anúncios personalizados com base nos dados dos usuários. O DuckDuckGo é considerado uma alternativa mais privada e ética aos mecanismos de busca tradicionais.
- ProtonMail: é um serviço de e-mail que utiliza criptografia de ponta a ponta para proteger o conteúdo das mensagens entre os usuários. O ProtonMail não coleta, armazena ou compartilha nenhum dado pessoal dos usuários, como nome, endereço, senha, contatos, conteúdo das mensagens, entre outros. O ProtonMail também permite que os usuários configurem mensagens que se autodestroem após um período determinado. O ProtonMail é considerado um dos serviços de e-mail mais seguros e privados do mercado.
Exemplos de sistemas de software que desrespeitam a privacidade de dados:
- Facebook: é uma rede social que coleta, armazena e compartilha uma grande quantidade e variedade de dados pessoais dos usuários, como nome, endereço, e-mail, telefone, localização, contatos, interesses, comportamento, entre outros. O Facebook utiliza esses dados para exibir anúncios personalizados aos usuários, bem como para fornecer esses dados a terceiros sem o consentimento ou o conhecimento dos usuários. O Facebook também tem sido alvo de diversas violações de dados e escândalos envolvendo o uso indevido dos dados dos usuários por empresas como a Cambridge Analytica.
- Zoom: é um aplicativo de videoconferência que coleta, armazena e compartilha alguns dados pessoais dos usuários, como nome, e-mail, número de telefone, localização, duração das reuniões, conteúdo das conversas, entre outros. O Zoom utiliza esses dados para fins comerciais ou analíticos, bem como para fornecer esses dados a terceiros sem o consentimento ou o conhecimento dos usuários. O Zoom também tem sido alvo de diversas vulnerabilidades e incidentes envolvendo a invasão ou a exposição dos dados dos usuários por atacantes.
- TikTok: é um aplicativo de compartilhamento de vídeos curtos que coleta, armazena e compartilha uma grande quantidade e variedade de dados pessoais dos usuários, como contatos, endereços de e-mail, localização geográfica, rosto, voz, hábitos de consumo, preferências e interesses. O TikTok também tem sido acusado de ter conexões com o governo chinês, que poderia usar os dados dos usuários para fins de espionagem, censura ou manipulação (leia aqui e aqui). Além disso, o TikTok tem sido criticado por violar a privacidade das crianças, permitindo que elas se cadastrem sem o consentimento dos pais e expondo-as a conteúdos impróprios ou perigosos (mais ). O TikTok representa, portanto, um risco para a privacidade e a segurança dos dados dos usuários, especialmente os mais jovens.
Conclusão
Neste artigo, abordamos alguns aspectos éticos e sociais relacionados à engenharia de software, tais como:
- Responsabilidade profissional e ética na construção de software.
- Impactos sociais da tecnologia e desenvolvimento sustentável.
- Privacidade, segurança e proteção de dados.
Vimos que esses aspectos são relevantes para o trabalho dos engenheiros de software, pois eles envolvem responsabilidades mais amplas do que a simples aplicação de habilidades técnicas. Os sistemas de software que eles criam podem ter impactos significativos na sociedade, na economia, na política, no meio ambiente e na vida das pessoas. Por isso, os engenheiros de software devem se comportar de maneira responsável, ética e moral, para serem respeitados como profissionais e contribuírem para o bem comum.
Também vimos que existem códigos de ética e conduta profissional que orientam e regulam a responsabilidade profissional e ética na engenharia de software. Esses códigos estabelecem princípios gerais e específicos que devem ser seguidos pelos engenheiros de software em suas atividades profissionais. Além disso, existem leis e regulamentações que estabelecem as normas legais para o tratamento dos dados pessoais no país.
Finalmente, vimos alguns exemplos práticos da aplicação dos aspectos éticos e sociais na engenharia de software. Esses exemplos ilustram os benefícios ou os malefícios que os sistemas de software podem trazer para a sociedade e para os indivíduos. Esses exemplos também mostram as consequências que os engenheiros de software podem enfrentar por suas decisões e ações.
Esperamos que este artigo tenha sido útil e interessante para você. Esperamos também que ele possa estimular um debate entre os alunos sobre os aspectos éticos e sociais na engenharia de software, que são tão importantes quanto os aspectos técnicos e científicos. Agradecemos a sua atenção e convidamos você a continuar explorando esse tema com mais profundidade e reflexão.
Referências
- Marco Tulio Valente. Engenharia de Software Moderna: Princípios e Práticas para Desenvolvimento de Software com Produtividade, Editora: Independente, 2020.
- R. Chitchyan et al., “Sustainability Design in Requirements Engineering: State of Practice,” 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C), Austin, TX, USA, 2016, pp. 533-542.
- Cadwalladr, C., & Graham-Harrison, E. (2018). Revealed: 50 million Facebook profiles harvested for Cambridge Analytica in major data breach. The Guardian.
- Batya Friedman and Helen Nissenbaum. 1996. Bias in computer systems. ACM Trans. Inf. Syst. 14, 3 (July 1996), 330–347. PDF.
- Gotterbarn, D. (2002). Software Engineering Ethics. In Encyclopedia of Software Engineering, J.J. Marciniak (Ed.).
- Code of Ethics: IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices.
- Don Gotterbarn, Keith Miller, and Simon Rogerson. 1997. Software engineering code of ethics. Commun. ACM 40, 11 (Nov. 1997), 110–118.
- Leveson, N. G., & Turner, C. S. (1993). An investigation of the Therac-25 accidents. IEEE Computer.
- Schneier, B. (2000). Secrets and lies: Digital security in a networked world. John Wiley & Sons.
- Solove, D. J. (2008). Understanding privacy. Harvard University Press.
- Spinello, R. A. (2003). Case studies in information technology ethics. Prentice Hall.
- Brasil. (2018). Lei nº 13.709, de 14 de agosto de 2018. Dispõe sobre a proteção de dados pessoais e altera a Lei nº 12.965, de 23 de abril de 2014 (Marco Civil da Internet). Diário Oficial da União. :
- Cavoukian, A. (2011). Privacy by design: the 7 foundational principles. Information and Privacy Commissioner of Ontario, Canada.
- Viega, J., & McGraw, G. (2002). Building secure software: how to avoid security problems the right way. Addison-Wesley Professional.
- European Union. (2016). Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation). Official Journal of the European Union.
Leave a Comment