Logo Tech Writers

Tech writers

Esse é o nosso blog para apaixonados por tecnologia! Aqui, softplayers e outros especialistas compartilham conhecimentos fundamentais para o desenvolvimento dessa comunidade.

SEJA UM TECH WRITER
Você realmente sabe como a Gestão do Conhecimento impacta no seu negócio?
Tech Writers Novembro 07, 2022

Você realmente sabe como a Gestão do Conhecimento impacta no seu negócio?

A gestão do conhecimento tem se tornado uma ferramenta essencial para empresas que desejam se manter competitivas e em crescimento. Isso porque, a aceleração tecnológica, típica da atualidade, exige constante aprendizado para que o mercado de trabalho seja acompanhado.  O principal papel dessa gestão é promover os canais certos para transferir o conhecimento relevante para clientes, colaboradores, parceiros e fornecedores do seu negócio.  Nesse artigo, vamos explorar esse tema discutindo a aplicabilidade de ferramentas e estratégias da gestão do conhecimento na operação do seu negócio – seja no setor público ou no setor privado.  Gestão do conhecimento: processos e ferramentas de capacitação multicanal Estamos vivenciando um momento único como seres humanos, no qual temos muito mais informações disponíveis do que nossa capacidade de absorver tudo que temos acesso. A revolução nos modelos de aprendizagem foi potencializada pela evolução tecnológica e, aqui estamos: perdidos em um oceano de conhecimento disponível, mas muito mal consumido. É importante que os setores de gestão das empresas percebam, cada vez mais, a importância de garantir e manter suas equipes bem treinadas e prontas para os desafios neste novo cenário. Ele é veloz, incerto, complexo, e nos exige uma grande capacidade de adaptação contínua. Dentro dos conceitos da Gestão do Conhecimento, nos deparamos com algumas iniciativas que podem nos apoiar nos desafios impostos por este momento. Além disso, essas iniciativas conseguem eliminar barreiras geográficas e democratizar o acesso ao conhecimento, garantindo a capilaridade do mesmo em qualquer nível da operação dos negócios. Podemos citar algumas dessas práticas, que juntas, formam uma combinação muito interessante: trilhas de aprendizagem; simulações práticas; implementação de plataformas de Ensino à Distância - EAD (ou LMS - Learning Machine System); gamificação; repositórios de conhecimento; comunidades de prática; imersões usando novas tecnologias; e o sempre “queridinho”, programa de certificação.  Pesquisas recentes mostram que até 40% das pessoas que não recebem um bom programa de capacitação tendem a se desligar da empresa no primeiro ano. Por isso, é importante sempre se questionar:  como está o seu onboarding? A Empresa está realmente preparada para receber novos funcionários e novos clientes?  Estamos todos à mercê de um turnover alto, causado não só pela rápida mudança decorrente da pandemia, mas também pela ausência de uma estratégia sólida de repasse e internalização do conhecimento dentro das empresas. Portanto, o foco é gerar conhecimento e implementar tecnologias capazes de concretizar a qualificação dos times, desenvolvendo a educação corporativa e consolidando uma cultura organizacional baseada no conhecimento. E, falando em formas de aplicar uma boa gestão do conhecimento, nós temos um artigo interessante sobre plataformas LMS para vocês: clique aqui para ler!  Outra dica para processos de gestão de conhecimento que funciona bem aqui na Softplan, é a utilização da ferramenta Eva People. Ela tem foco na automação da comunicação para a jornada de Onboarding. Hoje usamos essa ferramenta não só para os colaboradores da Softplan na Unidade de Setor Público, mas também nas novas capacitações para nossos clientes. Clique aqui para conhecer! Mapeamento e reformulação de processos estratégicos e operacionais Apesar de promoverem a produtividade e o monitoramento da operação do negócio, os processos têm um papel muitas vezes subestimado. No entanto, eles são essenciais. Afinal de contas, representam uma forma estruturada de registrar o conhecimento, o “know-how” que, de fato, faz o seu serviço ou produto chegar aos seus clientes ou usuários. Capturar o passo a passo de cada atividade, visando a documentação da forma mais produtiva de se realizar um trabalho, é uma tarefa árdua de explicitação do que chamamos de conhecimento tácito.  Por este motivo, o mapeamento de processos é uma técnica útil para capturar as melhores práticas e atividades críticas do seu negócio. Certamente, por meio dele, você alcança o alinhamento entre as equipes, o futuro entendimento para novos colaboradores e o padrão de qualidade e assertividade dos procedimentos.  Aliás, todo esse conteúdo é essencial à uma boa estratégia de onboarding, como já mencionamos acima, mas também um repositório fértil para ações de reciclagem de conhecimento. Tal conhecimento será representado, por vezes, na forma de fluxogramas, que descrevem graficamente um processo existente ou um novo processo proposto.  Mas a elaboração de procedimentos, manuais, roteiros, listas de tarefas, instruções de trabalho e até mesmo vídeos demonstrativos disponíveis em um sistema LMS (para ensino à distância) podem proporcionar um detalhamento maior da atuação de cada área do negócio. É importante ressaltar que os processos operacionais/estratégicos e o fluxo de conhecimento de uma empresa não podem ser separados. Isso porque, uma vez que os conhecimentos constituem entradas do processo, eles são utilizados durante o processamento e são gerados como saídas dos processos.  O fluxo de conhecimentos é, portanto, inerente ao processo. Leia mais a respeito no artigo de YOO, SUH e KIM, de 2007: “Knowledge flow‐based business process redesign”: https://www.emeraldinsight.com/doi/pdfplus/10.1108/13673270710752144 Base de conhecimento especializado no seu negócio Seu Suporte vive abarrotado de dúvidas? Seu time de serviços percebe que os usuários, mesmo depois de capacitados, seguem muito dependentes? O cliente reclama de funcionalidades porque não as conhece? Se você respondeu sim para estas perguntas, você já tem o entendimento de que é necessário disponibilizar informação de qualidade aos seus usuários, clientes, consumidores.  Uma base de conhecimento devidamente estruturada e populada irá desafogar o seu time de atendimento, relacionamento e times técnicos, eliminando perguntas rotineiras e repetitivas de sua fila de demandas.  Seus clientes também vão demonstrar maior satisfação quanto às diferentes possibilidades de canais de atendimento, uma vez que poderão solucionar suas dúvidas com maior autonomia e velocidade.  Além do efeito positivo na percepção do cliente, a base de conhecimento permite também que seus colaboradores foquem em atividades mais complexas ou estratégicas, uma vez que as dúvidas simples são resolvidas em outro canal. Vale destacar que o grande desafio não é apenas estruturar uma base de conhecimento e escolher a melhor plataforma para seu consumo. Mas, sim, manter este conteúdo atualizado - coerente, com qualidade e relevância para os seus clientes. Conecte a manutenção da sua base de conhecimento ao ciclo de novidades dos seus produtos e serviços. O processo precisa estar na raiz!  Na Softplan super fazemos uso da base de conhecimento para o segmento da Justiça. Conheça o SAJ Ajuda, implantado através do software Zendesk, atendendo a clientes do Brasil e Colômbia. Link: https://sajajuda.softplan.com.br/hc/pt-br   Comunidades de prática e o poder do networking Uma comunidade de prática tem como objetivo reunir um grupo de indivíduos que se reúnem periodicamente em torno de um interesse comum no aprendizado e na aplicação do conhecimento adquirido. Neste contexto, este aprendizado coletivo é berço de melhorias em processos e sistemas, de inovações no modelo de negócios, e, especialmente, de uma visão muito mais ampla de todo o contexto em que um produto ou serviço será desenvolvido e comercializado.        Ressaltando que este conceito preza pela participação voluntária. Por isso, é importante que as empresas proporcionem um ambiente favorável à discussão de novas ideias de forma natural, segura, respeitosa e sem julgamentos prévios. Além disso, é preciso um planejamento mínimo de tempo para se dedicarem às inovações.  Identifique o período mais produtivo dentro do seu time e reserve as agendas para o espaço aberto. Quem tiver uma pauta, avisa aos demais e aí todos participam. Nada obrigatório, porém estimulado!  Essa troca de conhecimento acontece naturalmente entre grupos ou colegas de trabalho com determinadas afinidades, seja no intervalo do cafezinho ou no almoço, seja nos corredores ou em momentos de diversão destas pessoas. Quem nunca saiu do “happy hour” como ideia que não tinha sequer imaginado?  Os participantes dessas comunidades se beneficiam de recursos de comunicação rápida e informal como WhatsApp, e-mails, fóruns de discussão e plataformas como o Slack.  Mas, cuidado para não se perder no histórico. Todo canal de compartilhamento e colaboração é bem-vindo. No entanto, é crucial que as pessoas consigam localizar a informação facilmente depois do debate. Uma organização mínima dos temas é fundamental para que a ideia não se perca.  A troca que ocorre nas comunidades de prática permite a expansão do conhecimento organizacional. Nelas, ele deixa de ser apenas individual e passa a cristalizar-se na rede de conhecimento da organização, compreendendo toda sua dinamicidade e volatilidade.  Uma observação importante:  as comunidades de prática também acontecem em plataformas externas, sem conexão direta com as empresas. Busque no Linkedin os grupos de conteúdo. Dessa forma, você vai descobrir uma série de possibilidades de contatos e conhecimentos!  Banco de ideias para o funil de inovação Trata-se da associação de um repositório a um processo estruturado para captar, avaliar e acompanhar as novas ideias geradas nos diferentes grupos de trabalho ou até em iniciativas individuais dos colaboradores, especialmente para implementações em novos produtos ou serviços.  É a evolução do conceito de “caixinhas de sugestões” para coletar e selecionar de forma sistemática ações para melhorar operações, sugestões de novos processos e produtos, aplicações de novos controles e serviços, atuação mediante a concorrência, além de relatos de experiências que podem promover uma revolução no modelo de negócio.  Associe a coleta de ideias aos processos de desenvolvimento das mesmas, tais como: Brainstorming, Design Thinking e Prototipagem. O que importa é incentivar! Essa prática pode ser utilizada pelos colaboradores conforme a estratégia mais adequada para a empresa, muitas vezes associada à solução de problemas específicos em cada ciclo de ideação e vinculada a ações de gamificação e reconhecimento para as melhores ideias. Uma boa forma de estimular é fazer rodadas lançando desafios, puxando temas específicos, e permitindo que pessoas de diferentes times possam atuar neste processo, ainda que não seja um tema diretamente ligado à sua atuação.  Essa também é uma excelente forma de identificar talentos e promover a evolução de carreira dos colaboradores.  Ah, e sim, seus clientes também podem participar! Trazê-lo para essas discussões pode levantar propostas ainda não imaginadas. Quando o cliente é englobado nos processos, aumenta-se também, a chance de fidelização.  Aqui, uma dica com ferramentas para coletar ideias: https://aprendeai.com/criatividade/ferramentas-de-criatividade-e-geracao-de-ideias/ Gamificação para atrair os jogadores escondidos na sua operação A atual geração de colaboradores em sua empresa ou nos times dos seus clientes cresceu sob influência de diversos tipos de jogos durante a sua infância e adolescência.  A atual importância do mercado de “games” revela o potencial dos elementos de jogos na revolução tecnológica e também na disseminação do conhecimento. Gamificar a aprendizagem é transformar o processo de capacitação em uma jornada com senso de pertencimento e com estímulos claramente definidos. Dessa forma, é possível proporcionar, por meio dos elementos de jogo, novas estratégias para criação, coleta, disseminação e absorção de novos conhecimentos. Essa técnica pode tornar as pessoas capazes de desenvolverem habilidades e competências voltadas para o objetivo do seu negócio e atendimento dos seus clientes. Alguns games foram desenvolvidos para promover os processos de Inteligência Organizacional (IO) e Gestão do Conhecimento (GC) nas organizações. O jogo “The Corporate Machine”, por exemplo, visa a dominação do mercado que sua empresa ocupa. Ou seja, ensinar sobre estratégia de forma lúdica.  Observa-se que a gamificação como processo é, de fato, um importante aliado para o desenvolvimento do processo de Inteligência Organizacional, bem como para a Construção e Gestão do Conhecimento no âmbito das organizações.  Conheça aqui o jogo “The Corporate Machine”: https://g.co/kgs/R3Ng58  Sim, a gestão por indicadores é parte da Gestão do Conhecimento Quem nunca ouviu a máxima: o que não se mede não se gerencia?  Lembre-se que medir envolve conhecer os processos, suas métricas e os resultados esperados. Um vasto conhecimento é gerado a partir dos indicadores de desempenho de processos, uma vez que eles: Disponibilizam dados para que o gestor atue em cada etapa do processo, identifique gaps e promova melhorias; Permitem melhor compreensão do cenário e maior previsibilidade para ações futuras; Proporcionam maior exatidão na tomada de decisão pelo gestor, seja de forma preventiva ou reativa para solucionar problemas; Permitem a criação de “dashboards” contendo todas as informações disponíveis em tempo real para ações com o devido timing; Evidenciam os resultados alcançados, fundamentados em fatos e de forma objetiva; Alimentam sistemas de inteligência artificial e machine learning. Portanto, os indicadores são parte do fluxo de conhecimento, uma vez que permitem o entendimento do contexto de processos, produtos e serviços, bem como impulsionam ações rumo às melhorias e inovações necessárias em seu negócio. Além disso, os processos de disseminação do conhecimento também possuem indicadores próprios que retroalimentam os processos de gestão, não só para monitorar resultados, mas para seguir evoluindo nas ações estratégicas.  Na Softplan usamos a ferramenta Appus Skills para realizarmos o diagnóstico de conhecimento técnico e mapeamos as lacunas a serem trabalhadas em nossas capacitações. Recomendo a leitura do blog da Appus, nossa parceira: https://www.appus.com/blog/people-analytics/o-que-e-people-analytics/  Ah, o conhecimento! Algumas empresas de diferentes segmentos já adotaram em suas estruturas uma área ou um cargo referente à Gestão do Conhecimento. Esta área ou este profissional tem como desafio o processo de estruturação, ampliação e manutenção do Capital Intelectual da empresa.  Diversas estratégias, plataformas e procedimentos, tais como os citados neste post, podem promover uma mudança cultural profunda quanto ao valor do conhecimento dentro do seu negócio. Reflita sobre tudo que mencionamos e responda: o que seria da sua empresa sem a disseminação e evolução do conhecimento que ela exige?  Para refletir, lembre-se que:  Você não perde o conhecimento que possui quando o compartilha. Ele se multiplica! Cada um tem sua forma de “aprender com mais facilidade”, e está tudo bem! Porém, ao refletir sobre suas soluções de gestão do conhecimento, pense em diferentes tipos de “aprendizes” e monte estratégias aderentes às suas particularidades.  E, por fim, o conhecimento não se deprecia com o uso, ao contrário dos outros ativos em que o seu valor decorre do uso/consumo. Ele é exponencial! Por Ana Carolina Prado Coordenadora de Conhecimento e Capacitação na Softplan – Unidade Setor Público

Qualidade do código: Saiba como revisar o código, medir sua qualidade e dicas de ferramentas!
Tech Writers Outubro 03, 2022

Qualidade do código: Saiba como revisar o código, medir sua qualidade e dicas de ferramentas!

Desenvolver um código de qualidade é essencial para reduzir a quantidade de bugs nos softwares, facilitar a manutenção do código e reter mais os usuários. Quando uma pessoa utiliza um software, ela espera que este software possa resolver seus problemas e otimizar sua rotina. Se o software apresentar muitos problemas, a pessoa tende a perder a confiança nele e optar por um concorrente. Por isso, hoje, aqui na Softplan, vamos te ensinar o que é um código de qualidade, como revisar seu código e dicas de ferramentas para auxiliar. Confira! O que é qualidade de código?  De maneira geral, a qualidade do código não possui uma definição exata. Cada equipe de desenvolvimento estabelece uma definição para ela, que no geral se resume na união de fatores comuns, como: manutenção, testabilidade, legibilidade e segurança. Ou seja, um código pode ser considerado de qualidade se ele for legível, de fácil manutenção, seguro e simples de testar.  Escrever um código de qualidade ou código limpo envolve uma série de práticas e padrões recomendados durante o desenvolvimento. Definem-se essas práticas já no início do projeto. Seguindo elas, aliado ao uso de ferramentas manuais ou automáticas para medir a qualidade do código, é possível construir um produto com mais segurança. Porque a qualidade do código é tão importante? Implementar um código com qualidade é relevante principalmente pelos seguintes fatores: Reduz a manutenibilidade e otimiza melhorias futuras; Reduz o risco de erros e bugs; Acelera as entregas dos códigos; Auxilia na retenção do cliente; Melhora a experiência da pessoa usuária (UX) com o produto final; Garante maior segurança de dados. Explicando melhor, criar um código de qualidade otimiza as manutenções e melhorias futuras, que ficam mais simples e rápidas de serem implementadas, tornando a dívida técnica pequena. Assim, não é preciso gastar horas procurando um bug em um código macarrônico. Outro benefício é gerar entregas com poucos ou nenhum bug e mais rápidas ao cliente, já que a equipe não vai gastar tantas horas tentando entender um código muito complexo. A qualidade do código também garante uma melhor experiência da pessoa usuária, evitando bugs e problemas de desempenho no produto final. Além disso, ela pode ter um impacto direto no quão seguro é o software. Por exemplo, mesmo pequenos defeitos, como não validar a entrada do usuário, podem deixar um aplicativo exposto a atores mal-intencionados e ataques maiores. Com estes benefícios, o cliente confia cada vez mais no produto entregue a ele, o que ajuda na retenção dos clientes. Todavia, a qualidade de software não se refere somente ao código limpo, mas a um conjunto de fatores que devem ser adotados como documentação, boas práticas, gestão e monitoramento, que serão Quais são as características de um código fonte de qualidade? Para um código fonte ser de qualidade ele deve ser fácil de entender, ter fácil manutenção e deve cumprir suas funções de maneira eficiente As principais características de um código fonte de qualidade são: Legibilidade: O código deve ser fácil de ler e entender para a equipe de desenvolvimento, com uma sintaxe clara, sem abreviações confusas e um estilo de codificação consistente; Simplicidade: Ele deve ser simples e conciso, a fim de reduzir erros e bugs; Modularidade: O código precisa ser dividido em módulos ou funções independentes, cada um com uma responsabilidade clara e bem definida. Isso torna o código mais fácil de testar, depurar e manter; Documentação: É importante documentar o código adequadamente, para ajudar as outras pessoas do time a entenderem a função de cada parte do código; Testabilidade: Deve ser fácil de testar e ter um conjunto abrangente de testes unitários para garantir que ele funcione corretamente; Confiabilidade: Deve ser confiável e lidar adequadamente com erros e exceções, retornando erros claros e informativos quando ocorrerem. Além disso, para garantir a qualidade no código, é importante ter um processo contínuo de revisões e aprimorações constantes. Então, o que é um código ruim? A qualidade do código está relacionada ao seu nível de complexidade e legibilidade. Quando ele está muito complexo, macarrônico, acaba sendo difícil de ser compreendido e receber manutenção. Por isso, é considerado de baixa qualidade. Se o código está mal organizado, não tem documentação, não segue boas práticas da programação e possui comentários mal estruturados ou nenhum comentário que auxilie na sua compreensão, é um sinal de que ele precisa ser revisado. Além disso, um código pode acabar sendo ruim se ele não tiver sido testado, pois isso aumenta as chances de gerar bugs e erros.  O código complexo, além de ter grandes impactos na produtividade da equipe, gera alto custo de sustentação. Isso também pode gerar erros no sistema e incompatibilidades, que quando não tratados rapidamente podem fazer com que o usuário final perca a confiança no produto/software. Como implementar a qualidade do código no dia a dia? Existem alguns pontos que você pode seguir para melhorar a qualidade do código, que farão toda a diferença. São eles: Pense duas vezes antes de criar o código, e quando feito pense se ele se encontra na maneira mais legível possível; Siga práticas melhores, como o S.O.L.I.D (aproveite para conhecer o princípio Singleton); Use ferramentas de qualidade de código como SonarQube. Caso você esteja usando uma IDE como eclipse ou IntelliJ, então você também pode usar o plugin sonar (SonarLint); Não crie validações que já existem em bibliotecas, como isEmpty ou isNull. Muitas bibliotecas de código aberto fornecem diversos métodos para criar validações. Um exemplo é a biblioteca Apache Commons que é um verdadeiro canivete suíço para desenvolvedores; Antes de criar uma classe, pesquise para ver se já não existe outra com a mesma funcionalidade; Procure seu líder imediato ou tech leader, e converse sobre a importância de estabelecer padrões de codificação para melhorar o software em sua totalidade. A importância da documentação na qualidade de código Quando uma equipe passa um projeto para outro time, a ausência de documentação de suporte com o código é sempre um sinal de alerta. Se a equipe de desenvolvimento anterior não fornecer nenhuma documentação, significa a execução inicial do projeto com uma abordagem falha. Provavelmente vai faltar a arquitetura de código e "o quadro geral", podendo facilmente resultar em falha no projeto. Com uma boa documentação disponível, a nova pessoa desenvolvedora que aderir ao projeto pode ter um processo de onboarding de alguns dias em vez de uma ou duas semanas, com uma redução significativa no custo de desenvolvimento. Como medir a qualidade do código? É possível avaliar a qualidade de um código de diferentes formas, como por exemplo, com uma política de code review, através de ferramentas e/ou de feedbacks das pessoas usuárias. As principais formas de medir a qualidade de um código-fonte são: Análise estática de código: Esta técnica examina o código-fonte sem executá-lo, a fim de identificar problemas comuns, como código redundante, variáveis não utilizadas, entre outros; Métricas de código: As métricas de código servem para avaliar o código e podem incluir o tamanho do código, complexidade, índice de coesão, entre outros; Testes de unidade: Ao testar cada parte isolada do código, é possível identificar erros lógicos, de sintaxe, falhas de segurança, etc; Code Review: Implementar uma cultura de revisão de códigos, em que as pessoas desenvolvedoras do time revisam os códigos dos outros profissionais. Isso ajuda a identificar problemas não detectados por ferramentas; Feedbacks das pessoas usuárias: Com feedbacks dos próprios users do seu software, é possível criar relatórios de bugs, avaliar tempo de resposta do sistema, facilidade de uso, entre outros. Além desses pontos, existem ferramentas que fazem uma análise completa de novos códigos enviados aos repositórios. Dicas de Ferramentas para Qualidade do Código Algumas ferramentas podem te auxiliar na hora de garantir a qualidade do seu código fonte. A ferramenta mais famosa é o SonarQube, que verifica quase tudo – qualidade do código, formatação, declarações variáveis, tratamento de exceções com uma integração com pipelines CI/CD, com um comando de linha única. Já a ESLint é uma ferramenta de análise de código estático para JavaScript. Ela consegue verificar se o código está seguindo as regras de estilo e boas práticas. Com a CodeClimate, uma ferramenta de análise de código estático, você pode ter feedbacks sobre complexidade do código, duplicação, cobertura de teste e vulnerabilidades. A Postman é a ferramenta ideal para testar a funcionalidade das APIs, enquanto a CodeFactor te dá informações como cobertura de teste, complexidade e duplicação de código. Além dessas, a GitHub Actions também pode ser usada, já que ela é uma plataforma de automação de fluxo de trabalho. É ideal para executar testes de qualidade de código em um repositório do GitHub. Como revisar o código? Para realizar uma boa revisão de código, é importante compreender o contexto em que o ele está sendo usado, ou seja, seu objetivo, sua arquitetura geral e o público-alvo.  Além disso, alguns fatores são fundamentais na revisão, como, por exemplo, checar se o código está consistente com outros códigos relacionados e se ele está legível, possui documentação e não é redundante. Também é importante testar o código para verificar se possui erros e se funciona como o esperado, além de deixar comentários para apontar melhorias e bugs encontrados. Depois destes passos, o ideal é propor soluções para os problemas encontrados e pedir a opinião de outras pessoas da equipe. Gostou de saber um pouco mais sobre qualidade do código e suas principais implicações? Confira mais conteúdos como este em nosso blog Tech Writers!  E se quiser fazer parte do nosso time, acompanhe nossas vagas na página de carreiras. Gostou de saber um pouco mais sobre Qualidade do código e suas principais implicações? Confira mais conteúdos como esse em nosso blog! Quer ser nosso próximo Tech Writer? Confira nossas vagas na página Carreira! Até a próxima!

E quem não quer ser líder, faz o que? Conheça a carreira de especialista
Tech Writers Setembro 26, 2022

E quem não quer ser líder, faz o que? Conheça a carreira de especialista

Faz parte do senso comum associar a progressão de carreira à cargos de liderança. As mudanças no mercado de trabalho tornam outros formatos de carreira cada vez mais evidentes. A carreira de especialista, por exemplo, é uma possibilidade que faz sentido em muitas áreas, especialmente no universo da tecnologia.  Ser líder, seja de uma equipe ou de uma organização, é um papel bastante complexo que exige diversas competências. Entre elas, gestão de pessoas. As competências voltadas para pessoas, trazem um desafio considerável, com o qual nem todos se identificam.  O fato é que ser líder não é a única forma de crescer na carreira e atuar estrategicamente na organização trazendo impactos para o negócio. Por isso, nesse artigo vamos discutir um dos formatos de carreira que temos na Softplan, em Y, além de explorarmos alguns aspectos da carreira de especialista. Continue a leitura para conferir! Para além da liderança: carreira em Y e a possibilidade de ser um especialista Ao longo do tempo ficou claro que nem todos se identificam com o caminho de carreira que leva à gestão, e que nem sempre ser bom tecnicamente é indicativo para seguir no caminho de liderança. Uma carreira de especialista, por exemplo, pode ser muito mais interessante para várias pessoas.  Hoje temos  caminhos mais flexíveis para que a progressão de carreira seja uma escolha alinhada com aquilo que a pessoa realmente se identifica. A seguir vamos falar sobre um formato específico utilizado aqui na Sotplan, a carreira em Y, e como ela pode te ajudar a se tornar um especialista.  Como funciona a carreira em Y? A Softplan, para proporcionar essa autonomia de carreira aos Softplayers, contempla a carreira em Y.  E o que isso significa?  Significa que nossos Softplayers podem se desenvolver para atuar como líderes e direcionar sua carreira para cargos de gestão, ou focar na atuação técnica e se desenvolverem enquanto especialistas (imagem1). Legal, né? A carreira de especialista, tem tanta relevância quanto à de gestão, além de representar um papel estratégico para o negócio. O especialista tem a vantagem do foco, de investir na busca vertical pelo conhecimento, ou seja, torna-se referência técnica. Entende-se que o especialista é capaz de realizar análises complexas, liderar projetos técnicos, analisar escopos e enxergar padrões de necessidades, fomentar a escolha de ferramentas, ser estratégico na resolução de problemas, contribuir para a transformação e inovação tecnológica e dos produtos, entre outras funções.  É um profissional com potencial para trazer inovação, experiência consolidada, participar ativamente da capacitação de equipes e decisões estratégicas em diversos níveis (equipe, unidade, corporação).  Exemplo de aplicação da carreira em Y  Para deixar mais claro o funcionamento da carreira em Y, e como os diferentes graus de especialização se encaixam nela, vamos para um exemplo prático. Pensando na carreira de Software Developer, essa estrutura ficaria assim: Na imagem 2 fica visível que a estrutura de cargos de liderança e especialista se sobrepõem. Em alguns momentos, uma ultrapassa a outra. Ou seja, é possível alcançar cargos estratégicos e progredir financeiramente em ambos os caminhos.  Conforme apontado anteriormente, é esperado que o especialista dê conta de atividades diversas, atuando como um consultor interno, como referência técnica.  Porém, é necessário que além das habilidades técnicas, outras skills sejam desenvolvidas, as chamadas Soft Skills. O especialista técnico precisa desenvolver habilidades de comunicação e negociação, por exemplo. Afinal, em diversos momentos será necessário engajar o time na identificação e resolução de problemas, na adoção de novas práticas, ferramentas e/ou tecnologias, etc.  Ainda, espera-se que haja o compartilhamento desse conhecimento técnico desenvolvido e adquirido pelo especialista, e novamente serão requisitadas diversas soft skills. Ou seja, é um papel complexo e desafiador tal qual o papel de liderança, embora cada um tenha suas especificidades. Outras ferramentas de plano de carreira na Softplan A carreira em Y é só uma das ferramentas de plano de carreira na Softplan. Também contamos com outros projetos que trazem ainda mais robustez para essa estrutura tão importante. Alguns deles, são:  Plano de desenvolvimento Individual (PDI): uma ferramenta importante para guiar e acompanhar o desenvolvimento das skills identificadas como necessárias para progressão e desenvolvimento de carreira;  Avaliação de desempenho 360º: proporciona uma rica rede de feedbacks que irão trazer diversas possibilidades de desenvolvimento e reconhecimento de habilidades;  Processo Seletivo Interno (PROSIN): que proporciona autonomia de carreira, possibilitando transitar entre novas áreas e/ou cargos, etc.   Independentemente da sua escolha, o direcionamento na carreira é essencial para alcançarmos os nossos objetivos profissionais, afinal, se não sabemos aonde queremos chegar, qualquer caminho serve, não é mesmo?! ¹Frase adaptada da obra Alice no País das Maravilhas. Gostou de saber um pouco mais sobre carreira de especialista e suas principais implicações? Confira mais conteúdos como esse em nosso Blog! Quer ser nosso próximo Tech Writer? Confira nossas vagas na página Carreira! Até a próxima!

O que é Programação Assíncrona e como utilizá-la?
Tech Writers Setembro 19, 2022

O que é Programação Assíncrona e como utilizá-la?

A Programação assíncrona é uma forma de evitar delays ou tempos de espera na execução de um programa. Quando estamos executando algo sincronicamente, podemos ter bloqueios no processo pela necessidade de esperar alguma execução de código. Isso pode  bloquear o programa como um todo até que termine a execução deste passo. Async e Await são as palavras chaves usadas no C# para usar a programação assíncrona. Nesse conteúdo vamos explicar o que é programação assíncrona e como utilizá-la.  Quando usar a programação assíncrona?  Podemos usar programação assíncrona sempre que tivermos um procedimento que possa ser independente, tais como: Leitura e escrita de um arquivo; Chamadas de recursos 3rd party; Lógicas independentes que podem ser separadas da execução da thread principal. Tipos de retornos Void: quando utilizamos este retorno em um método async, estamos assumindo que ele irá ser executado em uma thread paralelizada, mas não poderá ser awaitable. Ou seja, não poderemos usar o atributo await nele para esperar o seu resultado. Este conceito é chamado de "Fire and forget". Task: corresponde a um retorno do tipo void, mas que é awaitable. Ou seja, podemos usar o await para esperar a sua execução. Já em um método void, nãohaverá retorno de tipo algum. Task T: este retorno é também awaitable, mas nele teremos um generic que indica o tipo do retorno que estamos esperando, sendo T, qualquer tipo que desejarmos. Na prática O SO gerencia a thread do sistema sendo uma única thread que executa passo a passo de forma procedural, ou seja de maneira síncrona. Quando trabalhamos com formato assíncrono, podemos ter várias execuções de processos (threads) sem bloquearmos a thread principal ou as demais se assim desejarmos. Dessa forma, podemos trabalhar de forma paralelizada. Observe uma chamada síncrona: Chamada Assíncrona: Algumas vezes, necessitamos o resultado de uma chamada feita de modo assíncrono para o prosseguimento de nossa operação. Nesses casos, podemos usar o operador await. O operador Await se faz necessário quando precisamos de um resultado em meio a um processo para continuar, fazendo com que nosso procedimento aguarde o retorno do que estamos chamando. Isso tudo sem bloquear a thread principal, o que significa que a aplicação não fica travada. É importante lembrar que, para o desenvolvedor, o uso do async await pode parecer muito com o uso do formato síncrono.Porém, por baixo dos panos, não é bem assim que funciona. Abaixo, apresento exemplos de como usar o async await de forma síncrona e paralelizada. Apenas para ilustrar, temos os métodos de Get que buscam os dados na api pública da JsonPlaceHolder, que nos retorna coleções de objetos Json para simularmos uma massa de dados obtida ( https://jsonplaceholder.typicode.com ): Neste endpoint temos a execução síncrona dos métodos. Mesmo eles sendo Async, chamamos eles com o .Result() para que sejam executados de maneira síncrona. Neste segundo exemplo, já de forma assíncrona, executamos os métodos, porém aguardamos sua execução com o await. Em teoria, isso funcionaria de forma semelhante a execução síncrona, com a diferença de que para cada execução temos uma thread nova, mesmo que as outras aguardem o seu término: Neste terceiro endpoint temos uma otimização do conceito assíncrono. Comparando com o anterior, podemos ver que, no início do método, disparamos as chamadas dos métodos Get e atribuímos às variáveis. Neste cenário, threads diferentes são disparadas para cada chamada, e isso é possível porque ainda não precisamos dos seus valores. Mas quando vamos utilizar os seus valores para algo, necessitamos que eles estejam prontos. Aí sim utilizamos o await, para que se a thread de chamada do método Get ainda não tiver terminado a sua execução o sistema espere ela, ou elas… Dessa forma, concluímos que a utilização do async await vai além de apenas utilizá-lo no código, onde métodos que contém o async/await não necessariamente estão sendo executados de forma paralelizada. Para obtermos tal resultado, devemos pensar melhor na estrutura de sua utilização e como queremos que os processos se comportem. De um modo geral, processos async/await bem estruturados nos retornam ganho de tempo por podermos executarmos “n” processos de forma assíncrona. Gostou de saber um pouco mais sobre Programação Assíncrona e suas principais implicações? Confira mais conteúdos como esse em nosso blog! Quer ser nosso próximo Tech Writer? Confira nossas vagas na página Carreira! Até a próxima!

O que é o privacy by design e como ele é aplicado no desenvolvimento de produtos e serviços?
Tech Writers Setembro 05, 2022

O que é o privacy by design e como ele é aplicado no desenvolvimento de produtos e serviços?

O Privacy by Design, em tradução livre “privacidade desde a concepção”, está vinculado diretamente com a proteção e privacidade de indivíduos. Essa terminologia ganhou forças no Brasil com o surgimento da Lei Geral de Proteção de Dados – LGPD.   Basicamente, entende-se o conceito de Privacy by Design como a aplicação de medidas técnicas para garantir e resguardar a privacidade do usuário, desde o momento da concepção de um produto ou serviço que envolva a coleta de dados pessoais.  Pensando na importância do tema para aqueles que trabalham com Tecnologia da Informação (TI) neste artigo vamos abordar sobre a aplicação do conceito incorporado ao desenvolvimento de produtos e serviços, os pilares que o formam, e a sua relação com a Lei Geral de Proteção de Dados. Continue a leitura! O que é o Privacy By Design?  Para Bioni (2019, p.84), o Privacy by Design “é a ideia de que a proteção de dados pessoais deve orientar a concepção de um produto ou serviços, devendo eles ser embarcados com tecnologias que facilitem o controle e a proteção de dados pessoais.” Mas, engana-se quem pensa que o termo surgiu recentemente! Na década de 90, criou-se a metodologia do Privacy by Design, que ganhou maior visibilidade com a criação das regulamentações de proteção de dados.   A pioneira no tema, Ann Cavoukian, ex-comissária canadense de Informação e Privacidade, estabeleceu princípios para serem tratados como base na aplicação. Assim, o conceito demonstra duas questões importantes: a importância de implementação de configurações de privacidade por padrão;  a necessidade de aplicação de medidas proativas e garantia de transparência com o titular de dados sobre a finalidade da coleta dos dados pessoais.  “Qualquer que seja o sistema envolvido, o Privacy by Design requer que você o construa desde o início, com privacidade como configuração padrão.” - Ann Cavoukian. A integração de medidas de privacidade no início de um projeto está relacionada com a identificação de possíveis problemas em um estágio introdutório. Dessa forma, essa etapa consegue evitar consequências  negativas futuras. Os 7 pilares do Privacy By design Para entender sobre a aplicação do conceito do Privacy by Design, é preciso conhecer os 7 pilares que o formam. Vamos discutir um pouco sobre cada um deles a seguir. Proativo e não reativo O intuito é pensar antecipadamente em possíveis problemas, impedindo que aconteça, buscando soluções, garantindo que, quando implementado determinado produto ou serviço, já estejam tratados possíveis riscos.  Privacidade por padrão Esse princípio estabelece que a proteção dos dados pessoais automaticamente em qualquer processo em um determinado produto ou serviço. Isso garante que o usuário não precise preocupar-se em proteger sua própria privacidade, já que o produto ou processo foi criado pensando na segurança. Privacidade incorporada ao projeto A privacidade do usuário não deve, de nenhuma maneira, ser pensada com um elemento adicional, mas sim como parte do que está sendo desenvolvido e implementado.  Funcionalidade total Também chamado de “soma positiva ao invés de soma-zero”, estabelece que todas as funcionalidades devem estar completas e protegidas, gerando benefícios, tanto para o titular, quanto para a empresa.  Segurança de ponta a ponta É necessário pensar na privacidade dos dados em todas as fases. Assim, garante-se a proteção durante todo o ciclo de vida dos dados: no momento da coleta, durante o tratamento e armazenamento, até o descarte.  Visibilidade e transparência Este pode ser considerado como um dos pilares mais importantes, na qual deve ser garantido ao titular dos dados a transparência, de modo que sempre seja informado sobre a finalidade da utilização dos dados pessoais. Respeito à privacidade do usuário O produto ou serviço deve ser centrado diretamente no usuário, sendo que toda funcionalidade deve visar e garantir a segurança dos dados pessoais.  O que é o Privacy by Design na LGPD? A LGPD não menciona de forma direta em seu texto o termo Privacy by Design. Entretanto, essa legislação está diretamente relacionada com o previsto no artigo 46: “Art. 46. Os agentes de tratamento devem adotar medidas de segurança, técnicas e administrativas aptas a proteger os dados pessoais de acessos não autorizados e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer forma de tratamento inadequado ou ilícito. (…) § 2º As medidas de que trata o caput deste artigo deverão ser observadas desde a fase de concepção do produto ou do serviço até a sua execução.” Assim, podemos entender que o conceito Privacy by Design está relacionado com a aplicação de medidas de segurança para proteção dos dados pessoais. Dessa forma, desde o início da concepção de um produto e serviço, deve-se pensar na privacidade, garantindo, assim, a aderência com disposto no artigo.  Além disso, a adoção de medidas para garantir a privacidade de dados desde a concepção, pode ser vista como uma demonstração de que a empresa está em conformidade com a LGPD.  Esse cuidado evita a aplicação de multas e ocorrência de incidentes de segurança envolvendo dados pessoais.  Qual a diferença de Privacy by Design e Privacy by default? Podemos dizer que o Privacy by Default (privacidade como padrão) faz parte e liga-se diretamente ao Privacy by Design. Isso porque, uma das maneiras de garantir a privacidade desde o momento da criação, é que o produto ou serviço, quando direcionado ao usuário, esteja com todas as medidas para garantir a proteção dos dados implementadas. Sobre essa questão, Pinheiros (2018), pontua:  “Podemos dizer que o Privacy by Design é uma decorrência do Privacy by Default. Em outras palavras, trata-se da ideia de que o produto ou serviço seja lançado e recebido pelo usuário com todas as salvaguardas que foram concebidas durante o seu desenvolvimento. O princípio da proteção de dados por padrão é reconhecer o mínimo necessário em relação aos dados (às finalidades do tratamento pretendido), proibindo que esses dados excedam tais finalidades.” (PINHEIROS, 2018, p.399).  Ou seja, no momento do lançamento do produto ou serviço ao público, é necessário que as configurações de segurança e proteção dos dados estejam aplicadas como medida padrão. De tal modo que, somente haja a coleta dos dados estritamente necessários. Além disso, deve-se conceder ao usuário a autonomia para, se assim desejar, habilitar de forma voluntária as configurações e funcionalidades relacionadas à privacidade.  Conclusão Em suma, a famosa frase criada pelo matemático londrino Clive Humby “os dados são o nome petróleo”, torna-se cada vez mais real, haja vista que, as empresas utilizam os dados como fonte de receita, direta ou indiretamente.  Assim sendo, torna-se cada vez mais necessária a criação de regulamentações para proteção dos dados, dando ao titular autonomia sobre suas informações.   Com isso, cabe às empresas a implementação de medidas para a conformidade de seus produtos e serviços às novas regulamentações, garantindo o direito à privacidade aos titulares de dados. É interessante destacar também que a aplicação do Privacy by Design pode ser vista como um diferencial competitivo. Afinal, empresas que utilizam-se de medidas que garantem a privacidade dos usuários reforçam o compromisso e a preocupação com o bem-estar dos mesmos.  Dessa maneira, há um fortalecimento da confiança de todos os clientes por meio da transparência adotada. Logo, a implementação do conceito de Privacy by Design não só garante a conformidade com as legislações, mas também pode ser visto como um diferencial competitivo, fortalecendo a confiança dos usuários pela transparência adotada.  Gostou de saber um pouco mais sobre Privacy by Design e suas principais implicações? Confira mais conteúdos como esse em nosso blog! Quer ser nosso próximo Tech Writer? Confira nossas vagas na página Carreira! Até a próxima!

Product Discovery e sua importância no desenvolvimento de produtos
Tech Writers Agosto 15, 2022

Product Discovery e sua importância no desenvolvimento de produtos

Se você está entrando ou faz parte do universo dos produtos, em algum momento deve ter se deparado com o termo product discovery. O conceito tem sido difundido amplamente ao longo dos últimos anos, principalmente depois do “boom” da cultura de produto das empresas por todo o globo. Nesse mundo cada vez mais competitivo, alguns dos principais desafios das empresas são construir produtos que sejam lançados com sucesso e tenham vida longa, sendo amados pelos clientes.  No entanto, não são raras situações em que se investe tempo, dinheiro e muita energia construindo produtos que não despertam interesse nos consumidores. Assim, eles acabam não sendo utilizados e não  alcançando os resultados desejados. Para o desenvolvimento de produtos relevantes e que, de fato, cativem o público, o conhecimento sobre o processo de discovery é essencial. Por isso, neste artigo vou te explicar sobre product discovery: o que é, e como aplicá-lo no dia a dia de um produto digital.  Além disso, vou trazer dicas de como criar produtos melhores e mais assertivos em relação ao desejo de seus usuários. Vamos nessa?  Então, o que é Product Discovery? Product discovery ou descoberta de produto, se traduzirmos para o português, nada mais é do que um conjunto de práticas que estão relacionadas ao entendimento (descoberta) das necessidades do nosso usuário.  No processo de product  discovery, nos preocupamos em entender profundamente o problema antes de pensar em solução. Aplicar um discovery, significa realizar um planejamento e um estudo (feito pelo  time de produto e UX do negócio) sobre as dores do usuário. Esse trabalho pode ser feito sobre um produto que já exista ou algo novo.  Encontrar porquês, investigar, descobrir oportunidades, e, por fim, soluções que gerem valor e sejam viáveis para a empresa é o nosso grande desafio.  Como fazer um Discovery?  A primeira coisa a dizer sobre esse assunto é que não há uma receita de bolo para fazer um bom discovery. Cada time de produto aplica ferramentas dentro das atividades que fazem mais sentido naquele momento. Por outro lado, as equipes sempre devem seguir um planejamento, que vai ajudar nesse processo.  Podemos citar como etapas importantes: Alinhamento das expectativas (entender o momento da empresa, entender o produto que estamos querendo entregar);  Pesquisa (aliado com o time de UX), para entender as dores dos usuários (problemas); Ideação das hipóteses a serem validadas (essa é a hora de ter o máximo de hipóteses possível e alinhar com o time através de dinâmicas); Validação das hipóteses (é o momento de expor o protótipo ao usuário, o mais próximo possível da versão do produto);  Refinamento, que é criar um roadmap e estabelecer um MVP (minimum viable product) alinhado com as estratégias da empresa.  Quando fazer um Discovery? O discovery é essencial no lançamento de um novo produto, mas não se limita a isso. Quando temos uma nova funcionalidade, também podemos avaliar a necessidade de um discovery. Essas atividades podem acontecer em qualquer etapa do ciclo de vida de um produto.  Devemos avaliar as seguintes condições:  O valor que entregaremos é alto? Temos de forma clara o entendimento dos objetivos? Temos recursos disponíveis (disponibilidade de tempo e dinheiro)?  Depois de respondidas essas perguntas, conseguimos ter uma perspectiva das ações que devemos tomar.  Sempre devemos levar em consideração: quanto menos esforço (em implementação) para validar uma hipótese é melhor. Assim, podemos realizar diferentes testes para termos uma perspectiva mais clara do que nosso usuário precisa.  Não basta apenas sair criando novas features e esperar que, com isso, você terá bons resultados. Por isso, devemos ter um mindset de sempre testar nossas hipóteses,  para entendermos se elas fazem ou não sentido para nossos usuários. Quais são as áreas envolvidas no processo de discovery?  A responsabilidade pelas atividades é da gestão de produtos (PM) e UX. No entanto, isso não significa que não há colaboração da engenharia. A engenharia nos sinaliza a possibilidade técnica da solução que estamos propondo.  Dessa forma, a colaboração entre os times melhora muito os processos, fazendo com que todos contribuam para a compreensão da melhor solução (viável, desejável e possível) no produto que estamos trabalhando.  Existe Discovery certo ou errado?  Não podemos dizer que existe erro, e sim que pode ter faltado alguma percepção no projeto. A cada discovery, aprendemos e amadurecemos mais, o que gera maior assertividade no entendimento dos reais problemas dos usuários.  O importante é buscar uma percepção sem viez, entender que devemos coletar o máximo de informações dos nossos usuários antes de tomarmos qualquer decisão baseadas em “achismos”. O discovery nos permite evoluir nas ações que construímos ao longo da jornada de entrega do nosso produto.  Para finalizar, um ponto muito importante a esclarecer é o papel do gestor de produtos. Ele deve fortalecer a cultura de produto na sua empresa, alinhando sempre a estratégia da organização e o propósito do produto a todos os envolvidos (engenharia, comercial, marketing, entre outros). É o papel do gestor de produtos garantir uma visão muito clara do negócio e do valor que o produto gera ao nosso usuário.  Espero ter conseguido tirar algumas dúvidas de vocês sobre o tema! Para quem ficou interessado no assunto, indico algumas referências bibliográficas que podem ajudar a conhecer mais sobre o assunto:  CAGAN, Martin. Inspirado: Como criar produtos de tecnologia que os clientes amam; TORRES, Joaquim. Gestão de produtos de software: Como aumentar as chances de sucesso do seu software;  Você sabe qual é a importância do processo de discovery? – Cursos PM3.  Gostou de saber um pouco mais sobre product discovery e como se dá o seu funcionamento? Confira mais conteúdos como esse em nosso Blog! Quer ser nosso próximo Tech Writer? Confira nossas vagas na página Carreira!