Gestão de Expectativas em Projetos de Software

Gestão de Expectativas em Projetos de Software

Levante a mão quem:

  • Já teve um projeto de software entregue com atraso?
  • Já teve um sistema com tantos problemas que era praticamente insustentável?
  • Já pediu uma funcionalidade de uma forma e recebeu outra completamente diferente?

Se você respondeu sim a uma ou mais das perguntas acima, vai encontrar abaixo a causa raiz destes problemas.

O que é um projeto de software?

                                        Prototipação manual de telas para uma funcionalidade

Um projeto de software pode ser definido como um plano geral, com início, meio e fim, e ainda, descrição detalhada/telas/protótipos/cronogramas/etc., de algo a ser criado.

Um projeto tem ao menos um, e em geral, vários envolvidos, diretamente ou indiretamente.

Entre os envolvidos, o entendimento sobre o que é o projeto, de fato, é por natureza, diferente, pois cada um faz este entendimento considerando a sua individualidade, ou seja, suas experiências, seus conhecimentos, seus interesses, ou seja, os diversos fatores que influenciam em seu entendimento.

Qualidade da Mensagem: causa raiz número 1

A comunicação é, sem dúvida, um dos fatores chave de sucesso ou fracasso de um projeto. E a raiz da comunicação está na qualidade das mensagens.

A palavra “Mensagem”, tem sua etimologia no francês “message”, que significa comunicação. Já comunicação, tem origem no latim communicatĭo,ōnis e significa ‘ação de partilhar’. A partir disto, podemos concluir que uma mensagem é uma ação de partilhar uma informação de uma origem para um, ou mais, destinos.

Uma mensagem, seja ela no formato que for (escrita, falada, ilustrada, etc.), tem ao menos 3 pontos de vistas a serem considerados:

  • A intenção do que se quer passar como mensagem
  • A mensagem enviada ao(s) destinatário(s)
  • O entendimento que o(s) destinatário(s) teve da mensagem passada

Para ilustrar melhor os aspectos que influenciam na qualidade da mensagem, compartilho duas estórias abaixo:

O quadrado que conheceu o cubo

Conta-se que um quadrado de 2 dimensões foi convidado pelo cubo, de 3 dimensões, a conhecer o seu mundo. Neste mundo, as formas tinham muitas características (profundidade, sombra, volume, densidade, etc.) que o quadrado 2D, apesar de estar maravilhado, não conseguia conceber muito bem o que eram, pois eram coisas novas a ele.
Ao retornar para o seu mundo 2D, foi correndo contar para o retângulo tal aventura, e, para sua decepção, por não conseguir encontrar palavras para o que viu, foi motivo de zombarias e chamado de maluco. Não desistiu, e foi contar sua história para o triângulo, losango e círculo, e um após o outro, confirmavam sua insanidade. Sentiu-se mal, duvidou de si e decidiu nunca mais tocar em tal assunto. Assim pode viver, infeliz, como um simples quadrado 2D

.

Os índios que “não enxergaram” os navios portugueses

Conta-se que quando as caravelas de Pedro Álvares Cabral se aproximavam da costa brasileira, alguns índios que estavam na praia, viram uma movimentação das águas do mar diferente do que estavam acostumados mas não conseguiam definir do que se tratava.

Só se reconhece, o que se conhece

As duas estórias anteriores têm ao menos um ponto em comum: “Só se reconhece, o que conhece”.

                                                                    Conhecer para aprender

“Conhecer” é o ato de perceber e levar à consciência algo novo.

Conforme aumenta-se o relacionamento com este novo conhecimento, incorporamos-o em nossa essência. A este ato denominamos “aprender”.

É assim a todo momento de nossas vidas: do aprender a se alimentar, nos primeiros instantes de vida, passando por aprender a andar, falar, ler, aprender sobre conhecimentos gerais, conhecimentos técnicos, e assim, por toda a vida.

Olhar empático com os envolvidos no projeto

Olhar empático trata-se de “emprestar” o olhar do outro para conseguir compreender o ponto de vista do outro sobre uma mensagem.

Para conseguirmos “emprestar” o olhar, o ponto de partida é conhecer mais profundamente os envolvidos no projeto, sejam eles clientes, colaboradores, fornecedores, etc.

Existe uma ferramenta chamada “Operação Curiosidade” que busca compreender o outro, considerando 4 aspectos de nossa natureza humana:

  • Fatos e dados: características que são de identificação pública: onde mora, onde trabalho, que cargo tem, sua idade, etc.
  • Interesses: às vezes declarados, às vezes inferidos, mas diz respeito àquilo que o outro demonstra ter interesse e influencia suas decisões e comportamentos
  • Sentimentos: sentimentos que o outro demonstrar carregar ou que pode ser gerado a partir de uma informação, situação e/ou contexto
  • Valores: característica que o indivíduo não abre mão como honestidade, confiança, respeito, etc, para se atingir um objetivo:
                              Fonte: Operação Curiosidade — Metanoia (http://www.metanoia.com.br)

A visão compartilhada do todo: causa raiz número 2

Um fato comum em projetos é o não entendimento correto sobre uma funcionalidade, requisito ou similar. Existe uma imagem muito conhecida que representa isto:

Existem alguns fatores que colaboram com isto, como a Qualidade da Mensagem, como vimos anteriormente. Outro fator é a falta da visão do todo.

A visão do todo diz respeito a capturar do cliente o que é o essencial, ou seja, eliminar tudo o que for trivial.

Usando como exemplo a imagem acima, o essencial poderia ser: “um balanço, resistente a chuva e sol, que seja de construção rápida e barata”

Porém, capturar o essencial é conseguir identificar o que a mesma funcionalidade pode atender, principalmente, nas 2 camadas mais internas do cliente final que são seus sentimentos e valores.

Tomando o mesmo exemplo da imagem acima, o essencial da funcionalidade poderia ser:

“Uma diversão ao ar livre que seja segura, resistente e de baixo custo”.

Se vai ter pneu, se vai ter corda, se vai usar uma serra elétrica e todos outros itens técnicos, esta é a responsabilidade de quem irá construir a solução.

Especificar os itens técnicos, dar a clareza de como foi construído, como será feita sua manutenção, o alinhamento financeiro e outros tópicos são importantes, porém não são essenciais.

Quando não há a visão compartilhada do que é essencial com os envolvidos no projeto, o entendimento de cada um é cada vez mais distante entre si. A imagem abaixo representa bem esta ideia:

Quando este fenômeno acima ocorre, o resultado do projeto, geralmente, é de baixa qualidade.

Além disto, este desalinhamento acarreta em expectativas não atingidas e portanto, frustração entre os envolvidos.

Pessoas frustradas, acabam mudando um comportamento, que antes poderia ser positivo e acaba sendo negativo, muitas vezes manifestados através de rispidez, ocultação de informações, trabalho com desconfiança, burocratização de situações desnecessárias, e tantos outros exemplos.

Nivelamento de Entendimento como “A” solução

Nivelamento de entendimento tem o objetivo de unir a visão geral do que é essencial em uma entrega/projeto/funcionalidade com qualidade da mensagem.

Esta ação é feita considerando as seguintes etapas:

  • Operação Curiosidade contínua com o cliente final da solução para encontrar o que é o essencial;
  • Operação Curiosidade contínua com os envolvidos direta e indiretamente no projeto, à luz do essencial;
  • Comunicação periódica, preferencialmente diária, e nunca mais distante que quinzenal
                        Nivelamento de entendimento da visão geral do que é essencial em um projeto

Compromisso com a entrega

                                                                Compromisso com a entrega combinada

O compromisso com a entrega é fator determinante para a continuidade da boa relação dos envolvidos no projeto, uma vez que requer de cada parte a participação e comprometimento, a exemplo:

  • Do cliente é esperado tomar as decisões do que é essencial, combinar os riscos que podemos correr juntos e trazer os usuários finais para participar da construção do projeto
  • Dos envolvidos diretos é esperado a construção de qualidade da funcionalidade, antecipar impedimentos e levar opções simples de solução para que o cliente consiga escolher sem precisar entrar nos detalhes técnicos
  • Dos envolvidos indiretos é participarem em especial das etapas de concepção, alinhamentos periódicos no máximo quinzenais e parceria para identificar os ajustes necessários ao colocar em produção

Medir a satisfação do cliente

                                                          Termômetro de satisfação do cliente

A satisfação com o resultado do projeto é a chave para medir se a gestão de expectativa foi feita com sucesso.

Esta medição deve ser simples e feita a cada encontro. Não precisa ser de forma declarada, necessariamente. Muitas vezes é possível capturar este sentimento de várias formas por dedução:

  • Comportamentos corporais como expressões faciais, sorrisos, brilho nos olhos, aperto de mão, etc.
  • Atenção aos comentários do cliente para capturar se itens essenciais estão sendo esquecidos

Este mensuração deve ser feita com frequência, se possível semanal, com o cliente, usuários final e demais envolvidos direta e indiretamente.

Quando identificado insatisfação, é importante incluir quem demonstrou a insatisfação na construção da solução.

Conclusão

Projetos de software é por natureza uma atividade complexa pois trata-se de materializar de uma ideia.

Existem vários aspectos importantes que podem impactar no projeto (segurança, escalabilidade, integridade, acoplamento, preparada para o crescimento futuro, integração com outros sistemas, etc.) e que precisam ser levados em consideração na construção.

O cliente precisa dedicar sua energia no que é essencial: a ideia que originou o software. Para isto precisa de um parceiro de software que resolva os aspectos técnicos e principalmente: que saiba nivelar o entendimento do que é essencial e gerir as expectativas dos envolvidos.

Sobre a Tegra

A Tegra é uma desenvolvedora de soluções digitais únicas que tem como propósito ser um parceiro estratégico de nossos clientes para juntos construirmos a jornada da transformação digital de suas empresas.

O que nos move é a nossa curiosidade em ouvir ideias e oportunidades de solução que alavanque o negócio através de software.

Nos conheça: www.tegra.com.br

Ficamos felizes em compartilhar como fazemos isto 🙂

Autor: Willian Polis

Autor: Willian Polis


Líder educador na Tegra
- Soluções Digitais, apaixonado por compreender pessoas, gerar soluções através da tecnologia, resolver problemas, aprender coisas novas e dedicar-me totalmente em tudo o que faço. E-mail: polis@tegra.com.br

Uma introdução a React Hooks

Uma introdução a React Hooks

 

Na nova versão do React lançada esse mês, 16.8.0, foi lançada uma funcionalidade que ajudará na criação dos seus React Components, os Hooks. Que vem pra resolver alguns problemas que tínhamos no React e facilitar um pouco a escrita de componentes.

O que resolve ?

Primeiramente é difícil reutilizar lógica com estado em vários componentes, hoje é possível utilizar o Render Props ou High Order Components, mas isso faz com que tenha que mudar a estrutura do seu componente. Além disso, entender um componente grande pode ser difícil, um dos motivos é que temos que colocar nos Lifecycle Methods itens que tem que executar naquele momento do ciclo, porém não tem muita relação consigo, então segregar eles pelo propósito e não pelo momento que irá ser executado seria melhor.

Como resolve ?

Primeiro ele é Opt-in, ou seja, você pode começar a utilizá-lo gradualmente na sua aplicação e apenas em pontos necessários. Isso facilita também porque você pode começar a escrever seus componentes como função, e se for necessário que ele tenha estado, você não precisa mudar o jeito que está escrito e fazer uma a classe mais, pode apenas criar um Hook. Com isso consegue utilizar funcionalidade dos componentes como classe em componentes funcionais, não apenas o estado mas também acessar o Lifecycle, entre outros.

Como é na prática ?

Esse código é um exemplo para utilizar o Hook useState, nele é passado apenas um valor inicial e ele retorna uma referência a propriedade que quer e uma função que é utilizada para alterar essa mesma propriedade. O código fica bem mais sucinto e fácil de entender.

 

 

 

Nesse outro exemplo podemos ver como os Hooks ajudam quando queremos programar uma ação que dependa do Lifecycle. No exemplo pense que temos uma chamada de API que está abstraída como uma Streamno ChatAPI e queremos que quando o componente “morra” ele cancele a requisição. Para isso utilizamos o useEffect, ele recebe dois parâmetros sendo o primeiro uma função que faz a sua lógica que tem um Side Effect no caso a chamada a API e retorna uma função que será executada no momento que o componente “morrer”. O segundo parâmetro não está no exemplo mas é simples, é um Array que contém as referências das propriedades que o efeito depende para ser executado, por exemplo, caso eu queira fazer essa chamada de API toda vez que a propriedade XPTO tenha seu valor alterado, eu passaria um Array com essa referência e então ele só executaria nesse caso, um outro exemplo se eu passar esse Array vazio, então ele será executado apenas uma vez, o que seria equivalente ao componentDidMount.

Conclusão

Além dos dois exemplos que mostrei você pode também criar hookspersonalizados e utilizar outros que o React já oferece. Os hooks acabaram de entrar em produção na versão 16.8, então acho legal usar eles gradualmente em nossas aplicações. Na minha opinião os Hooks são um grande facilitador ao escrever os componentes, sendo opt-in e muito versáteis podemos fazer vários hooks customizáveis e abstrair lógica com state para reaproveitarmos de uma maneira mais simples, além de não termos que reescrever a estrutura das nossas aplicações para usá-lo, é só usar com a necessidade.

Valeu por ler até aqui! Até a próxima!

Referência

https://reactjs.org/docs/hooks-reference.html

Campus Party Brasil 2019

Campus Party Brasil 2019

A Tegra participou da Campus Party, representada pelo nosso comercial Polis e Márcia.

O evento está sendo realizado no Expor Center em São Paulo e tem por objetivo promover a experimentação da inovação e integração dos seus participantes.

A decoração do evento é muito diversificada: super heróis, personagens nerds, cosplay

 

Vimos muitos simuladores de jogos, realidades aumentada e virtual.

                                         

CPUs tunadas e em diferentes formatos, de “Chapolim” a “Motor de carro”, impressoras 3D e prototipação de baixo custo.

 

Muitas competições foram promovidas como concurso de música e menor tempo de circuito feito por drones.

    

Muitas palestras sobre temas relacionados a música, comunidades, robótica e principalmente inovação.

Como destaque, a palestra do Charles Schweitzer, Gerente de Inovação da Leroy Merlin, sobre estratégia de inovação, foi a de maior público do evento.

A Tegra Soluções Digitais tem como propósito conduzir a evolução de negócios e pessoas através de soluções digitais únicas, e que gera grande sinergia com a Campus uma vez que inovação e criatividade fazem parte de nosso DNA.

Valeu Campus e até Brasília.

 

UX para todos

UX para todos

Porque UX para todos? Não é só o profissional de designer que cria os layouts e o próprio profissional de UX que precisam saber sobre UX?

A resposta é: “Não”. 
Todos os profissionais envolvidos em um projeto devem saber ao menos um pouco sobre UX, pois o trabalho de cada um influencia o projeto como um todo e consequentemente influencia também a experiência do usuário.

Quem são os profissionais que precisam saber sobre UX?

Criativos digitais:

Podem ser diretores de arte, designers de interface e web designers, todas essas são funções com características semelhantes, tem a necessidade de saber sobre UX.

O criativo digital é responsável por grande parte da experiência do usuário, eu diria que é quase a metade, por isso sua criação deve proporcionar ao usuário uma boa experiência, principalmente porque a interface visual é a primeira coisa que o usuário vê, pode-se considerar que é a parte palpável de um produto digital e se for agradável aos olhos e fácil de entender, o usuário já começa a ter uma boa experiência, porém essa experiência não termina por aí:

A função do designer digital é comunicar, ou seja, transmitir a informação de forma clara.

O mapa de metrô abaixo, foi criado para transmitir as informações para os usuários de forma agradável aos olhos e fácil de entender, porque na verdade a linha do metrô não é reta como mostra a imagem e sim cheia de curvas tortas, mas isso não interessa para o usuário, pois o que ele precisa saber é apenas onde ele está e para onde ele vai. O Designer simplificou essas informações, para que o usuário pudesse ter uma boa experiência.

Mapa Representativo

Mapa Real


Planners / Planejamento Digital:

Os profissionais de planejamento, tem um papel muito importante dentro de um projeto digital, pois são responsáveis pelo objetivo do projeto e necessidade do usuário.

As primeiras coisas a se pensar ao fazer um planejamento é:

– Porque que o usuário precisa desse produto ou serviço? 
– Quais as necessidades dele que serão supridas? 
Pois esses usuários só irão ter interesse no produto, se for satisfazer alguma necessidade ou vontade dele.

Objetivo do Projeto X Lucro

O objetivo final de qualquer projeto é ter lucro, pois as empresas criam os produtos para isso, porém o objetivo do projeto em si, não pode ser somente o lucro e sim atender as necessidades dos usuários, por esse motivo ao criar um planejamento de um projeto é necessário focar na necessidade do usuário e consequentemente ele irá comprar o produto e a empresa terá lucro.

É muito importante cuidar do equilíbrio “Necessidade do Usuário” X “Objetivo da Empresa” e isso não é uma tarefa muito fácil, pois quando é colocado mais peso para a necessidade do usuário, acaba tirando peso do objetivo da empresa e vice versa, mas em tese o objetivo de um planner, é fazer com que esses dois pontos sejam alcançados de forma equilibrada.

Developers / Backends e Frontends

Quem nunca se deparou com essa situação?

Um exemplo:
O usuário precisa que seja exibido apenas cinco informações na tela, mas ao fazer essa requisição o sistema começa a carregar e demora até que aparece as informações. Esse sistema lento está tomando tempo do usuário e talvez dinheiro, tudo porque o programador criou um select que busca tudo que está no banco e depois que carrega as 7000 informações, esse código é manipulado para mostrar apenas o que o usuário pediu.

A experiência desse usuário foi totalmente afetada, devido a esse problema na programação.

A velocidade de processamento é um grande diferencial, principalmente no Brasil que as conexões sem fio são muito ruins, por isso qualquer segundo economizado do usuário, melhora muito a sua experiência. 
Existem inúmeros estudos que mostram que o tempo de carregamento da página consegue aumentar consideravelmente a taxa de conversão, cada segundo de carregamento de página que pode ser reduzido, melhora a experiência do usuário a ponto de influenciá-los ainda mais.

Outro ponto, são códigos mal estruturados, cheios de gambiarras e sem tagueamento. Isso vai influenciar na acessibilidade e no SEO desse projeto.

Esses exemplos citados acima podem prejudicar a experiência do usuário, principalmente os deficientes visuais que navegam pelas páginas com leitor de tela, (Um software que lê o código para os usuários), por esse motivo é muito importante que os códigos sejam bem escritos e com metadados bem definidos.

Gestores de Conteúdo:

São os profissionais que planejam, adequam e disponibilizam todo o conteúdo de um projeto.

Conteúdo é diferente de texto e imagem, não é simplesmente criar vários textos e imagens para o projeto, vai além disso. O conteúdo é tudo aquilo que é oferecido ao usuário de informação sobre um serviço, produto ou ferramentas que o auxiliam em problemas, porém se esse conteúdo for ruim, provavelmente não vai atrair a atenção de ninguém e o projeto está fadado ao fracasso.

É importante também pensar na acessibilidade, porém essa é um pouco diferente da acessibilidade que falamos para os desenvolvedores, por exemplo: o uso de muitos termos técnicos ou palavras difíceis de entender, provavelmente estará impedindo a acessibilidade de alguns usuários mais leigos, por isso é importante adequar todo o conteúdo para o público em geral.

B.I. Business Intelligence / Pessoal de Análise de Dados e Inteligência de Mercado.

Esse profissional é responsável por mensurar todos os resultados bons e ruins depois que a aplicação estiver no ar. Ele avalia a experiência do usuário através de números, ou seja, KPIs que são indicadores de performance. Esses indicadores são definidos no começo do projeto e tem como foco garantir que os objetivos do projeto sejam alcançados e para isso acontecer o objetivo do usuário deve ser alcançado e consequentemente o objetivo da empresa que é ter lucro, também será alcançado.

Como o comportamento e experiência do usuário afetam os números desses KPIs?

Engajamento: trata-se de algo que estimula a vontade do usuário em voltar a visitar uma aplicação continuamente e o engajamento é responsável pela medição da probabilidade dessas visitas. 
Quando o objetivo é engajar o usuário em uma campanha publicitária por exemplo, é necessário medir o tempo de permanência dele na aplicação. Outro bom indicador pode ser uma área para comentários ou avaliações dos usuários.

Interesse pelo produto/conteúdo: para saber se o usuário está interessado ou não no serviço ou produto, também podemos medir o tempo de permanência na aplicação. Se o tempo de permanência for muito baixo, talvez ele não esteja interessado no que está sendo oferecido ou se houver um volume muito alto de pessoas entrando e abandonando rapidamente, talvez seja necessário rever o que está sendo oferecido. 
A taxa de abandono é medida pelo número de pessoas que entram e saem da aplicação sem entrar em nenhuma outra página, essa é considerada como taxa de rejeição.

Taxa de vendas: essa é uma das mais importantes, pois grande parte das aplicações tem o objetivo de vender e se a taxa de vendas for baixa, pode ser que aquilo que está sendo oferecido não está sendo do interesse dos usuários ou pode ser que está havendo algum problema ou dificuldade na hora de efetuar a compra, um problema de cadastro, de pagamento, informação insuficiente sobre o produto. A deficiência que está impedindo o usuário de comprar pode estar em qualquer parte e isso envolve todos os profissionais do projeto.

Entendimento do menu de navegação: a taxa de abandono também pode estar relacionado a dificuldade na navegação, o cliente pode não estar entendendo como navegar e não sai da primeira página. Uma forma de saber o que pode estar acontecendo através do log de buscas internas.

Satisfação do usuário: para medir a satisfação do usuário, podemos verificar a taxa de compartilhamento, os comentários, avaliação por estrelas e taxa de abandono.

Com esses dados o profissional de BI vai validar se o objetivo do usuário e do projeto foram alcançados e através dos números ele vai identificar onde está a deficiência do projeto para gerar uma demanda de correção.

Empreendedores digitais:

Esse é o maior interessado em lançar o produto ou serviço digital e quer ganhar dinheiro com isso.

Existem várias coisas que devem ser avaliadas e levadas em consideração para que um empreendedor possa lançar um produto no mercado, mas uma das mais importantes é o segmento de mercado, ou seja, para quem ele quer vender?

Vender para todo tipo de público no Brasil inteiro é praticamente impossível, mas é possível vender para um público, dentro de uma classe social, com uma renda, dentro de uma localização, idade, perfil social e etc, porém antes de tudo é necessário ter uma proposta de valor, ou seja, saber o que oferecer para esse segmento de mercado, algo que vá gerar valor e atender as necessidades desse público a ponto de pagarem por isso. Essa proposta de valor é na verdade a experiência completa que envolve não só o que falamos neste artigo, mas também a experiência nos serviços com a empresa e relação com o clientes.

Conclusão

Para uma boa experiência do usuário, é necessário ir além de encontrar a melhor solução do problema, é necessário considerar fatores como a acessibilidade, a usabilidade, a utilidade, a eficiência, o fácil entendimento e a satisfação do usuário ao utilizar uma aplicação e isso está atrelado a função de todos envolvidos no projeto como um todo.

“Experiência é o que torna o produto um sucesso ou fracasso.”

Núbia Araújo

Núbia Araújo

UX/UI na Tegra

Os pilares da arquitetura de software na nuvem

Os pilares da arquitetura de software na nuvem

A computação em nuvem já está consolidada a alguns anos como uma excelente opção para aplicações simples ou complexas e seus recursos e serviços não param de crescer. Vide a AWS que já conta com mais de 100 serviços disponíveis em várias regiões do mundo.

Criar novas aplicações ou migrar do on-premise para a nuvem utilizando essa gama de serviços não é nada fácil. Por isso algumas práticas e estratégias devem ser seguidas para conseguir bons resultados e tirar todo o proveito dos serviços.

Quando criamos arquiteturas de sistemas, podemos fazer uma analogia com a construção de um edifício, se a fundação não for sólida, problemas estruturais podem aparecer. Ao arquitetar, não podemos negligenciar princípios básicos como os cinco pilares propostos pela AWS: confiabilidade, performance, otimização de custo, excelência operacional e segurança.

A incorporação desses pilares ajudará você a produzir sistemas estáveis e eficientes e permitir que se concentre em outros aspectos do design, como requisitos funcionais.

Confiabilidade

O pilar da Confiabilidade pode ser explicado pela capacidade de um sistema se recuperar de falhas de infraestrutura ou serviços, subir novos recursos dinamicamente para atender a picos de demanda ou se recuperar de interrupções, como configurações incorretas ou problemas de rede temporários.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Recuperação de testes: Geralmente quando executamos testes da aplicação é para provar que está tudo funcionando corretamente em um cenário específico, o teste não valida estratégias de recuperação caso ocorra algum falha em um componente do sistema. Na nuvem é possível validar como o seu sistema irá falhar e avaliar os procedimentos de recuperação em diferentes cenários ou recriar cenários em que aconteceram falhas anteriormente. É possível entender mais um pouco sobre recuperação de teste sobre a visão da Engenharia do Caos.
  • Escalar Horizontalmente: Uma arquitetura onde um grande recurso é dividido em vários recursos menores, possibilita que a alocação dinâmica seja feita em momentos de grande demanda, garantindo sempre o atendimento das requisições e eliminando o ponto único de falhas.
  • Não adivinhe a capacidade: É muito comum que em sistemas on-premise a alocação de recursos computacionais seja saturada, por conta do atendimento de altas demandas pontuais. Na nuvem, você pode monitorar a demanda e a utilização do sistema e automatizar a adição ou remoção de recursos para manter o nível ideal sem provisionamento excessivo ou insuficiente.

Performance

O pilar da Performance inclui a capacidade de utilizar os recursos de maneira eficiente e otimizada para atender os requisitos do sistema e manter essa capacidade mesmo com alteração da demanda.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Democratizar novas tecnologias: Algumas tecnologias podem ser difíceis de implementar ou pouco acessíveis devido a falta de conhecimento e complexidade de instalação. Ao invés de aprender como manter uma tecnologia, o mais fácil é apenas consumi-la como um serviço, por exemplo: bancos NoSQL e serviços de Inteligência Artificial.
  • Serviços Globais: Implemente facilmente o sistema em várias regiões em todo o mundo com apenas alguns cliques. Isso permite que você forneça menor latência e uma melhor experiência para seus clientes a um custo mínimo.
  • Serverless: Com arquiteturas Serverless não se faz necessário configurar e manter servidores para a sua aplicação e escalar recursos para altas demandas. Isso remove os problemas operacionais, reduz o custo da aplicação e atende globalmente os usuários.

Otimização de Custo

O pilar da Otimização de Custo pode ser resumido pela capacidade de executar aplicações pelo preço mais baixo comercialmente.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Adote um modelo de consumo: Pague apenas pelo tempo necessário dos recursos e aumente ou diminua o uso dependendo dos requisitos do negócio, sem precisar fazer previsões muito elaboradas de custo. Um exemplo são ambientes de desenvolvimento e testes que acabam sendo utilizados apenas 8 horas ao dia durante a semana. É possível pará-los quando não estão em uso e economizar até 75% do custo.
  • Não gaste dinheiro com operações: Elimine os gastos de manutenção de servidores, equipamentos de rede, resfriamento do datacenter e fornecimento de energia. Sem esses gastos e preocupações é possível focar nos clientes e projetos e não em infraestrutura de TI.
  • Análise da distribuição de custos: É possível identificar o uso e o custo de cada sistema que está rodando na nuvem de forma transparente. Isso ajuda a medir o retorno do investimento (ROI) e oferece uma oportunidade de otimizar seus recursos e reduzir custos.

Excelência Operacional

O pilar da Excelência Operacional é a capacidade de executar e monitorar sistemas para diminuir custos e melhorar continuamente os processos de otimização e suporte.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Infraestrutura como código: Da mesma forma que o código é utilizado para construir uma aplicação, por ser utilizado também para construir e manter a infraestrutura de todo o seu ambiente na nuvem. Você pode utilizar scripts para automatizar procedimentos operacionais que podem ser disparados automaticamente, limitando erros humanos.
  • Alterações frequentes, pequenas e reversíveis: Projete a utilização dos recursos para permitir que os componentes sejam atualizados frequentemente. Faça pequenas alterações incrementais que possam ser revertidas em caso de falha.
  • Antecipe falhas: Realize testes para identificar potenciais falhas e monitore para aprender e melhorar o processo. Crie cenários onde os procedimentos de respostas sejam acionados para garantir que sejam eficazes e que as equipes conheçam a sua execução.

Segurança

O pilar Segurança se resume pela capacidade de proteger informações e sistemas, ao mesmo tempo em que agrega valor aos negócios por meio de avaliações de risco e estratégias de mitigação.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Rastreabilidade: Monitore, alerte e analise as transações do seu ambiente em tempo real. Utilize logs e métricas de integração com sistemas para responder e agir automaticamente.
  • Proteja os dados: Utilize mecanismos, como criptografia ponta a ponta, tokens e controle de acesso, quando apropriado.
  • Afaste as pessoas dos dados: Crie mecanismos e análise ou elimine a necessidade de acesso direto ou processamento manual de dados. Isso reduz o risco de perda ou modificação e erros humanos ao manusear dados confidenciais.

Conclusão

Seguir as práticas dos cinco pilares da arquitetura em nuvem para projetar e operar suas aplicações, fará com que elas sejam seguras, confiáveis e eficientes economicamente. Você estará aproveitando todas as vantagens que a nuvem tem a oferecer e poderá focar seus esforços nos clientes e requisitos funcionais.

Samuel Pisa

Samuel Pisa

Desenvolvedor de Software na Tegra Soluções Digitais

E-mail: samuel.pisa@tegra.com.br

Bem estar no ambiente de trabalho

Bem estar no ambiente de trabalho

Vivemos uma mudança importante na forma de enxergar o ambiente de trabalho.  Os colaboradores hoje valorizam além de remuneração e benefícios, o local e cultura das Organizações, afinal, passamos grande parte do nosso dia na empresa.

“A qualidade de vida no trabalho está relacionada ao conjunto de ações que uma organização aplica para oferecer condições plenas de trabalho, desenvolvimento humano, bons relacionamentos interpessoais e bem-estar dentro e fora da empresa.” Sociedade Brasileira de Coaching, 2017.

Existem várias formas de promover o bem estar aos colaboradores, dentre elas podemos citar, a cultura. Empresas que favorecem interação, relações respeitosas e líderes colaborativos ganham em muito na qualidade de vida de seus colaboradores.

Empresas como GE, Vale, Unimed e Delloite organizam campeonatos esportivos para incentivarem a prática do esporte, da saúde e dos relacionamentos interpessoais.

O estímulo do espírito de equipe faz toda a diferença para Organizações e aos líderes engajados, pois os resultados são mensurados através de objetivos coletivos e não individuais, o que aumenta a produtividade de forma exponencial.

Empresas que oferecem oportunidades claras de futuro têm colaboradores mais motivados, já que estes veem as chances de evoluir em sua carreira de uma forma palpável, e por isso, se dedicam ainda mais.

A flexibilidade é outro fator importante, tanto para o cumprimento da carga horária, como forma de execução do trabalho. O aumento do “Home Office” é significativo nos últimos anos, principalmente em grandes metrópoles, e a tendência é que continue neste crescimento.

Muitas Organizações contam com ambientes descontraídos, chamados entre tantos nomes, de “ descompressão”, para que os colaboradores descansem entre as atividades e interajam com a equipe, alguns contam com videogame, mesas para jogos, espaços para leitura, levando em consideração cultura e maior interesse dos colaboradores.

É essencial portanto que itens como ergonomia, segurança, iluminação, temperatura, sonoridade e higiene sejam itens indispensáveis para todas as Organizações, da menor a maior.

Segundo a “Revista Forbs”, de 2018, o bem-estar dos funcionários têm impactos mais profundos. A revista “Harvard Business Review” publicou que, em média, empregadores que investem em saúde e bem-estar viram US$ 6 em economias de saúde para cada dólar aplicado nesse tipo de iniciativa. A instituição de pesquisas e análises Rand Corporation estima que o ROI (retorno sobre investimento) para negócios em geral é de US$ 1,50 para cada dólar gasto, enquanto a média para a prevenção de doenças é de US$ 3,80 para cada dólar investido.

Esse tipo de postura aproxima a Corporação do colaborador, o que melhora o clima organizacional e contribui para que o funcionário se sinta valorizado.

“A verdade é que ninguém é feliz por ser bem-sucedido, a pessoa é bem-sucedida porque é feliz!” Sociedade Brasileira de Coaching, 2017.

É importante compreender que a qualidade de vida no trabalho não está atrelada somente  à área profissional ou é apenas de importância das empresas, sendo um item importante para saúde física e mental do bem mais precioso das Organizações: as pessoas!