A documentação do código é um aspecto crucial do desenvolvimento de software. Estes documentos devem apresentar descrições e explicações informativas sobre o código, tornando mais fácil para outros desenvolvedores entenderem, manterem e usarem a base de código. Uma boa documentação é benéfica não apenas para a equipe de desenvolvimento atual, mas também para futuros desenvolvedores, especialmente quando o código precisa ser atualizado ou alterado.
Uma das principais características de um bom código é a capacidade de manutenção do mesmo, que pode ser alcançada por meio de documentações compreensíveis e legíveis. Existem várias maneiras de documentar código, como por exemplo:
Escolher nomes autoexplicativos para variáveis e funções.
Escrever breves comentários dentro do código para ajudar a contextualizar futuros desenvolvedores. Especialmente em trechos de código que apresentem uma maior complexidade.
Criar documentações com imagens, com o intuito de tornar os conceitos apresentados menos abstratos, como por exemplo: diagramas de sequência e relacionamento de entidade; diagramas que sintetizam a arquitetura utilizada.
No contexto do desenvolvimento de aplicações Back-end, escrever documentos de API (Interface de Programação de Aplicativos), descrevendo cada classe, método, argumento e valor de retorno.
No contexto do desenvolvimento de aplicações Front-end, escrever documentações sobre o que é cada componente e sua utilidade.
Elaborar uma estrutura de pastas que facilite a compreensão do propósito do código contido no arquivo correspondente.
Abaixo serão apresentados alguns tipos de documentações que podem agregar na gestão da qualidade dos projetos e garantir que o time que estiver trabalhando nesse projeto no futuro consiga expandir, atualizar e refatorar o código com mais facilidade.
DOCSTRING
Uma “Docstring” em programação é uma string literal especificada no código-fonte que é usada, como um comentário, para documentar um segmento específico de código. Esta documentação explica claramente o que a função faz, seus parâmetros de entrada e seu valor de retorno.
def multiply_numbers(x, y):
"""
This function multiplies two numbers.
Parameters:
x (int): First number of multiplication.
y (int): Second number of multiplication.
Returns:
int: The multiplication of x and y.
"""
return a * b
Essa documentação fornece explicações claras e detalhadas de como o código funciona. Sendo assim, é essencial para que outros desenvolvedores tenham mais facilidade no processo de compreender o código e modificá-lo, caso necessário.
No contexto do Backend, a depender do Framework que se está utilizando, é possível aproveitar a “Docstring” como documentação para o Swagger. O Swagger, também conhecido como OpenAPI, é uma especificação independente de linguagem que tem como finalidade descrever e documentar APIs REST. O Swagger oferece uma plataforma única e conveniente para a documentação, teste e descrição das estruturas de uma API. Documentar APIs é crucial para fornecer informações aos usuários sobre os endpoints disponíveis para utilização. O Swagger simplifica significativamente o processo de documentação, pois ele automaticamente identifica métodos com atributos GET, PUT, POST e DELETE, e gera a documentação correspondente. Além disso, o Swagger mantém essa documentação atualizada de forma automática, facilitando a adaptação às mudanças implementadas na API.
Figura 1- Interface gráfica do Swagger. (Imagem copiada da página)
README
Um arquivo README é um componente essencial de qualquer projeto, pois fornece informações e documentação cruciais para usuários e desenvolvedores. Este documento deve apresentar as seguintes informações:
Introdução: O README deve começar com uma breve introdução que explica do que se trata o projeto e sua finalidade. Esta seção deve fornecer uma visão geral de alto nível do projeto e suas principais características.
Instalação: O README deve apresentar instruções claras sobre como instalar e configurar o projeto. Esta seção deve descrever quaisquer dependências ou pré-requisitos necessários para que o projeto seja executado com êxito. Deve incluir comandos, scripts ou links para guias de instalação mais detalhados.
Documentação: Caso o projeto tenha documentação adicional como Contrato de API, documentação da arquitetura do projeto, documentação das ferramentas utilizadas no desenvolvimento, guias de usuários ou tutoriais, é recomendável incluir links ou referências a eles no arquivo README.
CONTRATO DE API
O contrato de API é um acordo formal entre o provedor e o consumidor de uma API que descreve as expectativas e responsabilidades de cada parte e especifica as regras e requisitos para usar a API. É um documento que descreve como a API funciona e como ela deve ser usada.
Recomenda-se o desenvolvimento do contrato API antes da implementação do código da API em si. Desta forma é possível validar com os desenvolvedores Front-end se o que está planejado no contrato se enquadra no que é esperado e se está estruturado da melhor forma para ser consumida pelo Front-end. Este documento deve apresentar as seguintes informações:
Método HTTP dos endpoints
Descrição do objetivo dos endpoints
Formato e estrutura dos parâmetros aceitos ou requeridos pelos endpoints
Parâmetros da rota da URL
Parâmetros de Consulta
Parâmetros de Cookie
Parâmetros de Cabeçalho
Formato e estrutura da requisição aceita pelos endpoints
Formato e estrutura da resposta que se espera dos endpoints
Observações sobre o funcionamento e características específicas dos endpoints
Figura 2 – Exemplo de Contrato de API.
DOCUMENTAÇÃO DA ARQUITETURA
A documentação da arquitetura de software fornece uma visão de alto nível do design do sistema, facilitando a compreensão da estrutura, do propósito e dos relacionamentos entre os componentes. Esta documentação é um elemento central na criação de um entendimento comum entre todos os membros da equipe de desenvolvimento, aprimorando a comunicação e promovendo uma compreensão mais profunda do design e funcionalidade do sistema.
Ela desempenha um papel crítico em diferentes fases do ciclo de vida do software, auxiliando não apenas no desenvolvimento inicial, mas também na manutenção, refatoração e expansão contínua do sistema. Além disso, a documentação de arquitetura de software se torna uma valiosa ferramenta para os novos membros da equipe, permitindo-lhes entender o sistema de forma rápida e eficaz.
Esta documentação deve incluir alguns elementos-chave, tais como:
Visão geral do sistema e seu propósito: visão geral do sistema, destacando seu propósito e contexto dentro da organização. Isso ajuda a estabelecer o cenário para compreender por que o sistema foi projetado da maneira como é.
Visão de alto nível e interações: visão do sistema destacando como ele interage com outros sistemas ou componentes externos. Isso ajuda a entender o ecossistema no qual o sistema se insere.
Estado atual da arquitetura: descrição do estado atual da arquitetura do sistema, incluindo suas principais funcionalidades e capacidades. O uso de diagramas pode ser particularmente útil para visualizar a estrutura do sistema.
Requisitos não funcionais: descrição do desempenho, escalabilidade, segurança e outros requisitos não funcionais do sistema.
Descrição detalhada da arquitetura: descrição detalhada da arquitetura do sistema, incluindo diagramas e descrições dos componentes e suas interações.
Decisões arquitetônicas: descrição das principais decisões arquitetônicas e as razões por trás delas. Isso inclui restrições e justificativas para a escolha de soluções específicas em detrimento de outras.
Instruções de instalação, configuração e operação: informações práticas sobre como instalar, configurar e operar o sistema.
Conclusão – Maximizando a Compreensão do Código através da Documentação
É fundamental destacar a importância da manutenção contínua da documentação, garantindo que esta reflita sempre o estado atual do código. Documentação desatualizada, incorreta ou imprecisa pode acarretar confusão e problemas significativos durante o desenvolvimento e manutenção do software.
Além de ser uma prática essencial para o projeto e para a equipe envolvida, a atividade de documentação também enriquece o conhecimento do desenvolvedor sobre o código. Para criar uma documentação eficaz, é necessário sintetizar com precisão o que está sendo desenvolvido. Portanto, a documentação adequada exige uma compreensão profunda do código, do projeto como um todo e das interações entre os diversos serviços dentro do software.
Graduada em Engenharia Elétrica pela Universidade Federal de Campina Grande (UFCG), com ênfase em Controle e Automação. Desenvolvedora Python na Aquarela Analytics, com foco na construção de APIs. Na área de Engenharia de Dados trabalha com modelagem de dados, e com a criação e estruturação de ETLs. Entusiasta na área de Machine Learning e Ciência de Dados.
Desenvolvedor Front-end na Aquarela Analytics, técnico de TI cursando Análise e Desenvolvimento de Sistemas pelo Instituto Federal Catarinense (IFC). Entusiasta em tecnologias voltadas para a interação com o usuário final: React, JavaScript e NodeJS.
Um fato importante que aconteceu nos últimos anos foi a fusão das empresas Hortonworks e Cloudera (cloudera.com), que juntas somam um capital de mais de 5.2 bilhões de dólares. Esse movimento gerou impactos diretos no mercado de dados, sendo o principal deles um aumento expressivo do custo do licenciamento dos clusters HDFS.
Dessa forma, as organizações que utilizam clusters Hadoop da distribuição Cloudera / Hortonworks em sua infraestrutura, se veem obrigadas a decidir entre uma das seguintes estratégias de continuidade de seus negócios:
Manutenção Limitada sem Compliance: Arriscar-se com sistemas desatualizados sem cumprir os requisitos de compliance (não recomendado).
Transição para Open Source:
Migração para Ecossistema Open Source: Realizar a migração para uma abordagem totalmente open source baseada no ecossistema Apache Hadoop e outras soluções de código aberto.
Estratégia de Nuvem:
Transição para Arquitetura em Nuvem: Transferir recursos para provedores de nuvem, como AWS, Azure, Oracle, Google Cloud , com consideração dos custos cambiais e riscos de latência.
O objetivo deste artigo é apresentar aos gestores e profissionais de TI como reduzir os custos de licenças em infraestrutura, focando no sistema de arquivos e arquitetura do HDFS. Neste sentido a pergunta chave é:
“ É possível criar ou realizar a migração de um data lake Hadoop Cloudera ou Hortonworks para um ambiente sem custo de licenças? “
A resposta é: sim, é possível, uma vez que a estrutura das aplicações do ecossistema Hadoop são modularizadas e podem ser ajustadas conforme a necessidade do cliente, desde que os requisitos mínimos de infraestrutura sejam atingidos.
Por convenção, na Aquarela Analytics, buscamos realizar um projeto detalhado da arquitetura, visando garantir 100% de aderência às regras de negócio e suporte de hardware às soluções desenvolvidas. Dessa forma é possível acelerar o Retorno do Investimento (ROI) nos projetos de Data Lakes.
A seguir, falaremos sobre os principais desafios e benefícios do cenário de migração de um cluster on-premisebaseado em licenças Cloudera ou Hortonworks para Apache Hadoop, livres dos custos de licenciamento. Custos esses que, quando existentes, podem inviabilizar, em alguns casos, o projeto de dados como um todo.
O stack tecnológico de dados Hadoop é bastante estável e consolidado, amplamente utilizado como parte integral da estratégia de desenvolvimento da cultura de dados ou cultura analítica. Muitos de nossos clientes de grande porte usam este stack em diferentes configurações há bastante tempo. Além de ser bastante estável e consolidada, neste contexto, significa ter uma baixa frequência de atualizações, muitos usuários e uma documentação que seja suficiente para que novas equipes possam trabalhar no projeto.
O Hadoop é uma plataforma construída baseada na linguagem JAVA, o que permite a sua utilização em computadores de diferentes tipos de hardware. Contudo, as operações de Data Lakes são operações de grande porte, o que demanda recursos computacionais com bastante memória, disco rígido e conectividade. Por isso, componentes do ecossistema Hadoop são geralmente “pesados” e isso requer conhecimento amplamente especializado e profissionais com anos de experiência.
É importante notar que as modelagens de arquitetura de data lake open source não precisam obrigatoriamente ficar presas somente aos componentes do Hadoop. Atualmente, está se consolidando o conceito de Data Lakehouse utilizando “Trino“, “Presto“, “Iceberg“, “Delta“, “Spark” e outras ferramentas com comunidades bem ativas e que podem impactar positivamente na qualidade da infraestrutura de dados.
Benefícios de uma arquitetura Hadoop de Data Lake 100% open source
Existem diversos fatores que influenciam a decisão de migrar uma plataforma Data Lake on-premise totalmente open source. Essa migração inclui diversos benefícios, tais como:
Redução de custos vinculados à flutuação do dólar (muito presente em estratégias de operação em nuvem)
Ganho de autonomia em relação aos dados e recursos de dados;
Maior agilidade na resposta (baixa latência) e
Maior segurança estratégica da informação.
Para uma análise mais detalhada desses fatores, elaboramos a tabela a seguir:
Fator de Impacto
Hadoop Data Lake (Open Source)
Hadoop Cloudera (Licenciado)
Custo
– Geralmente, custo mais baixo, pois as ferramentas são gratuitas e não há licenças a serem adquiridas.
– Custos mais altos devido às licenças de software e suporte pago.
Flexibilidade
– Maior flexibilidade para escolher e personalizar as ferramentas que melhor se adequam às necessidades da empresa.
– Restrito às ferramentas oferecidas pela Cloudera, com menos flexibilidade para personalização.
Comunidade e Inovação
– A comunidade open source é grande, ativa e inovadora, o que pode resultar em atualizações frequentes e novos recursos.
– Dependência da Cloudera para atualizações e inovações, que podem não ser tão ágeis quanto as comunidades open source.
Suporte e Manutenção
– Pode depender de recursos internos ou de fornecedores de suporte open source.
– Suporte profissional disponível da Cloudera, o que pode ser vantajoso para empresas que valorizam o suporte técnico profissional e dedicado.
Integração com Ecossistema
– Elevada capacidade de integração com outras ferramentas e sistemas open source.
– Integração simplificada com produtos Cloudera, podendo ser mais difícil integrar com ferramentas externas.
Escalabilidade
– Escalabilidade potencialmente maior, pois pode-se dimensionar as ferramentas de acordo com suas necessidades sem preocupações com licenças adicionais.
– Escalabilidade limitada pelas licenças e custos associados à aquisição de mais capacidade.
Comunidade de Desenvolvedores
– Maior pool de talentos disponíveis para desenvolvimento e manutenção, devido à popularidade das ferramentas open source.
– Talento especializado em produtos Cloudera pode ser mais restrito e caro.
Independência do Fornecedor
– Menos dependência de um único fornecedor, o que pode reduzir riscos a longo prazo.
– Dependência contínua da Cloudera, o que pode aumentar os riscos de interrupção dos serviços se a relação com o fornecedor for interrompida.
Segurança
– Possibilidade de auditar e personalizar as configurações de segurança de acordo com as necessidades da empresa.
– Cloudera oferece recursos de segurança, mas a customização pode ser limitada.
Desafios da migração
A migração de sistemas e dados, sejam eles transacionais e/ou analíticos, é um desafio que pode gerar grande impacto na organização uma vez que não tenha sido bem definido, projetado e executado. Diversos elementos devem ser considerados no processo de migração, como: paralelismo, latência, segurança, velocidade de comunicação, curva de aprendizagem de novas tecnologias, dentre outros.
Apesar de todos os componentes do ecossistema Hadoop estarem disponíveis para uso, isso não significa que serão de fácil instalação e customização. No caso da migração de um ecossistema de Data Lake licenciado Cloudera já em produção para uma solução totalmente open source com componentes do ecossistema Hadoop, o desafio e a complexidade podem ser mitigados dependendo do nível de maturidade analítica, de processo e de infraestrutura da empresa.
Abaixo estão alguns dos desafios e dificuldades que consideramos importantes a serem considerados antes e durante o processo de migração.
Componentes chave
A Cloudera é conhecida por seus diversos componentes proprietários e pelo seu envolvimento na contribuição para a comunidade open source a nível mundial. No entanto, um dos maiores desafios enfrentados ao considerar uma migração é a substituição doCloudera Manager, que atua como um administrador de cluster e substitui o Ambari.
Fazer uma análise detalhada de uso dos componentes do cluster Cloudera para compreender como e pelo o que podem ser trocados. Nesses casos, versões de distribuições Cloudera / Hortonworks podem também ser um desafio, principalmente para planejar a migração de aplicações e usuários para a nova infra estrutura.
Integração de Dados e Ferramentas
A Cloudera fornece um ecossistema integrado com ferramentas que funcionam bem juntas. Migrar para uma solução open source pode exigir uma reestruturação significativa para integrar várias ferramentas de diferentes projetos e comunidades open source. A interoperabilidade pode ser um problema, porém pode ser contornada com equipes especializadas de integração.
Requalificação da Equipe
A equipe que está familiarizada com a tecnologia da Cloudera pode precisar adquirir novas habilidades e conhecimentos para lidar com ferramentas e tecnologias open source. Isso pode exigir treinamento extensivo e tempo para a equipe se adaptar.
Perda de Suporte Técnico Específico
A Cloudera oferece suporte técnico dedicado aos seus clientes. Ao migrar para uma solução open source, a empresa pode perder esse suporte específico e precisará confiar em recursos de suporte da comunidade ou contratar suporte externo.
Customização e Configuração
A flexibilidade das soluções open source pode ser uma vantagem, mas também pode ser desafiadora. A empresa precisará personalizar e configurar as ferramentas para atender às suas necessidades específicas, o que pode ser demorado e complexo.
Segurança e Governança
A Cloudera fornece recursos de segurança e governança integrados. Ao migrar para uma solução open source, a empresa precisa planejar e implementar esses recursos por conta própria.
Nós recomendamos Apache Ranger, que integra perfeitamente com o Active Directory e permite uma boa gestão de segurança e governança dos dados. O sucesso dessa implementação vai depender do nível de envolvimento da empresa.
Desafios de Escala
A escala de um Data Lake pode ser um desafio significativo. Ao migrar para uma solução open source, a empresa deve garantir que a nova arquitetura possa lidar com o volume crescente de dados de maneira eficaz.
Conclusões e Recomendações – Migração de Ambiente Data Lake Hadoop Cloudera para Hadoop Open Source: Desafios e Benefícios
Embora a Cloudera ofereça um ecossistema robusto, se bem planejado, é viável realizar uma transição completa para uma abordagem de código aberto, optando por ferramentas alternativas que atendam às necessidades específicas da sua empresa. Essa mudança demandará um planejamento detalhado e minucioso, porém proporcionará maior flexibilidade e controle sobre o seu ambiente de Data Lake.
A estratégia que sugerimos é que seja realizada a migração em paralelo. Ou seja, mantendo o sistema de produção em ambiente Cloudera, enquanto um Data Lakehouse é preparado. Isso possibilitaria uma sinergia de economia de custos e modernização das infraestruturas, mitiga impactos na produção e garante uma transição suave entre tecnologias.
O processo pode ser custoso em termos de tempo e recursos financeiros, normalmente ultrapassando seis meses. É essencial alinhar os processos e funções dependentes do Data Lake, pois isso pode afetar os requisitos não funcionais do sistema, como disponibilidade, usabilidade, segurança, compatibilidade e portabilidade, entre outros.
Tanto manter o ambiente Cloudera/Hortonworks, quanto iniciar um processo de migração para tecnologias Open Source terá seus custos. De um lado, o pagamento das licenças e o investimento recorrente em suporte dedicado, de outro os investimentos na migração de ambiente e dados. O que deve ser considerado como fator primordial de decisão é a estratégia de modernização a médio e longo prazo da organização. Certamente, a migração para sistemas Open Source será uma boa escolha para redução de custos no longo prazo.
Portanto, é fundamental compreender os diferentes cenários e as opções de ferramentas disponíveis para cada etapa do processo de integração de dados, escolhendo aquelas que melhor se adequam às necessidades específicas do seu projeto.
Evitar ficar preso a padrões específicos da indústria, escolher ferramentas com boa adesão da comunidade, considerar a possibilidade de interconexão entre ambientes on-premise e na nuvem, e priorizar a federalização da segurança são aspectos a serem considerados.
Ao projetar a nova arquitetura, é necessário envolver técnicos de migração/instalação, equipes de TI e gestão para garantir a conformidade com todos os requisitos e a utilização eficaz do novo cluster pelos usuários finais, além de possuir um período de “hypercare” de três a seis meses para garantir a identificação e correção de quaisquer erros ou comportamentos indesejados, bem como para realizar treinamentos necessários.Em resumo, a migração de uma solução de Data Lake Cloudera licenciada para uma abordagem totalmente open source pode oferecer benefícios, mas também envolve desafios significativos. É fundamental que a empresa avalie cuidadosamente suas necessidades, recursos e capacidades antes de prosseguir com essa transição, e esteja preparada para enfrentar os obstáculos ao longo do caminho. A Aquarela Analytics está à disposição para auxiliar nessa transição e garantir que atenda às necessidades específicas de sua indústria 4.0 de dados.
Fundador e Diretor Comercial da Aquarela, Mestre em Business Information Technology com especialização em logística – Universiteit Twente – Holanda. Escritor e palestrante na área de Ciência e Governança de Dados para indústria e serviços 4.0.
Ph.D. em Ciência da Computação pela Sapienza Università di Roma (Itália). Doutor em Engenharia e Gestão do Conhecimento pela UFSC. Mestre em Engenharia Elétrica – ênfase em Inteligência Artificial. Especialista em Redes de Computadores e Aplicações para Web, Especialista em Metodologias e Gestão para EaD, Especialista em Docência no Ensino Superior e Bacharel em informática.
Possui experiência acadêmica como Professor, Coordenador, Palestrante e é Avaliador ad hoc do Ministério da Educação (INEP) bem como da Secretaria de Educação Profissional e Tecnológica (MEC) e do Conselho Estadual de Educação (SC).
Nas suas atividades profissionais, atua com de projetos nas áreas de: Ciência de Dados, Inteligência de Negócios, Posicionamento Estratégico, Empreendedorismo Digital e Inovação. Atua como Consultor na área de Projetos para Inovação e Soluções Computacionais Inteligentes utilizando Data Science e Inteligência Artificial.
Atualmente, presenciamos uma evolução da tecnologia onde é natural a presença de softwares em quaisquer departamentos e/ou negócios que rodeiam nossas vidas, como: comércio, indústria, mercadinhos de bairro, entre outros. Com isso, a garantia de funcionamento, segurança e estabilidade das soluções tecnológicas se tornou um pilar indeclinável para os processos de desenvolvimento de softwares.
A gestão da qualidade de software implica em uma abordagem multifacetada, abrangendo a análise, melhoria e validação da qualidade do software, tanto durante o seu desenvolvimento quanto após a sua entrega, durante os períodos de manutenção. Trata-se de uma busca incessante ao longo de todas as fases de desenvolvimento, com o objetivo de identificar qualquer ação que possa impactar negativamente o projeto, prejudicando sua capacidade de atender aos requisitos mínimos estabelecidos ou até mesmo resultando em insatisfação por parte dos usuários.
Nesse texto, dissertaremos sobre os enredos da gestão da qualidade de software através de práticas, culturas e formas de atingir um software de qualidade, seguro, moderno e com alto desempenho.
O que é Gestão da Qualidade de Software?
A gestão da qualidade de software é um conjunto de métodos voltados para implantação de processos e práticas visando garantir a qualidade do software a ser desenvolvido. Abrange desde a construção de requisitos até a entrega do produto final através de boas práticas de desenvolvimento, documentação, testes e manutenção de qualidade. A gestão de qualidade é decisiva e determinante para o desenvolvimento de software estável, seguro, usável e eficiente.
O objetivo principal desses processos de gestão de qualidade é a satisfação máxima do cliente em relação ao produto que foi oferecido, garantindo que suas expectativas sejam atendidas. Esse objetivo pode ser atingido com comunicação clara e efetiva entre o time que está responsável pelo software e o cliente interessado, além da compreensão total dos requisitos do sistema.
É essencial que a análise de qualidade do software se faça presente em todas as etapas, até mesmo nas mais enraizadas, do desenvolvimento do produto. Isso faz com que não seja possível o surgimento de falhas durante as etapas e processos de criação.
O desenvolvimento de uma cultura de qualidade contínua é essencial no processo de estabelecer uma gestão de qualidade eficiente e eficaz. A responsabilidade de manter a qualidade se torna compartilhada entre todos os envolvidos. Isso forma uma jornada contínua, que envolve análises, avaliações, métricas e feedbacks, permitindo que todos contribuam para a entrega de qualidade.
Quais são os benefícios da Gestão da Qualidade de Software?
Com os avanços tecnológicos nos últimos anos, as empresas de tecnologia se mantém em uma corrida na busca por sair na frente. Sendo assim, a gestão de qualidade vem sendo um pilar para manter as empresas nessa corrida de forma estável e, também, como forma de se sobressair diante de empresas que se preocupam menos com esses processos.
Dentre os benefícios da gestão da qualidade de software estão principalmente a entrega de alta qualidade e alta satisfação dos clientes diante de um produto estável, confiável e que atenda suas expectativas.
Além disso, a manutenção e correção preventiva de riscos ou defeitos torna o controle de custos reduzido buscando um processo mais controlado, evitando retrabalhos e custos operacionais altíssimos, atingindo um software com qualidade e melhor aproveitamento de recursos. Ademais, a garantia de que não haverá falhas ou riscos consideráveis de defeitos no produto entregue ao cliente faz com que a reputação da organização seja elevada e mantenha a credibilidade passada no início do processo de comercialização.
Para mais, os processos de gestão de qualidade ajudam a manter eficiência durante o processo de desenvolvimento e reduzem o desperdício de tempo ou recursos. Com isso, os cronogramas se tornam mais preditivos, evitando surpresas ou atrasos durante as entregas.
Outro ponto importante é assegurar que o processo de desenvolvimento esteja em conformidade com as regulamentações das normas que abrangem o contexto de desenvolvimento. Nesse sentido, os métodos de gestão de qualidade oferecem um suporte significativo e garantem a conformidade com os requisitos de negócio.
Medindo a qualidade
Com base na ‘Árvore de Características de Qualidade de Software‘, desenvolvida por Boehm, Brown e Lipow em 1976, é possível medir a qualidade adaptando seus conceitos à evolução tecnológica recente. Isso envolve a definição de diversos níveis de qualidade, seguindo a estrutura de atributos de alto nível, subcaracterísticas intermediárias e sub características específicas:
Operação
Correção
Garantia de que não existam bugs e erros.
Confiabilidade
Confiável e sem riscos/falhas.
Eficiência
Aproveitamento de recursos para um software rápido sem lentidão.
Integridade
Garantia de que os dados não sejam expostos.
Revisibilidade e Adaptabilidade
Manutenibilidade
Facilidade em manter, modificar e aprimorar.
Flexibilidade
Facilidade em criar, estender ou modificar recursos já existentes.
Testabilidade
Garantir a ausência de falhas ou quebras no software por meio de testes eficazes.
Portabilidade
Possibilidade de mover ou executar o software em diferentes ambientes e dispositivos.
Reusabilidade
Elementos do software construídos visando a reutilização em diferentes partes ou contextos.
Usabilidade
Inteligibilidade
Facilidade de entendimento do software e suas especificidades.
Apreensibilidade
Aprendizado rápido do usuário.
Atratividade
Construção de uma interface atrativa e fácil de usar para o usuário.
Integrabilidade
Capacidade de Teste
Construção eficiente e eficaz de teste.
Capacidade de Revisão
Capacidade de implementar práticas de revisão de código e de assegurar que o código seja compreensível por terceiros.
Algumas práticas comuns na Gestão da Qualidade de Software
O ponto inicial para traçar o caminho de desenvolvimento com qualidade é a construção de processos claros, documentações sobre código, tecnologias e arquitetura que irá ser utilizada, além de padronizações para cada entrega, versão e etapas de desenvolvimento.
Outro ponto essencial a ser considerado é a utilização do controle de versão para gerenciar as mudanças e implementações durante o desenvolvimento, assegurando assim a qualidade e aprovação de novas funcionalidades e versões. Além disso, o controle de versão possibilita o rastreamento das alterações e garante a capacidade de retroceder em situações críticas.
Utilização de metodologias ágeis para a implementação de planejamentos e retrospectivas pensando em identificar problemas, melhorias e medidas a serem tomadas para continuar traçando um caminho de qualidade. Além disso, a metodologia PDCA (Plan-Do-Check-Act) é uma potencializadora no processo de gerir a qualidade, pensando em planejamento, implementação de qualidade, análise de riscos e ajustes nas ações que devem ser tomadas durante as etapas para garantir as métricas de medição.
Além disso, boas práticas de desenvolvimento, como a criação de documentação de alto nível, a implementação de testes em diversos níveis para garantir a estabilidade e reduzir falhas, e a realização de revisões de código (code review) entre os membros da equipe de desenvolvimento, são cruciais e de extrema importância no percurso em direção a uma gestão de qualidade eficaz.
Quais são os principais desafios na Gestão da Qualidade de Software?
Os principais desafios na busca pela eficácia e efetividade na implementação da gestão de qualidade no desenvolvimento de software residem nas mudanças contínuas. Essas mudanças podem incluir variações de contexto, solicitações ou alterações constantes por parte dos clientes, bem como a rotatividade de membros na equipe de desenvolvimento, que pode afetar a busca pela qualidade, prejudicando a estabilidade dos processos e das equipes.
Um desafio constante é assegurar que a equipe siga um percurso de cultura de qualidade contínua, de modo que todos os membros estejam dedicados à qualidade das entregas e das etapas de desenvolvimento. Isso não só envolve o engajamento da equipe, mas também a garantia de que os processos de desenvolvimento da empresa estejam em conformidade. Isso torna o ambiente mais ágil e estável para a criação de novos produtos, atendendo às expectativas de qualidade tanto internamente quanto externamente.
Além disso, a complexidade do produto a ser desenvolvido pode representar um desafio crítico para a gestão de qualidade, pois a complexidade pode prolongar o ciclo de desenvolvimento e aumentar a probabilidade de erros. É essencial, portanto, criar testes robustos e eficazes para os componentes desenvolvidos.
Por fim, na corrida para entregar resultados, o prazo de entrega e a busca pela qualidade podem ir de encontro e se torna difícil encontrar um ponto de equilíbrio entre cumprir prazos e garantir qualidade.
Conclusão – Excelência na Gestão da Qualidade de Software: potencializando satisfação na entrega e mitigando falhas
Em suma, os processos de gestão de qualidade são estratégias cruciais para assegurar que o software produzido esteja em conformidade com os mais altos padrões, promovendo a competitividade no mercado e garantindo estabilidade em todas as etapas de desenvolvimento.
Essa abordagem se alinha com a busca constante pela melhoria, fomenta uma cultura de qualidade entre todos os membros da equipe e enfatiza a importância da análise e validação em todas as fases do ciclo de vida do software.
Desenvolvedor Front-end na Aquarela Analytics, técnico de TI cursando Análise e Desenvolvimento de Sistemas pelo Instituto Federal Catarinense (IFC). Entusiasta em tecnologias voltadas para a interação com o usuário final: React, JavaScript e NodeJS.
Graduada em Engenharia Elétrica pela Universidade Federal de Campina Grande (UFCG), com ênfase em Controle e Automação. Desenvolvedora Python na Aquarela Analytics, com foco na construção de APIs. Na área de Engenharia de Dados trabalha com modelagem de dados, e com a criação e estruturação de ETLs. Entusiasta na área de Machine Learning e Ciência de Dados.
A computação em nuvem, no espaço profundo, é atualmente sinônimo de aumento de produtividade e geração de receitas. À medida que ela revolucionou, a prestação de serviços ajudou as organizações a se prepararem para a era da Internet, tentando sempre maximizar os resultados.
O principal destaque dessa tecnologia é o controle financeiro que ela possibilita na gestão interna, pois a informática, hoje, é uma necessidade de todo negócio e o objetivo é fornecer mais poder computacional para atender às demandas do dia a dia. É possível visualizar claramente o seu investimento e obter o máximo retorno associado. Por esta razão, serviços como software baseado em nuvem (SaaS) e infraestrutura (IaaS) são tão importantes, com a maioria das empresas a utilizá-los em grande escala.
O que é Computação em Nuvem?
Antes de nos determos nas especificidades de como a computação no espaço nos afetará no futuro, é vital compreender a ideia que lhe está subjacente. Em termos simples, a computação em nuvem refere-se ao acesso a recursos computacionais através da Internet, tais como armazenamento, servidores, redes e aplicações.
Em vez de depender apenas de hardware e software regionais, a nuvem permite que estes recursos sejam flexíveis e expansíveis em resposta à procura.
A Evolução dos Serviços em Nuvem
A computação no espaço avançou significativamente desde seus primeiros dias. Começou com serviços básicos de armazenamento e processamento antes de evoluir rapidamente para algo muito mais abrangente.
Atualmente, temos três modelos principais de serviços em nuvem: IaaS (Infraestrutura como Serviço), PaaS (Plataforma como Serviço) e Software como Serviço (SaaS).
IaaS (Infraestrutura como Serviço)
Nessa abordagem, os provedores de serviços em nuvem fornecem infraestrutura de TI, como servidores e redes virtuais, permitindo que as empresas construam seus próprios ambientes de computação sem ter que investir em hardware físico.
PaaS (Plataforma como Serviço)
Aqui, os provedores oferecem uma plataforma abrangente que inclui sistemas operacionais, bancos de dados e ferramentas de desenvolvimento. Isso simplifica a criação, implantação e gerenciamento de aplicativos.
SaaS (Software como Serviço)
No mais alto nível de abstração, os usuários têm acesso direto a aplicativos inteiros por meio da nuvem. A instalação ou manutenção do programa não é necessária porque tudo é feito remotamente.
Impacto no mundo atual
A transição para a computação no escuro está a ter uma influência significativa em muitas áreas das nossas vidas:
1. Negócios e Economia
Empresas de todos os tamanhos estão migrando para a nuvem para reduzir custos, aumentar a flexibilidade e melhorar a eficiência. A nuvem permite que empreendedores tenham acesso a recursos que de outra forma seriam financeiramente inviáveis. As grandes corporações conseguem expandir os seus serviços globalmente sem investir em infraestrutura física.
2. Tecnologia e Inovação
Novas formas de computação estão acelerando a inovação, permitindo que as pessoas desenvolvedoras testem e coloquem novos conceitos em prática mais rapidamente. Tecnologias emergentes como inteligência artificial, análise de dados em larga escala e Internet das Coisas (IoT) são incentivadas pela flexibilidade da nuvem.
3. Colaboração e Comunicação
As ferramentas baseadas nas novas tecnologias estão a mudar como comunicamos e trabalhamos em conjunto. A computação em nuvem permite um trabalho em equipe perfeito entre equipes dispersas globalmente, possibilitando tudo, desde armazenamento de documentos até videoconferências.
Conclusão – Rumor de um futuro no futuro
Parece óbvio que, à medida que avançamos, a informatização na nuvem está destinada a desempenhar um papel cada vez mais importante nas nossas vidas. O estágio futuro do desenvolvimento tecnológico está sendo moldado pela infraestrutura escalável, adaptabilidade e acessibilidade da nuvem. A migração para as profundezas é mais do que apenas uma questão de conveniência; representa uma mudança fundamental na forma como vemos a tecnologia. Portanto, a mensagem é clara: o futuro está na cloud, seja você uma organização, educador, profissional de TI ou um consumidor. À medida que a tecnologia avança, a cloud continuará a ser a base sobre a qual construímos os nossos objetivos, projetos e conquistas, criando um futuro inovador e digitalmente conectado.
Olá, eu sou Ederley Carvalho, um DevSecOps com uma paixão inabalável por unir tecnologia e segurança. Com mais de uma década de experiência em TI, formação em análise de desenvolvimento de sistemas e habilidades em clouds minha jornada me levou das renomadas empresas General Electric e Dell. Sou um entusiasta por natureza, mergulhando no universo DevOps para criar soluções inovadoras através da colaboração entre equipes. Minha missão é promover a segurança em cada etapa do ciclo de vida do desenvolvimento, impulsionando a inovação e a proteção digital.
A previsão de demanda desempenha um papel fundamental no processo de tomada de decisão em uma organização, independentemente do setor em que se atua. Ela refere-se à estimativa antecipada da quantidade de produtos ou serviços que os clientes irão necessitar em determinado período de tempo. Bora ver mais sobre o tema?
Neste artigo você lerá sobre:
Demonstrações em diferentes cenários
Diferentes abordagens
Perguntas e respostas
Como basear conteúdo na riqueza criativa dos autores.
O que é previsão de demanda?
A previsão de demanda é uma forma de prever o que acontecerá no futuro e como isso tudo impacta diretamente na área produtiva da empresa.
O objetivo é entender qual será a demanda da empresa no futuro para que os gestores estejam aptos a tomarem decisões precisas sobre precificação, potencial de mercado e possibilidades de expansão.
Grandes organizações já estabelecidas utilizam projeção de demanda para avaliar a viabilidade de entrar em um novo mercado.
É uma metodologia fundamental para a gestão dos estoques, dado que, sem ela, as empresas correm o risco de ter excessos ou desperdícios, o que certamente afetará os resultados financeiros e organizacionais.
A previsão de demanda visa:
Planejamento de orçamento da produção;
Organização das produções;
Planejar a necessidade de mão de obra adicional;
Orçamento de matéria-prima de maneira acurada;
Fazer previsões financeiras importantes;
Melhorias no Planejamento e atividades;
Evitar subprodução ou superprodução;
Formular estratégias de precificação.
Na hora de precificar os produtos, é importante saber que isso pode afetar diretamente na quantidade de vendas e na inclusão do produto no mercado.
Qual a sua importância para a tomada de decisão ?
O planejamento operacional passa a ser mais eficiente, pois os gestores podem trabalhar com objetivos mais claros e buscarem resultados mais específicos, facilitando a rotina de trabalho e prazos.
No planejamento tático, os gerentes podem ter uma visão mais ampla do negócio e criar ações táticas de médio prazo específicas para diferentes unidades.
O planejamento de estratégia também se beneficia, pois a diretoria pode utilizar a previsão de demanda para avaliar não somente a empresa, mas o mercado como um todo, o que facilita a geração de insights e dá visibilidade para eventuais oportunidades.
Tipos de previsão de demanda
Existem dois tipos, ou duas abordagens, possíveis para fazer a previsão de demanda: o método qualitativo e o quantitativo.
Métodos qualitativos
São baseados em informações subjetivas e NÃO em dados numéricos. São mais apropriados quando há pouco ou nenhum dado histórico disponível, ou quando ocorrem mudanças no ambiente de mercado que não podem ser facilmente modeladas por métodos quantitativos.
Métodos quantitativos
Os métodos quantitativos de previsão de demanda SÃO técnicas baseadas em dados numéricos e estatística para fazer previsões sobre a demanda futura. Esses métodos são especialmente úteis quando se dispõe de um histórico de dados significativos e quando se deseja uma previsão objetiva e baseada em números.
Quais as vantagens em usá-las
Tanto a metodologia qualitativa quanto a quantitativa têm suas vantagens e desvantagens. Ou seja, cada uma analisa aspectos diferentes do mercado.
Por isso, o ideal é que você não escolha apenas uma delas, mas que utilize as duas de modo complementar.
Diante disso, a melhor estratégia é utilizar as duas ao mesmo tempo. Assim, o que não puder ser observado por um método, o outro será capaz de perceber.
Como fazer uma previsão de demanda?
Realizar a previsão de demanda de uma organização é uma ação que perpassa diversos elementos influenciadores situacionais. Ou seja, dependerão, em grande parte do momento atual, político e econômico, bem como das particularidades do setor e de sua forma de como observar o mercado enquanto empresa.
Ainda assim, seguindo a sequência de passos sugerida abaixo, facilitará a criação de uma estratégia de previsão de demanda. São eles:
1. Defina os objetivos do negócio
O primeiro passo para fazer uma previsão de demandas eficiente é definir os objetivos do negócio e, principalmente, do estudo que será feito.
No caso da estimativa de demanda, o objetivo tem a ver com o prazo (curto, médio ou longo) e também com o objeto de estudo (o que a empresa vende).
2. Determine a duração da demanda
Com base nos objetivos estabelecidos, é preciso definir a duração da demanda a ser prevista.
Por exemplo: você quer determinar qual será a demanda nos próximos seis meses? No próximo ano? Ou somente durante o período de Natal ou outras datas comemorativas?
3. Estabeleça qual método será usado
Os profissionais responsáveis por fazer a previsão de demanda devem, em seguida, escolher qual será a metodologia ideal para fazer as projeções.
Como vimos, existem metodologias qualitativas e quantitativas. O ideal é que o profissional escolha um método misto, pois ambas, apesar de muito úteis, possuem suas limitações.
4. Comece pela fase de coleta de dados
Uma vez que você defina quais serão as principais abordagens e metodologias a serem utilizadas, o próximo passo é iniciar a coleta de dados.
Deve-se fazer essa coleta com base na realidade do seu negócio, como quais as perspectivas para o futuro, entre outros pontos.
5. Analise os resultados obtidos
Fazer análises dos históricos de venda, coleta de dados relevantes com informações do mercado Isso vai te ajudar muito na tomada de decisão.
Quem é o responsável por fazer essa projeção?
O profissional responsável por fazer a previsão de demanda, especialmente nas grandes companhias, são os profissionais das áreas de produção, vendas, marketing e finanças.
É um processo bem complexo que requer conhecimento especializado em análise de dados e estatística, por isso precisa de uma equipe altamente qualificada para conduzir esse processo e ter grandes sucesso.
As análises de dados podem ocorrer em diversas proporções, passando das análises básicas em planilhas eletrônicas, como Excel, evoluindo para análises mais complexas utilizando Sistemas de Apoio à Decisão (SAD), como ferramentas de Business Intelligence (BI), como o PowerBI, Tableau ou Qlik, evoluindo ainda para modelos mais complexos que não somente observam o passado e o presente da organização, mas fazem projeções futuras como ferramentas de Advanced Analytics.
Convencionalmente, para os Cenários 1 e 2 (planilhas eletrônicas e ferramentas de BI), profissionais de distintas formações e áreas, porém com capacitação para tais ferramentas, conseguem realizar tais atividades de análise e comparação de dados.
Já para o Cenário 3 (Advanced Analytics), frequentemente os profissionais especialistas e com formação na área são fortemente recomendados, como Cientistas e Engenheiros de Dados.
Conclusão – Impactos da Previsão de Demanda no Processo de Tomada de Decisão
A previsão da demanda é um processo importante que pode ajudar as empresas a tomarem melhores decisões com seu estoque, produção e, por conseguinte, sobre a sua receita. Diversos são os métodos possíveis para realizar a previsão de demanda organizacional e que, por sua vez, levam em consideração uma série de fatores.
Neste artigo abordamos os modelos quantitativos e qualitativos, bem como uma série de passos que podem auxiliar você, gestor, na definição de um planejamento de previsão de demanda mais acurado.
Sugerimos ainda que o modelo misto seja utilizado, ou seja, além das variáveis quantitativas, possam se levar em consideração também as variáveis qualitativas. A mescla desses dois modelos garantirá ao gestor uma tomada de decisão mais eficiente e com visão ampliada sobre o futuro da organização.
Abordamos aqui a necessidade de se compreender qual ferramenta e qual profissional podem ser necessários em cada tipo de cenário ou estágio organizacional. Se a sua organização pretende conhecer mais e aplicar ferramentas de Advanced Analytics na sua operação, principalmente no que tange à previsão de demanda, entre em contato com o nosso time comercial.
Busque ouvir as demandas de sua organização e, em especial, as necessidades de seu cliente e mercado para poder tomar suas decisões. As melhores decisões passam por uma rica análise de dados, projeções e um olhar atento às pessoas envolvidas no processo.
O tripé pessoas, tecnologia e processos é a base pela qual nós da Aquarela Analytics conduzimos nossos projetos.
Te convido a colocar em prática esses passos sugeridos acima e depois nos contar como foi a sua experiência.
Mãe do Benício e do Miguel, Poduct Owner na Aquarela Analytics, CSPO®, Certifield Lean Inception Facilitador, Product Backlog Building (PBB), Digital Product Leadership – Tera, Scrum Master, Cursando Processos Gerenciais na Unifran.
Projetos e produtos de design tradicionalmente priorizam o usuário, colocando-o no centro das tomadas de decisão. Dessa maneira, toda a aplicação é pensada e desenvolvida para ser intuitiva, inclusiva e dedicada à resolução de problemas e à redução do esforço por parte dos usuários.
Desenvolvedores e designers por décadas estudaram metodologias mais assertivas a fim de explorar o entendimento de comportamentos, muitas vezes inconscientes, dos usuários. Entre estas metodologias, surge a de Design Centrado no Usuário (DCU). Nesse artigo será apresentada a relação entre o DCU e soluções com Inteligência Artificial (IA).
Processos de Design aplicado em soluções com Inteligência Artificial
Recentemente, muito tem se debatido sobre o processo de Experiência do Usuário nas atividades do profissional de Design de Experiência (User Experience – UX) no desenvolvimento de produtos de software convencionais. Para estes processos, o profissional de UX faz uso de uma gama de ferramentas e artefatos disponíveis no mercado, bem como metodologias difundidas, como o próprio Design Thinking.
Porém, quando se trata de projetos orientados a dados, ou com o uso de Inteligência Artificial, novas características são adicionadas ao processo que, por sua vez, muitas vezes diverge do trabalho do profissional de UX para soluções computacionais tradicionais. Por isso, é necessário que o Designer adeque processos e metodologias e que trabalhe em comunicação com cientistas de dados.
Discovery
A etapa de Discovery consiste no aprendizado e descoberta para que a concepção do produto ou projeto esteja alinhada ao mercado e cliente. Durante o momento de aprendizado, além de pesquisas e estudos, é comum a realização de entrevistas com usuários, técnicos em áreas relacionadas e clientes, a fim de compreender a realidade do problema e como ele afeta cada um.
Em seguida, na fase de descoberta, iniciam-se estudos voltados para o mercado, definição do escopo e testes de soluções. A utilização da metodologia Design Thinking expande as possibilidades de resolução, além de otimizar e garantir que nenhuma etapa seja esquecida.
Design Thinking
O Design Thinking é uma metodologia que busca solucionar problemas de forma coletiva. Tim Brown, em seu livro Design Thinking – Uma metodologia poderosa para decretar o fim das velhas ideias [2], explica sobre o “terceiro caminho” entre o analítico e racional, e o intuitivo e a inspiração. Este caminho é descrito como uma solução na qual líderes e profissionais utilizam ferramentas durante os processos de Inspiração, Ideação e Implementação de uma forma não linear, ou seja, o processo pode se repetir e corrigir enquanto estiver em desenvolvimento.
“(…) Não se trata de uma proposta apenas centrada no ser humano; ela é profundamente humana pela própria natureza”.
Isto significa que, ainda que o foco seja no problema e não conscientemente no ser humano, apenas o fato de que os processos são feitos por mãos humanas, torna-os protagonistas.
A utilização do Design Thinking nos processos de Discovery e prototipação resultam em maior qualidade de serviço e probabilidade de assertividade. Em uma das várias abordagens do Design Thinking, quatro etapas são consideradas: imersão, reflexão, ideação e prototipação.
Além disso, é apontado também a necessidade de times multidisciplinares para que a resolução do problema não seja direcionada para uma área específica e sim busque atender as necessidades reais de usuários e clientes.
Design Centrado no Usuário
Em seu livro Design Centrado no Usuário – Um guia para o desenvolvimento de aplicativos amigáveis [1], Travis Lowdermilk definiu design centrado no usuário como uma metodologia utilizada por desenvolvedores e designers para garantir que os produtos criados permaneçam super focados no usuário e suas necessidades.
Para isso, ele reforça a importância de perguntar “o por quê” durante todo o processo de design e desenvolvimento. Além disso, o DCU é abordado como não subjetivo e “com frequência, baseia-se em dados para fundamentar as decisões de Design” (Lowdermilk, 2013).
Na prática, essa metodologia se mostra bem relevante nos processos diários de projetos com IA, tendo em vista o trabalho de Discovery e prototipação em conjunto com cientistas de dados. São realizadas reuniões de entrevistas com os clientes, stakeholders e usuários, além de estreitar o contato do time técnico com o designer responsável.
O estudo de materiais fornecidos pelos cientistas como dashboards de análises de dados e resultados de modelos também é um ponto relevante para a prototipação da solução, tornando as funcionalidades mais assertivas.
Prototipação com base em dados
O protótipo normalmente está ligado ao escopo e demandas referentes à área de produto em busca de atender às necessidades do(s) usuário(s). Ele é utilizado para testar soluções de maneira rápida e a baixo custo. Através dele, o cliente ou usuário consegue visualizar a solução e gerar feedbacks e insights valiosos para o projeto.
Além disso, um dos trabalhos do designer, durante esse processo, é auxiliar o time de desenvolvedores a gerar o recebimento de informações, visando entregar uma boa jornada do usuário. É neste momento que torna-se nítido se a utilização do DCU foi feita de maneira correta.
No caso de projetos com IA, o processo de prototipação ocorre também de acordo com as análises exploratórias e conclusões dos cientistas de dados. A interface deve ser projetada para considerar o usuário como o centro mesmo que tenham situações em que ele não seja priorizado.
Diversos projetos e produtos desenvolvidos com Inteligência Artificial tem como o objetivo automatizar atividades operacionais, que lidam com um grande número de dados. Outro modelo recorrente são projetos onde a IA auxilia processos estratégicos e de tomada de decisão.
Para ambos os casos, gráficos e funcionalidades são gerados e validados com o time técnico, com os clientes e os usuários. Idealmente, nessa ordem, para que haja o aval técnico antes da validação com os demais. Além disso, pode ser preciso criar campos de input e coleta de informações para os modelos, impactando diretamente a experiência do usuário.
Conclusão – Design Centrado no Usuário aplicado a projetos de Dados e Inteligência Artificial
Os processos e metodologias de design aplicados em produtos e projetos com Inteligência Artificial requerem tratativas diversas daquelas que, convencionalmente, são utilizadas no desenvolvimento de soluções computacionais convencionais. Metodologias como Design Thinking e Prototipação com Base em Dados são elementos essenciais para garantir que o Design Centrado no Usuário ocorra em tais projetos.
Nesse artigo foi possível identificar que em projetos de dados ou Inteligência Artificial as metodologias de Design são impactadas em sua aplicação. O Design Centrado no Usuário continua presente, porém, atendendo a IA além do usuário, no Design Thinking acrescenta-se o olhar para o recebimento de dados em meio às etapas e a prototipação baseada em dados tem o enfoque em tornar as funcionalidades mais assertivas e possibilitar inputs de dados para modelos.
O objetivo desse texto é detalhar, de maneira prática, uma parcela destas atividades e auxiliar profissionais de UX, product owners, desenvolvedores e cientistas de dados a compreender como é a interação e os processos de Design aplicados a projetos de dados e IA.
Referências
[1] LOWDERMILK, Travis. User-centered design: a developer’s guide to building user-friendly applications. ” O’Reilly Media, Inc.”, 2013.
[2] BROWN, Tim. Design Thinking: uma metodologia poderosa para decretar o fim das velhas ideias/Tim Brown com Barry Katz. Trad: Cristina Yamagami. Ed: Alta Book, Rio de Janeiro, 2017.
BRANDÃO, Júlia Assad. Design Thinking como ferramenta auxiliar na elaboração do planejamento estratégico. 2023.
Designer na Aquarela Advanced Analytics. Cursando Pós-Graduação em UX Design e Agilidade, sou apaixonada pelas áreas de tecnologia, inovação e comportamento.