Uma horta de folhas

Cultura

Cultura… Quantos significados diferentes tem essa palavra! Possivelmente, você já tenha pensado na relação entre cultura no sentido de “cultura de um povo” e cultura no sentido de “cultivo de alimentos” (como cultura de brócolis, cultura de alface etc.).

A cultura de um povo funciona da mesma maneira que a agricultura: você produz, você consome, você colhe o que planta.

Muitas pessoas se enxergam como alheias à cultura. Elas acham que estão fora do sistema.

Porém, quem é que está de fato fora do sistema? Ninguém. Todo mundo produz alguma coisa, todo mundo consome alguma coisa. Um simples parágrafo que você escrever no Facebook será lido por muitas pessoas e influenciará, direta ou indiretamente, as ações dessas pessoas.

Tudo o que se faz tem consequências. Se você estudar mais hoje, terá mais conhecimento amanhã. Se você tratar sua família melhor hoje, terá uma relação melhor com ela amanhã.

Todo mundo é responsável pelo que faz. Somos vítimas ou protagonistas? Vi essa ideia numa palestra de Érica Briones, no TDC São Paulo 2015. Você pode enxergar uma relação entre você e tudo o que o cerca e ter o poder de mudar as coisas, ou considerar-se vítima de tudo e achar que não pode mudar nada. Dos dois jeitos, você estará certo.

A cultura funciona assim, também. Tudo o que você enxerga nas ruas, nas aulas, na televisão e nas empresas é resultado daquilo que cultivamos, tanto no presente como no passado (ambiguidade oportuna do verbo!). Você pode viver de qualquer jeito, ou pode ser seletivo e abandonar o que é ruim e potencializar o que é bom. A escolha é sua! Aliás, a escolha é nossa!

historia

10 dicas para falar bem em 2016

Todo profissional de hoje em dia precisa se manter atualizado. Confira aqui as principais tendências em substituição de termos de 2016 para não fazer feio ou ficar parecendo que você nasceu no século XX.

Termo ultrapassado Termo atualizado Explicação
Encontro Meetup (pronúncia: mitap) Encontro? Que romântico… Não queira ter um desses com seus colegas de trabalho. Convide-os para um meetup e resolva tudo em um ambiente muito mais up.
Palestra Talk (pronúncia: toque) Conhece a palestra? Aquela coisa chata do seu tempo de escola, em que quem fala é o detentor da verdade e os outros são meros ouvintes? Esqueça isso! Numa talk, todos têm voz. O conhecimento é construído colaborativamente, num espaço aberto às ideias de todos.
Empresa Startup (pronúncia: estartape) Quem gosta de trabalhar em empresa é Dilbert. Pessoas cool trabalham em startups. Não caia na armadilha de achar que startup é um modelo de negócios diferente. Qualquer empresa, nova ou antiga, pode ser startup, basta dizer que é. E as boas são.
Consciência Awareness (pronúncia: óu ernes) Se você não quiser parecer um espiritualista hippie, é melhor agir como um profissional aware de suas competências e dizer a mesma coisa em outra língua. Na melhor das hipóteses, pouca gente vai te entender. Na pior das hipóteses, ninguém vai associar sua fala a qualquer coisa de Buda ou Hare Krishna.
Faça você mesmo Do It Yourself (DIY) (pronúncia: dê-i-ípsilon) A ideia de fazer alguma coisa você mesmo foi concebida no estado de Ohio, no início dos anos 2000. Por isso, nada mais justo do que dar crédito aos americanos pela invenção. Lembre-se de dizer di-ai-uai para ficar mais chique e ser compreendido por todos.
Diretor executivo CEO (pronúncia: ci-i-ou) O que faz um diretor executivo? Dirige a execução das operações, certo? Fácil demais, essa… Se você for esperto e não quiser entregar o ouro desse jeito, aprenda com quem sabe fazer dinheiro: diga CEO fazendo cara de que sabe do que está falando.

Tem mais sugestões? Deixe seu feedback nos comentários!

licencas-de-software

Licenças de software: qual escolher?

Não conseguimos viver sem elas. MIT isso, GPL aquilo, LGPL aqui, BSD ali… E aí? O que elas permitem, o que elas proíbem, como aplicar corretamente?

Esse assunto é bem complexo. Um dia, ao perceber que não entendia nada dele, resolvi estudar. Percebi que entendê-lo a fundo realmente é complicado, pois a coisa é cheia de armadilhas e exceções. Porém, entendê-lo mais superficialmente é plenamente possível, e bem elucidativo!

Há alguns dias, em maio de 2016, ministrei uma palestra no TDC Florianópolis sobre o assunto. Nela, você pode conferir algumas dicas teóricas e práticas, que poderão ajudá-lo a dar os primeiros passos.

Boa leitura!

Acesse o conteúdo no Speaker Deck aqui: https://speakerdeck.com/awvalenti/licencas-de-software-qual-escolher.

muito-proximos-e-muito-distantes

Muito próximos e muito distantes

Quando eu era pequeno, meu passatempo mais maravilhoso era jogar videogame.
Para meus pais, eram apenas jogos. Para mim, eram sonhos.
Era uma viagem interdimensional. Era o passaporte para o mundo das ideias.
Era um mergulho profundo em um espaço lógico e lúdico.

Finda cada viagem, um novo André seguia o caminho de volta.
Um André mais vivido, mais preparado.
Com mais sonhos, alegrias, horizontes.

Um dia, um computador chegou até minha casa.
Era como um videogame, mas eu podia modificá-lo, instalar novas coisas.
E mais um universo se abriu para mim!
Aquelas cores, caracteres, sons… Atalhos de teclado…

Naquela época, um computador te levava a outros lugares.
Um computador não te dava respostas, te dava perguntas.
A sua imaginação preenchia as lacunas.

Um dia, ensinaram-me a programar, usando QBasic.
Nesse dia, um novo universo se abriu para mim.
Os caracteres, os sons, as cores… Agora, eu mesmo podia fazer tudo acontecer.

Agora, eu podia criar o que quisesse. Agora, eu começava a contar a estória.
Agora, eu era o narrador e o personagem principal.

Assim, eu encontrei minha profissão.

Penso nos computadores até a década de 90 como similares aos livros infantis. A história que eles contavam vinha pela metade; era você que completava a história, e fazia sua própria história. Era uma via de mão dupla.

Talvez seja isso que tenha me fascinado na Informática. Ela sempre foi, para mim, um mundo novo a ser descoberto.

E, depois, vieram muitas outras coisas: jogos por modem, internet, e-mail, ICQ… Redes sociais, MSN, Skype… (imagine, conversar com qualquer pessoa do mundo por voz e vídeo, sem precisar pagar por isso!)

Depois, vieram outros jogos, vieram aplicativos pela web como Google Docs… E, mais recentemente, veio a nuvem, o Dropbox, o Google Drive, o GitHub…

Um dia, entraram em cena os smartphones.

E, então, por algum motivo, eu não quis mais brincar.

Por algum motivo, senti que a brincadeira tinha ido longe demais. Por algum motivo, senti que as soluções começaram a surgir antes dos problemas. Por algum motivo, senti a presença de caroço nesse angu, e não o quis mais no meu almoço.

Era como se alguma coisa ruim tivesse acontecido no cenário tecnológico mundial. Alguns fantasmas começaram a assombrar o que antes parecia belo. Alguns interesses começaram a sobrepujar o que era simples. A complicação tomou conta do negócio.

De repente, toda aquela promessa de conexão entre as pessoas começou a ser descumprida. De repente, todas aquelas possibilidades maravilhosas começaram a ser esquecidas. De repente, uma enxurrada de novas manias começou a dominar as pessoas, tornando-as escravas. De repente, o sistema não ficava mais da tela para dentro, e, sim, da tela para fora. De repente, o programa começou a programar o usuário e o programador.

Alguma coisa triste se tornou o padrão. O excesso de padrões tornou a coisa triste. A coisa se entristeceu de maneira padronizada. Os fenômenos se tornaram epidêmicos, as opiniões se uniformizaram, as individualidades se apagaram. As minorias se coletivizaram, os coletivos se venderam, os robôs começaram a agir como pessoas e as pessoas começaram a agir como robôs.

Algo muito esquisito está acontecendo com os usuários da Informática, que hoje são quase todas as pessoas. As pessoas estão buscando o caminho, a verdade e a vida em pequenas caixas eletrônicas, cada vez menores e mais cansativas para a vista. As pessoas estão clicando em botões cada vez menores, escrevendo em espaços cada vez menores. As pessoas estão vivendo vidas cada vez mais virtuais.

As pessoas estão buscando a felicidade fora do endereço 127.0.0.1. As pessoas estão buscando o sucesso em modelos econômicos e administrativos que nem compreendem direito. As pessoas estão repetindo palavras cujo significado nem conhecem.

As pessoas estão falando coisas demais, estão dando opiniões demais, estão fingindo que entendem coisas que não entendem. Estão querendo ficar bem na foto, sem nem ter ficado bem no fato.

O que houve com a Informática? O que houve com as pessoas? O que houve com o mundo?

Cadê aquela inocência dos caracterezinhos coloridos em baixa resolução, que se juntavam àqueles sonzinhos simples de ondas quadradas, fazendo um esforço enorme para causar boa impressão? Cadê aqueles sitezinhos em HTML puro, todos em branco e preto, cheios de informações extremamente concisas e interessantes? Cadê aqueles joguinhos criativos que aproveitavam ao máximo aqueles 640KB de memória, proporcionando viagens fantásticas ao jogador?

Tudo parece estar tecnicamente fácil hoje em dia, mas as pessoas não parecem ter sido preparadas para isso. Elas acham que podem tudo, que devem fazer de tudo. Só que, quando pode tudo, nada vale; quando tudo é feito, nada é fato. Perde-se em relevância, falta critério, decência, limite.

Acorda, mundo! Nem tudo é interessante, nem tudo vale a pena, nem tudo é aceitável, nem tudo é bom.

Estamos vivendo uma crise de relevância no mundo. Estamos num vazio moral. Estamos sem saber direito por que acordar de manhã e dormir à noite. Estamos sofrendo de depressão. Fazemos de tudo, mas não sabemos por quê ou por quem, nem o que realmente deveria ser feito.

Estamos muito próximos de mudanças muito distantes.

generalidades

Generalidades

Inovação é uma das palavras da vez. Sabe o que isso significa? Significa que, agora, tudo é inovação, qualquer coisa é inovação. Afinal, ninguém quer ser considerado não-inovador, retrógrado, obsoleto.

O mesmo ocorre com a expressão em inglês full-stack developer. Sabe o que é um full-stack developer? Se você for da área de Informática, talvez saiba: um full-stack developer é um desenvolvedor de software capaz de trabalhar com desde o software que roda nos servidores (lidando com Java, Ruby, Python, PHP etc.) até o software que roda nos clientes (lidando com HTML, CSS e JavaScript).

É engraçado, porque, quando eu era mais novo, as pessoas que sabiam mexer com um pouco de tudo eram chamadas de outros nomes; eu me lembro da palavra generalista. Mas tinha uma diferença: ninguém se tornava melhor que os outros por ser generalista. Então, era uma coisa simples, um título sem nenhum juízo de valor, algo como você usar uma camiseta azul e o seu amiguinho usar uma camiseta verde.

Mas parece que as coisas mudaram no mundo… Parece que, hoje em dia, cada vez mais as pessoas querem ter títulos. E não são nem títulos acadêmicos, conquistados com muito suor; são títulos que as pessoas dão para si mesmas, tornando-se pessoas autointituladas.

Num mundo em que todos os desenvolvedores são full-stack developers, quem é que quer ser um desenvolvedor de meia-tigela? Num mundo em que todas as empresas são inovadoras, quem é que quer ser retrógrado?

Isso tudo me lembra do que o Kent Beck disse, no livro de TDD. Ele disse que aprendeu o seguinte: o sucesso de um nome novo depende muito de que o contrário dele seja negativo. Então, a programação estruturada fez bastante sucesso em parte porque ninguém queria ser desestruturado. Aí, ele escolheu o nome Test-Driven Development (Desenvolvimento Guiado por Testes), pois todo mundo iria querer ser guiado por alguma coisa.

Talvez, pior ainda do que ser meia-tigela ou retrógrado seja não ter título nenhum. Talvez, se você for apenas um desenvolvedor, ou apenas uma empresa (e não uma startup nem nada parecido), você esteja completamente fora de moda. Com isso, talvez você esteja automaticamente fora do mercado, não importando se você faça bem o seu trabalho ou não, não importando se você trate bem seus funcionários ou não. Aliás, tratar bem os funcionários só faz sentido se você puder dar um nome pomposo para isso e colocar no seu site para poder ganhar uns clientes, não é mesmo?

Pensando bem, talvez isso tudo não seja coisa de hoje em dia. Talvez seja apenas aquela retrógrada ideia de manter as aparências, uma coisa tão velha quanto o mundo. Talvez faça parte do ser humano… Se ele quiser que faça.

fim-do-twitter2

Andando para a frente 2

Neste artigo, de um mês atrás, eu mencionei que havia cancelado minha conta no Twitter. Também disse que teria 30 dias para rever minha decisão: se eu logasse de novo nesse prazo, teria minha conta de volta. Fiquei de vir aqui para contar a vocês o resultado!

O resultado é que, basicamente, não senti falta nenhuma do referido serviço! Uma vez ou outra, confesso que me peguei digitando twitter.com na barra de endereços do Chrome, mas logo percebi e lembrei: “Ah, é, eu cancelei minha conta!”.

Hoje, tentando acessar o antigo endereço do meu usuário, deparei com uma página de usuário inexistente, porém reparei numa coisa interessante: uma opção de buscar por menções ao meu nome de usuário. Fiz essa busca e achei interessante ver antigos tweets de amigos, conhecidos e desconhecidos.

Caso você tenha Twitter ou já tenha tido, sugiro essa experiência: busque pelo seu nome de usuário. Você fará uma rápida viagem no tempo. Se quiser ver como foi a minha, clique aqui!

vapor-de-conteúdo

Vapor de conteúdo

Para quem não conhece, Steam é uma plataforma de compra de jogos para computador pela internet. É bem antiga, deve ter mais de 10 anos, e tornou-se referência no assunto. Eu diria que todos os jogos mais famosos (e também os menos famosos) estão à venda no Steam.

Ou seja, o Steam serve para jogar, certo? Jogar é sua funcionalidade mais importante; sem ela, todo o resto não faria sentido nenhum. Hoje, ao entrar nele para jogar um jogo que baixei ontem, percebi uma coisa bem interessante. Observe a imagem acima e responda: onde está a opção de jogar?

Fora a propaganda pop-up que eu não incluí na foto, temos uma mensagem grandona dizendo para eu proteger minha conta, temos a aba LOJA como principal… Também temos opções de BIBLIOTECA, COMUNIDADE e o meu usuário. Temos ADICIONAR JOGO, VER LISTA DE AMIGOS, leve-me à loja, Baixar o aplicativo… Temos a incrível Nova insígnia da comunidade…

Se você olhar com muita atenção, verá um pequeno item de menu Jogos lá no alto, ao lado de Ajuda. Além disso, descobri que também é possível ver os jogos clicando em BIBLIOTECA. Nada muito intuitivo.

Isso representa bem o que a sociedade está nos dizendo hoje: compre muito, socialize um monte, conte tudo para todo mundo, cuide bem da forma… E esqueça o conteúdo.

Você quer viver assim?

 

a-vida-e-assim

A vida é assim

A vida é assim:

  • Siga as regras. Quebre as regras.
  • Conforme-se. Inconforme-se.
  • Mude. Mantenha.
  • Ouça mais do que do diga. Diga mais do que escute.
  • Reflita antes. Aja logo.
  • Comporte-se. Perturbe-os.
  • Compreenda. Condene.
  • Respeite os mais velhos. Respeite os mais novos.

Se você quiser se contradizer, um jeito bem fácil é tentar fazer uma afirmação universal. Mais cedo ou mais tarde, terá que engoli-la a seco.

 

fim-do-twitter

Andando para a frente

Muita coisa acaba nessa vida, e hoje chegou o dia de uma delas! Eu já estava adiando esse momento havia muito tempo, e hoje ele finalmente chegou.

No caso, estou falando da minha conta no Twitter. Já faz tempo que, quando eu entro no Twitter, vejo pouca coisa útil. A maior parte é de clichês. Textos do tipo “Why bla bla bla is blé blé blé”, “Os 15 piores jeitos de bli bli bli”, fotos fazendo caretas, retuítes aos montes… Parece que ninguém está falando por si mesmo, só estão quase todos repetindo os velhos clichês.

Sim! Tomei a decisão: cancelei minha conta.

O Twitter também já me trouxe muita coisa boa. Fiquei sabendo de vários eventos de desenvolvimento de software por meio dele; fiquei sabendo da existência do podcast The Distance por meio dele (sobre longevidade de negócios, com o selo de qualidade Basecamp); fiquei sabendo de vários textos interessantes por meio dele.

Só que chegou a hora do chega.

Assim como acontece quando você cancela Facebook, você tem um prazo de 30 dias para mudar de ideia. Se, nesse período, você logar de novo, estará lá tudo de volta. Diz a lenda que nunca nada é apagado de verdade; que, se você fizer login depois de anos, vai continuar tudo lá. Bom, eu não pretendo fazer esse teste!

De qualquer maneira, tenho 30 dias para revogar minha decisão. Será que isso vai acontecer? Mês que vem a gente se vê aqui no blog de novo e eu conto!

oo-trabalho-equipe

Orientação a objetos == trabalho em equipe

Hoje, durante o banho, concluí algo que achei interessante o suficiente para vir escrever aqui no blog.

Código bem orientado a objetos é igual a trabalho em equipe. Cada classe faz uma pequena parte do trabalho e nenhuma é mais importante do que as outras. Juntas é que são poderosas; sozinhas, não são grande coisa.

Código sequencialzão é exatamente o oposto. É igual a trabalho individualista. As classes/funções fazem muita coisa, sabem muita coisa, carregam muito peso. E têm dificuldade de interagir. Sozinhas é que são poderosas; juntas, não são grande coisa.

Ministro a disciplina de Programação Orientada a Objetos e percebo que muitos alunos têm dificuldade de entender conceitos como herança, polimorfismo, coesão e acoplamento. Eles às vezes acham essas coisas meio complicadas. Ao implementar novas funcionalidades em um sistema, em vez de repensar a estrutura, preferem escrever mais linhas de código nos métodos já existentes. E, assim, surgem vários novos comandos if, else e new, aumentando complexidade e acoplamento.

Quando você faz software no mundo real, você nunca faz tudo sozinho. Em vez disso, usa a biblioteca-padrão e/ou bibliotecas externas, troca ideias com os colegas, adota padrões de design

É por isso que orientação a objetos é importante. Vale a pena o trabalho extra de criar interfaces, injetar dependências, reduzir acoplamento, aumentar coesão e usar padrões? A resposta geralmente é… SIM! Porque, no mundo real, a gente trabalha em equipe. Mesmo que essa equipe seja apenas você, sua linguagem de programação e seu framework web. Já será o suficiente para precisar de uma divisão do trabalho. E, para dividir o trabalho no código, nada melhor que interfaces, coesão e padrões de design.

Trabalhar em equipe desonera os indivíduos, mas onera a integração. Código sequencialzão é difícil de manter, mas é fácil de escrever. Tudo tem seu preço, assim na Terra como no software.

(Alguma semelhança com a discussão “microsserviços x arquiteturas monolíticas”?)