Como se tornar relevante na área de tecnologia sem perder a humildade ou ser um rockstar

Se sobressair na área de tecnologia não é a tarefa mais simples. Para piorar, é comum ver empresas anunciando vagas com títulos audaciosos, como “Procura-se desenvolvedor rockstar”. Mas o que significa ser um “rockstar” na área de tecnologia? Será que isso é mesmo positivo?

Tirinha desenvolvedor rockstar

O ego é perigoso. Se espelhar em grandes nomes, como Steve Jobs e Linus Torvalds, é uma faca de dois gumes: você pode evoluir o talento que já tem, ou se tornar arrogante na área de tecnologia. É o que explica Gabriel Ferreira, desenvolvedor, instrutor e criador de conteúdo na Alura e grupo Caelum.

Para Gabriel, existem formas mais efetivas de se tornar relevante na área de tecnologia. E o melhor: sem abrir mão da empatia e da humildade!

Esses métodos foram explicados em forma de Lightning Talk, uma palestra rápida, durante a Semana do Programador na DB1. Aqui, disponibilizamos o vídeo completo para você.

Confira o melhor caminho para se destacar na área de TI:

Este Lightning Talk fez parte da nossa Semana do Programador! A última apresentação será postada no blog na próxima terça:

  • O dia a dia de um desenvolvedor com deficiência visual- Alexandre Costa (20/nov)

Veja também o Lightning Talk da semana anterior, sobre Segurança, Tecnologia e Inovação.

Acompanhe o blog para não perder os conteúdos. E se você quer receber mais informações sobre desenvolvimento de software, assine a newsletter da DB1 IT Services.

Lightning Talk – Um bate-papo sobre segurança, tecnologia e inovação

Para falar de Bitcoin e Blockchain, antes precisamos entender a evolução dos meios de pagamento. A necessidade de segurança é algo que a tecnologia vem tentando solucionar com suas inovações. Mas como isso funciona, na prática? Você sabe o potencial da Blockchain e o motivo para Bitcoin ser uma coisa tão revolucionária?

O Lightning Talk ministrado por Amanda Lima é assim: um bate-papo para que todas essas questões sejam respondidas. Mais do que isso, a intenção de abrir esse diálogo é enxergarmos para onde estamos indo, e como e tecnologia pode preencher outros gaps da sociedade.

Assista o Lightning Talk para entender:

  • A evolução dos meios de pagamento
  • Por quê o Bitcoin é revolucionário?
  • O potencial de tokenização em blockchain
  • A Disrupção do setor de serviços
  • Blockchain e a Lei Geral de Proteção de Dados (LGPD)
  • A função da inovação para a sociedade

Leia mais

É possível estimar desenvolvimento de software em Pontos de Função?

Quando pensamos em produtividade, a grosso modo significa a relação entre a quantidade produzida de algum “item” ou serviço dividida pelos insumos ou recursos necessários para sua produção. Ou seja, o conceito produtividade pode ser aplicado em qualquer tipo de trabalho e/ou serviço quando tratamos do meio empresarial. O maior desafio da maioria das empresas é ter uma alta produtividade, com produtos/serviços de qualidade e baixo custo de execução.

Os Pontos de Função no contexto de desenvolvimento de software

Pontos de função em desenvolvimento de software

Em uma fábrica de produtos como pneus, parafusos, portas, etc. definir as variáveis que serão utilizadas para o cálculo de produtividade é relativamente simples quando comparamos com fábricas de serviço, ou sendo mais específico, uma fábrica de software. Isso pois um sistema não depende de uma máquina programada para executar o serviço, depende exclusivamente de desenvolvedores de software, que são pessoas capacitadas para tal atividade, e como todos sabemos, pessoas nunca são iguais. Leia mais

Lightning Talk – A viewpoint about DevOps

Como definir o que é DevOps? Essa tarefa é muito difícil. É por isso que o Lightning Talk de hoje é intitulado “A viewpoint about DevOps” (Um ponto de vista sobre DevOps). Tiago Bono apresenta seu ponto sobre os seguintes tópicos:

  • O que é DevOps?
  • Por que e como usar DevOps?
  • O que DevOps NÃO é?
  • Princípios de DevOps
  • Como pensar DevOps para cada tipo de equipe e necessidade

Além disso, Bono encerra com um outro conceito: Teoria das Constraints.

Entenda DevOps em 15 minutos:

Este Lightning Talk fez parte da nossa Semana do Programador! Outras 4 apresentações serão postadas no blog nas próximas terças:

  • Um bate-papo sobre segurança, tecnologia e inovação – Amanda Lima (6/nov)
  • Como se tornar relevante na área de tecnologia sem perder a humildade ou ser um rockstar – Gabriel Ferreira (13/nov)
  • O dia a dia de um desenvolvedor com deficiência visual- Alexandre Costa (20/nov)

Veja também o Lightning Talk da semana anterior, sobre Progressive Web Apps.

Acompanhe o blog para não perder os conteúdos. E se você quer receber mais informações sobre desenvolvimento de sistema, assine a newsletter da DB1 IT Services.

Até a próxima!

Lightning Talk – Progressive Web Apps, será essa a nova tendência!?

Você já ouviu falar de Progressive Web Apps (PWA)? Talvez não conheça pelo nome, mas certamente essa metodologia já te salvou como usuário.

Isso mesmo, como usuário! É simples: se alguma vez você conseguiu acessar uma página web em seu celular sem conexão, isso só foi possível pela PWA.  É ela que te livra do “jogo do dinossaurinho” e permite acesso a determinados sites mesmo em modo avião. Vamos entender mais sobre Progressive Web Apps? Leia mais

Lightning Talk: Teste unitário no Front-end. Tá na hora de perder o medo!

Lightning Talk - Teste unitário em Front-end

Você já parou pra pensar por que quase ninguém faz teste unitário no Front-end? Testar não é algo simples nem no desenvolvimento de software, no desenvolvimento web então…existem algumas barreiras que podem deixar qualquer um tenso sobre testes.

O que é teste unitário?

Talvez seja a primeira vez que você ouve falar nisso. Fique tranquilo! Vamos contextualizar o que são testes unitários.

Imagine um enorme quebra-cabeças. Esse é o sistema, visto de um modo geral. Ele foi criado a partir da união de peças menores que se encaixam, correto? Pois bem, o teste unitário nada mais é do que o teste de cada peça separadamente. Isso significa mais organização e segurança de que mudanças serão identificadas antes de quebrar o resto da aplicação. Leia mais

Lightning Talk – Information Security: How to translate it into code

Vamos para o primeiro Lightning Talk totalmente em inglês divulgado no Blog DB1! Essa palestra de apenas 10 minutos tratou do tema Segurança da Informação, e de que formas podemos proteger dados mesmo não sendo um Técnico de Segurança da Informação. Você vai descobrir:

O que é Segurança da Informação?

Muito se fala sobre proteção de dados, mas já se perguntou que dados são esses? Como saber se um dado precisa de segurança?

No desenvolvimento de software, a segurança deve ser pensada em todas as etapas. Confira os incidentes mais recentes de segurança da informação, descubra o que é a OWASP e como ela pode te guiar para um desenvolvimento sem brechas para ataques.

Essas e outras respostas, você verá no Lightning Talk de Emerson Castilho e Marcelo Benesciutti. Assista abaixo para entender.

Confira tudo em menos de 15 minutos

Saiba mais sobre a OWASP aqui. Se você ficou interessado em Cornucópia, temos um artigo completo cobre o jogo.

Não se esqueça de compartilhar para que mais pessoas possam desenvolver aplicações com segurança!

Por que utilizamos Single Page Applications – SPA?

Atualmente é comum nos depararmos com projetos desenvolvidos em vue, react, angular, ou construídos sobre o modelo de SPA, mas você já se perguntou o por quê? Para responder melhor essa pergunta, vamos entender melhor como as coisas funcionam:

MPA – Multiple Page Application

Modelo convencional de construção de software front-end.

via GIPHY

Sempre que abrimos uma página na internet as informações apresentadas na tela são carregadas de algum lugar, seja uma imagem, um vídeo, ou um json. Tudo vem de algum lugar, tudo chega ao usuário através de uma request. Se você quiser visualizar o impacto que isso gera, entre em um site qualquer, abra o devtools do seu navegador (tecla F12 geralmente), vá até a guia Network e atualize a página. Cada item presente nessa seção é uma request que foi processada e solicitada pelo browser.

Agora imagine que sua aplicação precisa exibir a informação do usuário logado em todas as páginas. A página é acessada, a solicitação é disparada, o banco de dados é consultado, o resultado é formatado e então exibido para o usuário. Após isso ele navega para outra página, e o fluxo descrito acima é executado novamente, e novamente para cada página que for carregada.

E por que isso é ruim?

Vou te responder com duas outras perguntas:

  1. Você está acessando um software pelo 3G/4G do seu celular. Você prefere que os dados sejam recarregados a cada nova operação que você faz, consumindo tempo e dados do seu pacote, ou que sejam carregados uma vez e recarregados apenas se necessário?
  2. Você publicou um software na nuvem, e o mesmo possui um limite de 30gb de transferência de dados mensal. Você prefere gastar esses 30gb da melhor maneira possível, ou gradativamente com flood de informações repetidas?

Basicamente processamento é dinheiro, tanto no servidor, quanto no lado do cliente.

E como melhorar isso?
Construindo uma aplicação baseada em Single Page Application.

Single Page Application

via GIPHY

Mais e se minha aplicação tiver mais de uma página?

Calma, não é bem assim que funciona. Single page application quer dizer que o browser vai renderizar o core da aplicação apenas uma vez, todas as outras informações serão carregadas por demanda, de acordo com a necessidade do usuário.

Além de gerar menos custos para renderizar a página, o modelo SPA ainda oferece uma melhor experiência para o usuário pois o mesmo não terá que ver a página recarregando completamente inúmeras vezes. Também podemos adotar estratégias de caching, como service workers (futuramente farei uma postagem abordando esse assunto), para otimizar ainda mais a performance da aplicação.

Ainda é possível compilar a mesma aplicação para Desktop ou Mobile utilizando ferramentas como Electron ou Cordova, tendo então uma aplicação multiplataforma com um único código fonte.

Quando falamos de front-end, naturalmente falamos de javascript, e criar uma aplicação num modelo SPA é o melhor custo benefício. Existem excelentes frameworks SPA, como por exemplo: VueJs, React e Angular. E é muito mais fácil desenvolver uma aplicação utilizando tais frameworks.

Mas tome cuidado, SPA não é bala de prata.
Não é uma solução que resolve qualquer problema.

via GIPHY

Existem alguns pontos que você deve tomar cuidado:

Como o conteúdo da aplicação é carregado por demanda, isso quer dizer que tudo é carregado em tempo de execução, as famosas requests ajax. E qual o problema disso? Motores de busca captam apenas as informações de conteúdos estáticos, carregados pelo server side. Ou seja, se sua aplicação necessita de SEO, sugiro que esteja preparado para trabalhar com SPA SSR (Server Side Rendering*), ou trabalhar com MVC / MPA, depende muito do seu conhecimento e do tamanho do projeto.

Existem também aplicações “híbridas”. É comum encontrar e-commerces que tratam toda a parte de produto como MPA, e a parte de carrinho, cadastro e checkout como SPA. Isso é uma forma comum de resolver tanto problema de recarga de informações, quanto o de usabilidade.

*SSR: É aquilo que é carregado previamente, antes de chegar até o navegador. Se você abrir um site e ir até o menu Exibir > Código Fonte, geralmente CTRL + U no seu navegador, o conteúdo que você verá nesse momento será aquilo que foi carregado pelo servidor, e é esse o código que os motores de busca enxergam.

Mais então quando usar SPA, e quando não usar?

via GIPHY

Comece avaliando o conhecimento tecnológico da sua equipe, pois o melhor modelo para construir um software é aquele que sua equipe domina, e não o que está mais no hype. Porém, é sempre legal conhecer coisas novas, e a curva de aprendizado de SPA e seus frameworks é relativamente baixa. Seu projeto tem tempo para aprendizado? Se sim, pense em começar com SPA, se não, siga pelo seguro.

Meu projeto é pequeno, tudo bem eu utilizar MPA? Sim, e não. Primeiro que um projeto pequeno pode rapidamente crescer e tornar-se um grande projeto, e segundo que ainda que seja pequeno em números de funcionalidades, pode ser grande em fluxo e tráfego de acessos. Devido a esses fatos acredito que o tamanho do projeto não deva interferir nessa decisão, e sim o que é o projeto. Isso vai te ajudar a decidir se é melhor utilizar SPA ou MPA.

“Meu projeto precisa de um certo foco em SEO, é possível utilizar SPA nestes casos?” Sim! Existem várias abordagens para tornar uma aplicação SPA SEO Friendly, como SSR e pré renders. Porém lembre-se, enquanto SPA precisa de tempo e esforço para configurar SSR e então suportar SEO, MPA já possui este recurso “nativo”.

E como começar a trabalhar com SPA?

Quando se fala em SPA, o primeiro ponto que precisamos entender é: JavaScript. Tudo passa a tratar-se de javascript, é ele quem vai controlar suas rotas, fazer suas requests, trabalhar os seus dados e sua aplicação vai passar a ter mais poder e autonomia.

Embora SPA tenha suas desvantagens, existem muitas razões para querer usar. Não é à toa que é o modelo de aplicações front-end mais utilizado da atualidade. E o legal é que como trata-se de javascript, a comunidade por trás disso é gigantesca. Existem inúmeros frameworks destinados a trabalhar com SPA, porém atualmente destacam-se três: VueJs, React e Angular. A curva de aprendizado desses frameworks varia de acordo com seu conhecimento em JavaScript (ES5) e EcmaScript 6, entre eles eu particularmente recomendo o VueJs por possuir a menor curva de aprendizado e por outros motivos que irei abordar em outro post aqui para o Blog da DB1.

E ai, deu pra entender os pontos fortes e fracos do SPA?

Vou ficando por aqui, até a próxima!

Leia mais

As Pragas do Teste de Software – Parte 2

Na primeira parte do artigo sobre as pragas do teste de software, abordamos sobre as pragas da repetitividade, da amnésia e do tédio. Caso não tenha lido, pode acompanhar a leitura aqui.

Já nessa segunda parte, iremos falar sobre mais algumas pragas: 

  • A praga da casa nova (The Plague of Homelessness) 
  • A praga da cegueira (The Plague of Blindness)

A praga da casa nova (The Plague of Homelessness)

Essa praga se inicia com uma pequena definição, são dois grupos distintos que encontram bugs com frequência: os testadores e os usuários, que acabam se deparando com os erros quase que na maioria das vezes sem querer. Isso acontece com a combinação da interação da aplicação com usuários reais, utilizando dados reais e em um ambiente real.  Leia mais

Software parametrizável ou personalizável, qual a melhor estratégia para desenvolvimento?

É muito comum que empresas sofram as consequências de um legado de decisões tomadas sem considerar os impactos. Para qualquer empresa que desenvolva software, decidir quando e como deve-se modificar o sistema é um trabalho que exige responsabilidade, pois muitas vezes os reveses de ter que sustentar tal código custam mais do que escrevê-lo. 

São diversas as estratégias que podem ser adotadas para desenvolver soluções sistêmicas. Por exemplo: desenvolver de forma unitária e escalável “software de caixinha”; com componentes acopláveis; parametrizável, com opções de ligar ou desligar rotinas; personalizável, que permita codificar soluções em cima de um core base; etc. Vale lembrar que cada uma delas tem suas vantagens e desvantagens, pois tudo depende do problema que se pretende resolver. 

Escolhendo a melhor estratégia de desenvolvimento para cada perfil de empresa 

A estratégia adotada na concepção de uma solução sistêmica pode mudar muito dependendo de qual objetivo se pretende alcançar. Um fator importante é: para quem está sendo desenvolvido? Ou seja, qual o perfil do seu público-alvo? 

Para ser mais específico, tomaremos como base uma solução ERP (sistema integrado de gestão). Assim podemos imaginar situações práticas e definir cenários hipotéticos para cada perfil de empresa. 

Dependendo do movimento operacional,  estratégia e capacidade financeira, as empresas podem: querer melhorar seus processos, apenas sistematizar processos que já estão bem definidos, estar focadas em melhorar seus resultados, dentre muitos outros objetivos. Vamos entender três perfis de empresas e que tipo de solução pode ser mais adequada.   Leia mais