“Seja rápido.” Você já ouviu essas palavras? Parece ótimo quando você está construindo um programa simples, como uma calculadora, onde o risco é apenas um pequeno erro de cálculo. Mas será que você quer ser rápido e ignorar todas as validações, como qualidade de código, testes unitários, testes de automação, desempenho e carga?
Nós, engenheiros de software, precisamos garantir qualidade, segurança e privacidade dos dados. O código que entregamos não deve ser apenas bom, mas excelente, sem bugs ao ser implantado em produção. Hoje em dia, ninguém tem paciência para lidar com erros simples. Imagine que você se interessa por um jogo qualquer e decide instalá-lo no seu smartphone. Quando abre o jogo e ele trava, o que você faz? Desinstala, claro! Ninguém vai identificar o problema e tentar consertar; você simplesmente desinstalará o jogo e procurará outro com melhor desempenho.
Quando digo que qualidade, segurança e privacidade estão ligadas, é porque não é possível ter qualidade sem segurança ou segurança sem privacidade. Todas as três coisas estão conectadas.
“Hoje a privacidade de dados, para a maioria das equipes de engenharia, ainda é algo abordado depois que o software é enviado para produção. É um pouco como a segurança de aplicativos de uma década atrás, em que você concluía a validação de segurança após a implementação, por meio de testes de penetração e correção de problemas à medida que eram identificados. “
Para melhorar a segurança, existem processos que devemos adotar para ajudar os desenvolvedores, são eles:
Vamos falar sobre MVP (Mínimo Produto Viável)? Até que você tenha as necessidades mínimas do cliente, você não vai se preocupar com segurança, nem qualidade, nem privacidade. Por isso, até o MVP deveria “nascer” pensando em segurança, privacidade e qualidade.
Estamos todos familiarizados com esta história: você constrói seu primeiro produto rapidamente, então talvez sua documentação não seja perfeita ou seu modelo de dados evolua organicamente. Você encontra o sucesso e começa a crescer, então mais engenheiros se juntam a sua equipe. A hierarquia da equipe é bastante plena e começam a criar banco de dados e tabelas como se não houvesse fim – incrível, somos a essência do ágil!
Aí você começa a pensar em privacidade, se o seu software não for bem desenhado, você pode ter problemas de segurança, onde um cliente pode ver os dados do outro. O problema torna-se maior se os dados sensíveis são mostrados a um cliente que não pertence a ele.
Então você está preocupado com a disponibilidade e o dimensionamento do sistema e começa a dividir as coisas em uma arquitetura orientada à serviços mais elegante: diferentes engenheiros constroem peças à medida que você adiciona funcionalidade para atender à demanda, sem fazer revisões de código, arquitetura bem projetada e o pior acontece. Alguns dos engenheiros sêniores saem da empresa, novos entram, documentação ruim, outra mentalidade para criar código, sem direção, design adequado e o ciclo se repete, e logo você tem mais de 500 micros serviços e centenas de bancos de dados. Se você chegar a esse ponto, a manutenção do software será tão cara e fará você pensar se não é melhor começar um novo do zero ao invés de tentar consertar a enorme bagunça.
O que podemos fazer para evitar tais erros? Pense desde o início em segurança, privacidade e qualidade, tenha uma boa base, arquitetura bem definida, separe os domínios e evite que um domínio interfira no outro.
A privacidade é muito importante em todo o mundo e algumas regulamentações devem ser respeitadas, como a GDPR da Europa, a CCPA da Califórnia e a LGPD do Brasil.
Duvido que você tenha projetado sua arquitetura e modelo de dados para dar suporte a esse nível de granularidade e aplicação de políticas desde o início do SDLC. Eu disse isso porque ouvi muitas vezes para entregar coisas sem pensar em qualidade, segurança ou privacidade, e nossa obrigação como engenheiros de sistema é deixar claro o quanto elas são importantes.
Privacidade
O primeiro passo é garantir que os engenheiros tenham uma forma de “gramática de privacidade” ou uma forma abreviada e de baixo atrito para descrever o que seu código faz e quais tipos de dados ele usa e fazer disso parte de seu processo. Os comentários e a documentação do código são um bom começo, mas uma solução completa de ferramentas pode ser lida tanto por humanos quanto por computador, integrada a fluxos de trabalho manuais e automatizados.
Ao implementar uma determinada funcionalidade em seu projeto com ferramentas integradas, os desenvolvedores podem facilmente descrever o contexto do que seu código está fazendo e em quais tipos de dados ele está atuando.
Respeito os dados dos usuários
Como engenheiros de software, construímos os sistemas dos quais bilhões dependem para suas finanças, segurança, saúde e bem-estar. Nossas ferramentas e processos devem refletir a seriedade de nossa responsabilidade de respeitar os dados dos usuários. Uma abordagem post-hoc à privacidade é trabalhosa e arriscada. É fundamentalmente reativo, incapaz de acompanhar o rápido crescimento dos sistemas que alimentam nosso mundo.
Cuidados da Labsoft
Na Labsoft nos preocupamos com muitas coisas e esses 3 assuntos são tratados com muita seriedade por nossos engenheiros. Eles são treinados periodicamente em todos os níveis e processos: arquitetura, banco de dados, desenvolvedores, testers e infraestrutura. Temos o CI/CD devidamente implementado que verifica os testes unitários, a cobertura do código, a qualidade do código. Se um deles falhar, a equipe recebe uma notificação para corrigi-lo. Além disso, nossa nuvem é bem projetada pensando em segurança e redundância, os bancos de dados dos clientes são separados para evitar que erros de configuração do sistema permitam que um veja dado do outro.
Que tal uma breve demonstração do myLIMS?
Se você quiser saber mais sobre como o myLIMS pode agilizar a operação do laboratório e controle de qualidade a ainda garantir total segurança de dados fale agora com um especialista! De TI para TI.
Autor: Maurício Rosa, CTO da Labsoft
sobre gestão laboratorial, controle de qualidade industrial, saneamento, tendências e tecnologia no seu e-mail.