Browsing Category

Processo de Software

Processo de Software,

Como você toma decisões no seu processo de desenvolvimento de software?

Você já pensou quantas vezes tomou decisões ao longo do processo de desenvolvimento de software? 

Já pensou quantas pessoas tomam decisões em diferentes níveis durante a execução do processo? Gestores de Projeto, decidem para assegurar que o projeto não ultrapasse o escopo, tempo e recursos; Arquitetos de Software decidem para que os requisitos funcionais e não funcionais estejam presentes na arquitetura proposta; Desenvolvedores decidem para que o código desenvolvido materialize os requisitos funcionais e não funcionais e os critérios de qualidade, previamente definidos.

Observe que tomar decisões ao longo do processo é algo natural e ocorre em diferentes níveis do projeto, por pessoas diferentes, causando diferentes impactos. Aí vem a pergunta: Como você toma as suas decisões?

Elas são mais embasadas em informações, na sua experiência ou no seu feeling?

Para exemplificar, vamos utilizar aquela pergunta clássica que todos os clientes fazem:

“Em quanto tempo você entrega a funcionalidade X?”

Para responder, o desenvolvedor ou gestor de projetos pode usar os dados históricos do projeto ou de uma base de conhecimento da empresa como, por exemplo, ponto de função ou ponto de história de usuários de funcionalidades parecidas com o que se quer produzir.

Repare que você precisa de uma base histórica simples, pode ser até uma planilha, para embasar a sua decisão. Dessa forma, você tem uma base para decidir em vez de um simples “achometrô”.

As informações necessárias para a tomada de decisão podem vir de diferentes fontes e devem ser providas pelo seu processo nos pontos chaves. Além das informações técnicas como requisitos e restrições do projeto, ao decidir aspectos relevantes, é fundamental ter à disposição informações como o feedback dos clientes, tipos de bugs mais comuns, tendências de mercado e tecnológicas, satisfação dos colaboradores, entre outras.

Você utiliza em seu processo algum indicador, métrica ou outro item de conhecimento que lhe dá suporte para a tomada de decisão ou usa apenas sua experiência e feeling?

Ou um pouco de cada? 


Paulo Sérgio

Professor do Instituto Federal do Espírito Santo (Ifes), participante do Leds e atualmente doutorando em Ciência da Computação, no Nemo, com foco em Ontologia, Integração de dados e métodos ágies. Além disso, se arrisca na cerveja artesanal e no surfe, é comandado por 4 cachorros.

Fabiano Ruy

Doutor em Ciência da Computação com pesquisa voltada a Engenharia de Software e Modelagem Conceitual. É professor do IFES campus Serra, atuando no Bacharelado em Sistemas de Informação e no Mestrado em Computação Aplicada. Membro do LEDS, com foco em projetos de inovação.

Processo de Software,

O que você considera importante em um processo de software?

No último post, perguntamos sobre a definição do seu processo de software. Então, como você o definiu?

O seu processo contempla todas as atividades de produção? Está atualizado, de acordo com a realidade da organização? É factível, os colaboradores o seguem? Considera dimensões importantes do negócio?

Muitas organizações entendem que o processo de desenvolvimento de software envolve apenas atividades ligadas ao desenvolvimento em si (e.g., Análise, Projeto, Desenvolvimento, Testes, Implantação) e esquecem de outras dimensões que dão suporte ao processo de software e que garantem a qualidade do produto, projeto, o bem-estar e a evolução das pessoas presentes diretamente ou indiretamente no projeto. Exemplos dessas dimensões são as de Gestão de Conhecimento, Gestão da Qualidade, bem como atividades que avaliam se o projeto está alinhado com os objetivos do negócio e até mesmo avaliação e evolução das competências dos membros das equipes de desenvolvimento.

É importante observar que, independentemente da abordagem de desenvolvimento de software (Agile ou Plan-Driven/Document-Centric), é possível aplicar e adaptar essas dimensões buscando melhorar a qualidade do produto, reduzir o retrabalho ou outro benefício particular para a organização. Por exemplo, boas práticas de gestão de conhecimento aplicadas ao desenvolvimento de um produto podem ajudar, no futuro, uma equipe de manutenção na evolução do sistema ou correção de bugs, ou até mesmo ensinar um novo membro da equipe sobre os conceitos e regras do projeto. Um processo de medição da qualidade pode identificar pontos de melhoria nos artefatos do projeto ou uma necessidade de capacitação dos membros da equipe nas tecnologias, métodos e ferramentas adotadas pela organização. Veja que tais práticas estão ligadas a uma cultura de médio a longo prazo da organização e não somente a um projeto ou produto específico.

O desafio da organização é combinar de modo fluido as boas práticas presentes em cada dimensão, de forma a trazer benefícios a todos os envolvidos, sem onerá-los (ninguém quer adotar uma prática que não contribua para o desenvolvimento do projeto ou produto). Claro que essas dimensões podem ser combinadas, adaptadas para a realidade do projeto, produto ou até mesmo da equipe. Afinal, dependendo das características do projeto (e.g., escopo, tempo, regras de contrato e recursos) podemos aplicar, por exemplo, mais atividades de testes automatizados ou de gestão de qualidade de código, por motivos contratuais.

Assim, vale perguntar: Quais dimensões estão presentes no seu processo de software? Quais delas agregam mais valor ao seu produto e à organização? Como você as prioriza em seu processo de software para ter sucesso nos projetos?


Paulo Sérgio

Professor do Instituto Federal do Espírito Santo (Ifes), participante do Leds e atualmente doutorando em Ciência da Computação, no Nemo, com foco em Ontologia, Integração de dados e métodos ágies. Além disso, se arrisca na cerveja artesanal e no surfe, é comandado por 4 cachorros.

Fabiano Ruy

Doutor em Ciência da Computação com pesquisa voltada a Engenharia de Software e Modelagem Conceitual. É professor do IFES campus Serra, atuando no Bacharelado em Sistemas de Informação e no Mestrado em Computação Aplicada. Membro do LEDS, com foco em projetos de inovação.

Processo de Software,

Como você definiu o processo de software para os seus projetos?

Processos de software organizam o conjunto de atividades realizadas em um projeto na produção artefatos que compõem um produto de software. Atualmente, podemos dividir os processos de desenvolvimento de software em duas abordagens: Processos Tradicionais (Plan-Driven ou Document-centric) e MétodosÁgeis.

Os processos de desenvolvimento do tipo Tradicional  (e.g., Cascata, Incremental e RUP) têm como característica resolver problemas que necessitem de requisitos e planejamento mais detalhados antes de iniciar as atividades desenvolvimento. Esses se destacam por terem atividades, papéis e artefatos bem definidos e, assim, são mais fáceis de entender e aplicar. O Cascata, por exemplo, possui atividades bem estabelecidas para levantamento de requisitos, desenvolvimento e testes; no entanto, é pouco flexível para mudanças, o que pode trazer problemas em projetos mais dinâmicos.

Por outro lado, os métodos Ágeis (e.g., Scrum, Less e Safe) têm como foco resolver problemas construindo uma solução que evolua no mesmo tempo em que se aprende sobre o problema. Atualmente, os métodos ágeis vêm ganhando espaço tanto na Industria quanto na Academia por serem mais flexíveis e adaptativos do que os processos tradicionais. Por exemplo, o Scrum permite entregar soluções que atendam às necessidades do cliente em um período mais curto. No entanto, precisa que os envolvidos no projeto (Cliente e Equipe de desenvolvimento) sejam bem capacitados no método, presentes no projeto e auto-organizados. Mas, atualmente, conseguir essas características em uma equipe é um desafio para algumas empresas.

Tendo isso em mente, como você definiu o processo de desenvolvimento em sua empresa? O que você levou em consideração? O problema a ser resolvido? Os perfis técnicos dos seus colaboradores? Os contratos com os clientes? Os textos dos blogs que descrevem o estilo “Google” de fazer alguma coisa?

Saber responder às perguntas acima é um dos primeiros passos para definir o processo de software de sua empresa ou do seu time de desenvolvimento. Não é necessário que o seu processo de software seja 100% Ágil ou 100% Tradicional, afinal isso não é time de futebol, em que é necessário escolher um lado para torcer.

A organização pode definir um processo de software que utilize partes boas das duas abordagens. O que é necessário entender é quais são as boas práticas (Ágeis ou Tradicionais) que a sua equipe consegue aplicar de forma mais natural e segura, que permitam entregar a solução para o cliente de maneira satisfatória, ou seja, atendendo ao que foi solicitado dentro do prazo, orçamento e sem stress.

Logo, vale perguntar novamente:  Como você definiu o processo de software para os seus projetos?

Paulo Sérgio

Professor do Instituto Federal do Espírito Santo (Ifes), participante do Leds e atualmente doutorando em Ciência da Computação, no Nemo, com foco em Ontologia, Integração de dados e métodos ágies. Além disso, se arrisca na cerveja artesanal e no surfe, é comandado por 4 cachorros.

Fabiano Ruy

Doutor em Ciência da Computação com pesquisa voltada a Engenharia de Software e Modelagem Conceitual. É professor do IFES campus Serra, atuando no Bacharelado em Sistemas de Informação e no Mestrado em Computação Aplicada. Membro do LEDS, com foco em projetos de inovação.

Processo de Software,

O que a LGPD impacta nos pequenos negócios

A Lei nº 13.709, também conhecida como Lei Geral de Proteção de Dados Pessoais (LGPD), que entra oficialmente hoje, dia 18/09/2020, altera o Marco Civil da Internet para estabelecer diretrizes importantes e obrigatórias para a coleta, processamento e armazenamento de dados pessoais.

A legislação brasileira é inspirada na General Data Protection Regulation (GDPR), que regula o assunto na União Europeia. Com ela, o Brasil entra no rol dos 120 países com legislação específica para a proteção de dados.

Diferente da GDPR, a LGPD não prevê tratamento diferenciado para pequenas empresas. Por conta disso, as MPE precisam estar atentas, uma vez que as punições para quem descumprir a nova norma podem chegar a até 5% do seu faturamento.

Neste artigo, não iremos explorar as questões legais ou punições, mas no que na prática, altera e impacta na vida das MPE’s.

Mesmo porque, hoje são 03 Leis que se completam:

  1. LAI – Lei de Acesso a Informação
  2. ANPD – Autoridade Nacional de Proteção de Dados
  3. LGPD

Porém devemos estar atentos, porque em nossa Constituição, exige-se um tratamento diferenciado para as MPE, no tocante a aplicação de legislações, que impactem em seu funcionamento.

Sendo assim, entendemos que precisamos estar atentos a alguns princípios do que a lei trata:

  1.  FINALIDADE, ou seja, o tratamento do dado precisa ter propósitos legítimos, específicos e explícitos. Essa finalidade deve ser informada ao titular do dado;
  • NECESSIDADE, ou seja, a limitação do tratamento ao mínimo necessário para a sua finalidade; e a segurança, que consiste na adoção de medidas para proteger os dados de acessos não autorizados e situações acidentais ou ilícitas”,
  • SEGURANÇA , que consiste na adoção de medidas para proteger os dados de acessos não autorizados e situações acidentais ou ilícitas.

Observações Importantes:

       1 – Ressaltar que a LGPD é aplicável ao tratamento de dados on-line e off-line, exceto dados anonimizados, ou seja, aqueles que não são facilmente identificados.

      2 – Também é importante lembrar que a empresa que trata os dados precisa ter o consentimento prévio do titular através de uma manifestação clara, informativa e inequívoca.

     3 – Além do consentimento, o empreendedor deve atentar aos seguintes tópicos:

        a)  Realizar todos os atos necessários para manter a segurança e prevenir quaisquer incidentes com os dados tratados;

        b)  Utilizar os dados somente com a finalidade específica para a qual foram coletados e consentidos;

        c)  Atuar com transparência perante os titulares dos dados;

        d)  Deixar clara a responsabilidade que tem, sempre cumprindo as normas de proteção dos dados pessoais, por meio da prestação de contas.

4 – Além disso, dados sensíveis, como os ligados a origem racial ou étnica, convicção religiosa ou de saúde, por exemplo, precisam de um tratamento especial. “Eles não podem ser misturados com os dados pessoais gerais e nem devem ser armazenados da mesma forma.

      5 – Afeta o cotidiano das empresas, sobre os dados pessoais que o negócio coleta dos clientes.

O que são dados pessoais?

                    Dados pessoais, em resumo, são quaisquer rastros que um indivíduo deixa, e que, juntos, formam informações sobre ele. Eles podem se originar de um histórico de buscas de navegação, de uma compra feita, ou de um registro de consulta médica, por exemplo.

E no cenário de mundo contemporâneo, com boa parte da vida humana concentrada na internet, cada indivíduo forma, como resultado de suas atividades, um denso banco de dados com informações complexas a respeito da sua identidade, personalidade e características. 

O QUE DEVEMOS TER ATENÇÃO:

A LGPD, em uma forma esquemática, descreve dez princípios relativos ao tratamento dos dados, na internet:

  1. Da finalidade: a obtenção dos dados deve ter um fim específico.
  • Da adequação: tais fins deverão estar relacionados com o propósito da empresa.
  • Da necessidade: o mínimo possível dos dados deve ser coletado.
  • Do livre acesso: o usuário deverá ter a possibilidade de acessar os dados que cada empresa tem dele.
  • Da qualidade: os dados devem ser recorrentemente atualizados, com informações recentes.
  • Da transparência: a empresa deve tratar o usuário com clareza.
  • Da segurança: devem ser tomadas as medidas necessárias para a proteção dos dados obtidos.
  • Da prevenção: devem ser utilizados meios para prevenir qualquer eventual vazamento de dados.
  • Da não discriminação: a empresa não pode discriminar os usuários pelos seus dados.
  1. Da responsabilização: a empresa deve se responsabilizar pelo tratamento dos dados.

Observação:

O uso de um simples site, que capta dados do cliente como forma de prospecção, ou de envio de material, ou para contato posterior, já se aplica nestes 10  princípios.   

Então como a LGPD afetará a MPE ?

Em resumo, a LGPD exige que quaisquer empresas que utilizam dados se alinhem com o que ela prevê. No dia a dia, inúmeros pontos que eram relevados deverão ser alvos de cuidado e observação, tais como:

  1. Reformulação de políticas de privacidade e termos de uso.
  • Explicitação ao usuário de que os dados serão armazenados, e que eles possuem um fim devido. 
  • Reestruturação dos métodos usados para a segurança virtual e a segurança dos dados armazenados.
  • Solicitação de consentimento dos usuários para a manutenção dos dados pré-registrados.

Dessa forma, é necessário que a empresa reveja completamente o seu fluxo de dados e a forma como eles são utilizados, para que não haja nenhum impasse judicial.

  • Relacionamento trabalhista: Os cuidados com os dados de sua equipe, dados pessoais, de familiares, a respeito de Vale transporte, Plano de saúde, assim como, a preservação dos dados dos clientes pela sua equipe.

Podemos enumerar outros impactos:

  1. Perda de clientes; pela desconfiança e perda de credibilidade;
  2. Aumento de custos operacionais;
  3. Contratação de um DPO – Encarregado de Dados para sua empresa  
  4. Pagamento de multas
  5. Suspensão de atividades

Finalizando, entendemos que as MPE’s sofrerão um grande impacto no relacionamento com seus clientes, muito maior que seus custos. Pois devido à proximidade e simplicidade de seus processos de atendimento e venda, estes sofrerão abalos e uma perda de entregas.   Mas no Brasil, ser um empreendedor de MPE, é conviver com desafios constantes. Mas também é ser um Forte e destemido brasileiro.

Daniel Arrais – Diretor de eventos da ACT!ON