Android Developer Challenge
12 Novembro, 2007
Se uma empresa produz sistemas operacionais e deseja que a sua plataforma domine o mercado, ela tem duas opções:
- Colocar o seu CEO num palco de uma conferência, e pedir que ele fique gritando “developers, developers, developers” até perder a voz.
- Prover um ambiente de incentivo econômico para que desenvolvedores utilizem a sua plataforma, no lugar de outras alternativas.
Imagino que o pessoal da Google tenha respeito por suas cordas vocais, pois eles optaram pela segunda opção. Foi anunciado o Android Developer Challenge. A “competição” prevê prêmios para pessoas que desenvolvam novos aplicativos para a plataforma Android, totalizando até US$10 milhões.
Enquanto não há nenhum handset fabricado e pronto para o mercado, os prêmios serão pagos para as melhores propostas e idéias mais promissoras que possam fazer uso da tecnologia oferecida pelo Android. Até o começo de março de 2008, serão aceitas propostas de aplicativos. As 50 melhores propostas receberão um prêmio de US$ 25 mil. Depois disso, quando os celulares começarem a entrar no mercado e os aplicativos já puderem ser testados em campo, serão premiados os 20 melhores (entre os 50 qualificados), com prêmios de US$ 100 mil e US$ 275 mil.
A iniciativa é um reflexo dos tempos. Numa época em que aparelhos celulares são oferecidos de graça por operadoras de telefonia e que esses aparelhos são capazes de rodar sistemas operacionais livres, gratuitos e de qualidade, é difícil conseguir penetração em um mercado maduro. A alternativa, então, passa a ser fomentar desenvolvedores e criar um ecossistema de inovação na sua plataforma.
Alguém aí quer participar? Entre em contato.
USP e Unicamp entram na lista das 200 melhores Universidades do mundo.
10 Novembro, 2007
Nóis é pobre, mais nóis é bom de pesquisa, mané!
Um relatório publicado pelo The Times Higher Education Supplement mostra o resultado de uma pesquisa feita entre os acadêmicos, empregadores e estudantes para avaliar a qualidade das universidades. Esse ano, percebe-se o notável crescimento das universidades da Inglaterra e uma agradável surpresa para os nativos da Banânia: a USP e a Unicamp aparecem listadas.
Reportagem sobre o assunto, e a lista de todas as 200 melhores universidades que eu puxei do site do THES.
PC 2.0
6 Novembro, 2007
Enquanto boa parte da molecada por aí que ainda não aprendeu a pensar por conta própria ficou triste com o anúncio da Google que encerrava as especulações sobre o gPhone, ficando sem imagens que pudessem copiar para os seus (spam-)blogs, e por tabela sem assunto para entupir os agregadores de conteúdo com notícias idênticas, o “velhaco” aqui parou para pensar no impacto e no potencial futuro da Open Handset Alliance. Eu vi, e gostei. Um plano como esse é uma lição clara de quem aprendeu com o Passado para pensar o Futuro.
Se você não entendeu o que estou falando, fique tranquilo. Vamos por partes.
Computação Pessoal
Computeiros, tautologicamente, têm suas vidas focadas no computador. Ficamos com o tocador de música ligado o dia inteiro, com nossas coleções imensas de canções nem sempre obtidas legalmente. Resgatamos contato com nosso amigo que se mudou para o Curdistão para popularizar o futebol de botão. Mantemos nossas memórias, vídeos, fotos, cartinhas de amor que queríamos enviar para a nossa musa mas ficamos com vergonha de mandar, já que você, no fundo, no fundo, sabia que não era muito romântico declarar algo como “você é tão bela quanto a Lara Croft no Tomb Raider 2″. O computador é o meio, começo e o fim de boa parte de nosso cotidiano.
Para nós e para os profissionais que já estão fazendo parte diretamente ou indiretamente da Economia Digital, a linha que separa o computador-pessoal do computador-ferramenta-de-trabalho é tênue, cada vez mais imperceptível. Entretanto, há muitos outros que olham o computador como uma besta indomável, complexa, para não dizer supérflua.
Isso não quer dizer, entretanto, que eles estão livres da evolução tecnológica. Mesmo aqueles que se recusam a sentar na frente de um monitor estão fazendo parte da revolução que começou nos anos 80, da Computação Pessoal.
Vou tentar simplificar: Computação Pessoal é tudo que envolve o uso de um computador, cuja finalidade principal não é o trabalho. Aquela viagem chata que você levava o Game Boy? Computação Pessoal. O seu primeiro Discman? Computação Pessoal. O seu decoder de tv a cabo? Câmera Digital de 32 Gigapixels? Tudo é Computação Pessoal.
O ponto mais interessante. Mesmo os tecnófobos, estes que não sabem nem mexer em um mouse, provavelmente têm o seu “Computador Pessoal”. À diferença de nós, estes fazem uso da tecnologia através de outro dispositivo. Para eles, o PC é outro e cabe no bolso: é o telefone celular.
Acho que o que eu escrevi acima não é nenhuma novidade. A velocidade do ciclo de desenvolvimento dos aparelhos celulares, as toneladas de funcionalidade presentes nos aparelhos mais básicos, as inúmeras apresentações de executivos falando sobre a questão da convergência digital, etc, etc. Você não precisa de mais um blogger chato querendo dizer “Eureka! Celulares vão se tornar tão poderosos quanto computadores”, não é mesmo?
Padronização do Desktop: um pouco de História.
Computadores, hoje, são quase oni-presentes e aparentemente são bastante diferentes. Mas, por baixo de marca, gabinete, ou até mesmo sistema operacional, todos acabam sendo muito parecidos. Todo mundo (e por todo mundo, entenda “mais de 99,99% dos consumidores normais”) tem um computador que usa um chip com arquitetura x86 (ou alguma extensão dela, como a x86-64). Placas auxiliares são instaladas em slots padronizados (AGP, PCI ou PCI-x). Periféricos se comunicam através de USB. Comunicação sem fio é predominantemente feita por Wi-Fi (802.11*).
Tudo isso não acontece por acaso. São padrões determinados pela indústria, com o propósito primário de facilitar o desenvolvimento e a fabricação de componentes para um sistema complexo. Assim, subsistemas desse sistema complexo podem ser trocados com razoavel segurança. Assim como eu sei que eu posso colocar qualquer motor elétrico de 110V na tomada aqui de casa, eu sei que eu posso comprar qualquer Pen Drive USB para o meu computador, e sei que vai funcionar.
É claro que essa padronização não surgiu de uma hora para outra. Os primeiros mini-computadores e computadores que pretendiam ser de uso doméstico tinham arquiteturas completamente diferentes entre si. Um computador como o Altair rodava apenas programas feitos para ele, e era arquiteturalmente diferente de um TRS-80. Um usuário entusiasta de um computador aprendia a programar para uma máquina e assim ficava, pois não havia necessidade de portar seu aplicativo para outra arquitetura.
Isso é muito comum, se analisarmos o progresso e a evolução de inventos humanos. Traçando um paralelo com a teoria de evolução de Darwin, uma nova tecnologia pressiona o surgimento de novos produtos (assim como uma mudança no ambiente causa um aumento no número de mutações genéticas em espécies já existentes), e desses novos produtos sobrevivem os que se mostram mais aptos ao ambiente (o produto que satisfaz melhor o público é o que acaba sendo mais copiado e prospera), determinando qual será a tendência de design de produtos. Veja como os aparelhos de TV e os primeiros aviões eram diferentes entre si, e vejam o quanto eles são similares hoje em dia. Dá pra sacar que, até com memes, existe o que é chamado de “survival of the fittest”?
No fim de 1970, as apostas de todos provavelmente seriam na Apple, com o Apple I e com o Apple II. Seus computadores poderosos e fáceis de usar começaram a ganhar momento. Empresas passaram a desenvolver aplicativos para ele. O sucesso do Visicalc serviu como um efeito bola de neve. Mais pessoas queriam o Apple por conta do Visicalc, que aumentava o interesse dos desenvolvedores pela plataforma Apple, que fazia da Apple a arquitetura com uma coleção de software mais interessante. Darwin trabalhava, enquanto a concorrência padecia. Por mais simples que fossem as arquiteturas da época, era trabalhoso portar software. Muitos programas ainda eram desenvolvidos em linguagem de máquina. Compiladores BASIC eram caros e para profissionais. A Apple parecia a grande vitoriosa.
Parecia. A Apple passou a ter concorrência da IBM e do padrão PC. Aproveitando a explosão do mercado de computadores para uso doméstico, a IBM deu a sua tacada: um padrão livre, que pudesse ser seguido por qualquer que quisesse montar um computador compatível. Dessa forma, uma empresa que quisesse entrar no mercado de desktops poderia fornecer apenas um componente do produto, ao invés de ter que desenvolver todo um computador (e ainda ter que tentar competir com a Apple). Isso também serviu para incentivar a concorrência, o que levou a uma redução acelerada dos custos.
Vá lá: tudo que a IBM acertou com o padrão-PC, ela errou ao ter dado uma licença de fornecimento exclusiva do Sistema Operacional para uma empresa pequena, chamada Micro-soft-com-hífen. Mas a estratégia do padrão aberto funcionou. A Apple, que manteve-se verticalizada (oferecendo hardware e software) acabou perdendo terreno para os milhares de concorrentes horizontais que trabalhavam no padrão IBM-PC.
Fale com o Miguel, se quiser mais detalhes da história da Apple. Mas vou resumir: eles teimaram um bom tempo em manter-se verticais, e só recentemente abriram mão disso, e foram obrigados a admitir que a estratégia vertical não deu certo. O hardware de um Macintosh é, hoje, virtualmente idêntico ao de um computador da HP ou da Dell. Para desgosto de muitos fanáticos, hoje é um Intel que roda em Macs. Até mesmo software para o mercado de DTP tem menos features em suas versões para Mac OS, comparada com a versão para Windows. Muito do charme some quando se tira o teclado com backlight.
Pois bem. Não é de hoje que o mercado de desktop é chato, sem grandes surpresas. Como eu já disse antes, POSIX já ganhou, e boa parte do pacote de soluções que gerou bilhões para a Microsoft-sem-o-hífen já é “good enough” há uns bons 6 anos.
Se é que existe alguma coisa que ainda é sexy para desenvolvedores, isso está em aplicativos que fazem uso da Internet e dos avanços de telecomunicações.
O Mercado de Mobile
Entra o mercado de mobile. Acho que foi em 1999 que meu pai chegou em casa com um StarTac, da Motorola. O que tinha de especial? Pouca coisa, além de um desenho moderno e o fato de ser um dos primeiros modelos no Brasil que foram trazidos para as linhas digitais. De qualquer forma, podemos ver o quanto mudou em apenas 8 anos. Celulares hoje em dia mandam mensagens de texto, mensagens multímidia, possuem câmera integrada, mp3, possuem jogos, conectam à internet, fazem cafezinho e até pagam suas contas – inclusive aquela conta absurdamente cara da sua última fatura de celular.
Tudo muito legal, tudo muito divertido. Mas ainda falta alguma coisa. Por exemplo: e se eu quiser trocar a minha câmera digital? Ou como faço para adicionar um HD ao meu smartphone? E se eu quiser usar outra bateria, ou adicionar uma placa que me permita usar dois chips GSM no mesmo aparelho?
Mudanças em hardware, nem pensar. Software deveria ser um pouco mais flexível, mas ainda está longe do satisfatório. Diferentes sistemas operacionais, diferentes versões, diversos padrões de rede (GSM, CDMA, iDen, entre outros) e – mais importante – diferentes plataformas de desenvolvimento de software fazem com que planejar um produto para o mercado mobile seja tão fácil quanto atirar em um grilo usando uma escopeta numa sala pequena, depois de tomar meia garrafa de tequila. Chamar de “mercado dinâmico” é um eufemismo. É um mercado caótico.
Quer adicionar uma outra variável na brincadeira? A penetração de aparelhos celulares é muito maior que a de computadores domésticos. No Brasil, já passamos há tempo a marca de 60 milhões de aparelhos ativos. Isso passa (em muito) o número de computadores. Na Itália, mais de 90% da população possui telefone celular. Os números de usuários de Internet não chegam à metade. O celular é, sem dúvida, o Verdadeiro Computador Pessoal.
E aí apareceu a oportunidade de ouro para a Apple e o iPhone. Do mesmo jeito que fizeram com o Apple I e com o Apple II, a estratégia para o iPhone é reduzir o número de subsistemas (poucos aplicativos de terceiros, sistema operacional próprio, software próprio) e lutar para manter controle sobre cada uma das partes. Quem melhor que Steve Jobs, com seu senso de design, para delimitar o melhor ponto para atender todos os requisitos conflitantes que existe num mercado caótico como o mobile?
Enquanto todos batem cabeça e não se entendem, a Apple usa a sua vantagem como fabricante de hardware e espera neutralizar as operadoras de telefonia futuramente, apostando no crescimento do Wi-Fi e pensando que o seu iPhone poderá ser um telefone (VoIP) e, principalmente, como um dispositivo para a distribuição de conteúdo digital. Só depois, e quando for do seu interesse, ela precisaria abrir o iPhone para terceiros. Ela nem mesmo precisaria ter um “Visicalc”, pois ela já se encarregou de fazer isso antes: chama-se iTunes Music Store.
Do jeito que se vê hoje, a Apple tem tudo em mãos para se tornar a força dominante do mercado de mobile computing. A vingança de Steve Jobs, tardia, seria em sua dominação do Verdadeiro Computador Pessoal.
Android: estamos de novo em 1981
Not so fast, Steve. Você acreditou mesmo que todo mundo ia ficar assistindo você ficar com todo o bolo? As operadoras de telefonia ainda querem briga. E aqueles que desenvolvem software também precisam ter um ambiente onde eles sabem que seu sistema rode sem que eles tenham que pedir permissão para ninguém.
Qual a melhor maneira de garantir isso? Ora, lançando um padrão de referência para quem quiser desenvolver dispositivos móveis! Foi exatamente isso que a Google fez essa semana. Ao invés de lançar um aparelho de celular, foi anunciado o Android. O Android é uma plataforma aberta de desenvolvimento, com especificação de sistema operacional, middleware e aplicativos finais. Quem quiser desenvolver um aplicativo para um celular que seja Android, basta trabalhar de acordo com a spec.
Os fanáticos por Java vão apontar para o JavaME, como forma de ter uma plataforma de desenvolvimento livre e definida. Eu vou dizer “Nice try, but no.” Do mesmo jeito que acontece no desktop, aplicativos JavaME acabam limitados pela qualidade da implementação das bibliotecas que funcionam “embaixo”. Por exemplo: assim como um toolkit como o SWT tem que ser um mínimo denominador comum entre os ambientes gráficos subjacentes (GTK, MFC, Cocoa), uma implementação de JavaME é, no máximo, tão poderosa quanto o pior sistema usado atualmente nos aparelhos celulares. O padrão do Android é a partir do zero, não fica obrigado então a fazer nenhum tipo de compromisso por conta de limitação tecnológica.
Em suma: Android é a versão mobile do padrão IBM-PC. Não importa se você for um desenvolvedor de aplicativo ou de componentes para celular, você poderá ter um pouco mais de segurança na hora de começar o seu investimento. Isso levará a muita inovação no mercado, pois teremos mais empresas tentando arriscar algo novo, sem medo de ver seu investimento sendo jogado fora por alguma reorientação tecnológica. Isso levará a redução ainda maior de custos. De comoditização total de hardware. Até mesmo podemos pensar em maior integração entre serviços que hoje só são pensados para web. Um celular Android poderá, efetivamente, tornar-se o PC 2.0.
Apple vs o resto. Dessa vez, até pode ser diferente.
Cabe a Apple decidir se vai querer que o iPhone se torne um sucesso como o Mac ou como o iPod. Usuários (e lucros) ela terá em qualquer hipótese. Entretanto, a insistência da Apple em manter todo o controle da arquitetura se mostrou falha na guerra dos desktops. Até hoje, com geeks tietando a Apple da mesma forma que adolescentes tietavam Britney Spears, o mercado da Apple não passa de magros 3%. Será que ela vai se posicionar, de novo, para manter apenas um nicho ou pretende ir para as cabeças?
Dois fatores pesam a favor, dessa vez. O primeiro: é muito difícil que o Google faça por alguma empresa o que a IBM fez pela Microsoft, o que levaria a uma grande procura por celulares com o padrão Android e a um possível monopólio de algum serviço dentro dele. O outro: o mercado de mobile business está bem mais maduro, hoje, do que o mercado de computadores era em 1981. Quase metade dos habitantes do planeta usa um celular, e a imensa maioria já está acostumada a mudar de aparelho a cada 18 meses. Não há nada que impeça que eles resolvam fazer a mudança.
De um jeito ou de outro, é uma época bem interessante para trabalhar com o desenvolvimento de aplicações para o Verdadeiro Computador Pessoal.
Eu só queria dar os parabéns…
31 Outubro, 2007
aos colabadores e leitores assíduos do blog. O mês está encerrando, e o blog passou a marca de 6000 acessos em Outubro.
Pode parecer pouco, mas 200 acessos diários em um blog que se dispõe a buscar um público tão pequeno (desenvolvedores e pessoas que trabalham com tecnologia), que se mantém escrevendo em português, e que não se preocupa em fazer marola, primando a qualidade, é uma marca que impressiona.
Próxima meta: 10 mil acessos.
Cheers.
Conhece a anedota? Conta que um programador estava tentando resolver um problema: ele tinha um sistema que precisava manipular e enviar informação estruturada para outros clientes. Num instante de pura sagacidade, ele pensou “Já sei. Vou usar XML!”. No instante seguinte, de pura decepção, ele constatou: “Agora eu tenho dois problemas. Não bastasse meu problema original, eu vou usar XML.”
De todos os alfabetos gastos em tecnologias que construiam “em cima” do XML (XQuery, XPath, XSL, XML-RPC, X-Men, Xuxa, sei lá) não consigo lembrar de nenhum que traga algo novo. Parece que é o tipo de coisa que cai na categoria “problemas inventados pelos vendors de software para que eu possa continuar justificando lucros trimestrais de US$4 bilhões.”
Tudo que eu e o programador da anedota precisamos é de um sistema que possa passar informação de um jeito estruturado. Se puder ser facilmente lido como texto, tanto melhor. Ninguém merece ter que ficar editando arquivo CSV, não é mesmo?
Que tal a possibilidade de ver um registro de uma fatura num formato assim?
invoice: 34843
date : 2001-01-23
bill-to: &id001
given : Chris
family : Dumars
address:
lines: |
458 Walkman Dr.
Suite #292
city : Royal Oak
state : MI
postal : 48046
ship-to: *id001
product:
- sku : BL394D
quantity : 4
description : Basketball
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
tax : 251.42
total: 4443.52
Esse é um documento YAML, válido. Bonitinho, né? Pena que ninguém mais usa isso por aí… e de que adianta ser capaz de emitir algo assim, se ninguém é capaz de receber? Vou ter que continuar usando XML?
Não necessariamente. Especialmente se está mexendo com web e já ouviu falar de uma outra darling das notações de marcação, JSON.
JSON, essa você já deve ter ouvido falar. Seu browser mastiga isso com uma facilidade tremenda:
{"student": {
"first name": "John",
"last name": "Smith",
"course": {
"report": [
{"Subject": "Math", "grade": "A"},
{"Subject": "English", "grade": "C"},
{"Subject": "Arts", "grade": "F"}]}}}
}
É só pedir para o seu interpretador Javascript avaliar essa string, e você tem um objeto que pode processar, e apresentar um relatório lindo para os pais do John, que vão dar uma bronca nele por ele não largar do computador e não ter aprendido a desenhar flores em aquarela.
Deixa eu contar o pulo do gato: todo JSON válido também é YAML. A notação usada em JSON é usada para descrever inline collections em YAML. Se você tiver uma string que seja a representação de um objeto em JSON, ele será visto como um objeto pelo seu parser de YAML (escolha aqui seu parser, na sua linguagem/plataforma favorita).
O que se ganha com isso? Um exemplo: validação e manipulação de formulários. Que tal a possibilidade de não só validar os dados no cliente, mas também pegar os campos de um formulário, verificar se o objeto está consistente, transformar em uma string JSON (usando um emitter apropriado) e enviar para o servidor essa string? Depois, o seu parser de YAML vai te montar um objeto, o qual pode ser muito mais facilmente validado e verificado.
Para quem quiser fazer formulários onde campos podem ser livremente adicionados ou removidos, ou usar toneladas de AJAX em seu aplicativo web, a combinação JSON + YAML funciona e é uma mão na roda.
Do sempre genial Seth Godin…
18 Outubro, 2007
Tá, tá… você é um computeiro e sua leitura favorita – além do log4dev, claro – se resume a Java Magazine, Info Exame, aquele RSS que traz reportagens sobre o gadget que você tá louco para comprar ou outros textos onde você vai ter assunto para discutir no gtalk com outros geeks como você. Mesmo assim, eu vou te passar uma citação do Seth Godin, um blogger que já foi VP de Marketing do Yahoo. Trocando em miúdos, ele não é o cara que escreve o programa, mas é o cara que escreve a spec:
I don’t know about you, but when I hire someone, or go to the doctor or the architect or an engineer, I could care less about how good they are at memorizing or looking up facts. I want them to be great at synthesizing ideas, the faster and more insightfully, the better.
Eu estou devendo um artigo falando sobre como aprimorar o senso de design. Talvez eu nem devesse escrever, e simplesmente apontar para esse parágrafo. Mas como eu sou um tanto tinhoso e o Miguel me proibiu ficar discutindo sobre linguagens de programação, acho que vai sobrar tempo para escrever mais opiniões não-fundamentadas e equivocadas por aqui.
Ps.: Desejem-me sorte. Espero receber hoje um email um tanto especial.
O legal de um blog como o log4dev…
28 Setembro, 2007
É que é um lugar com gente inteligente, bem educada. Daqueles onde só pode falar quem sabe sentar-se à mesa e usar os talheres. Não tem muito lugar para criança.
Então, lendo o último post do Miguel, eu fiquei com vontade de falar “Java is TeH SuXXXXXoR”. Mas como precisamos fazer as coisas aqui com estilo, acabei escrevendo isso aqui, ó.
Startup Mantra I: Design é tudo que importa
21 Setembro, 2007
Já reparou que há algumas coisas no mundo de tecnologia que tiveram sucesso por solucionar um problema e empregavam milhares de pessoas, mas que hoje não são mais realmente problema nem solução? Já reparou também que esses mesmos produtos desenvolvidos por milhares de pessoas, mesmo quando são excelentes obras de engenharia, não caem no gosto do público?
Por exemplo: sistemas operacionais. POSIX ganhou há tempo. O Windows XP é um sistema que está longe de ser perfeito, mas ele se mantém utilizável e estável o suficiente para boa parte das pessoas. Ele resolveu um problema que um sistema operacional deve resolver: permitir que uma pessoa possa rodar seus programas e oferecer suporte básico de operações de computador.
E o Windows Vista? Bem, pode até ser que alguns tarados que tenham olhado as fotos das telas, gritado “Shiny Boxes!” e saído correndo para fazer o upgrade. Com certeza a máquina de marketing de Microsoft vai funcionar a ponto de convencer muitas pessoas que elas têm que ter janelas translúcidas e que elas têm que estar prontas para um mundo de 64 bits. Mas isso é uma grande bobagem. E isso se refletiu nas diversas análises que foram feitas. “Não há nada que justifique o upgrade”. “O maior ponto do Windows que precisa ser corrigido, a segurança, já está abalado pelas novas ameaças.” Não foram poucos os casos que escutei de pessoas que compraram um computador com Vista e voltaram atrás. Certamente a Microsoft vai conseguir com que o Vista se pague em pouco tempo, e seus acionistas vão adorar. Mas com certeza, a dominação que a MS tem não vai ser ampliada em função de seu novo produto.
Outro exemplo? Videogames. Um mercado bilionário, com MS e Sony se debatendo sobre formatos, preços, exclusividade de títulos, tamanho do HD… e quem está levando a parada é a Nintendo. Com certeza os fanboys do PS3 e do XBOX sairam correndo para as lojas gritando “Shiny Boxes!”, vitimados pela máquina de marketing. Mas depois da euforia, o que sobrou?
O Léo com certeza vai deixar um comentário falando que a estratégia da Sony e da MS era outra, de dominar a central de entretenimento da casa. Ele tem razão. Mas o engraçado é que a liderança de mercado ficou com a empresa que não se preocupou em ser a líder de mercado. O grande diferencial da Nintendo é que ela se propôs a fazer algo que fosse da vontade do público consumidor, não da vontade dos acionistas.
A lição que se tira dessa observação: na Economia Digital, não é a tecnologia, per se, que adiciona valor na cadeia de produção. O que adiciona valor é a forma com que a tecnologia (nova ou já existente) é usada para resolver um problema. Com a comoditização tanto de software (graças ao Open Source) quanto de Hardware (graças a lei de Moore), o único ponto de valor agregado está no serviço prestado.
E o que isso implica para aqueles que trabalham com o desenvolvimento de tecnologia? Significa que não basta mais saber como programar, é necessário também ser capaz de saber o quê programar.
Design é tudo que importa para separar os bons desenvolvedores dos operários de luxo.
Se você é um desenvolvedor de verdade, e não um simples digitador de luxo, daqueles que recebe uma especificação pronta e tem que transformar diagramas UML em código Java, você já aprendeu que a parte realmente difícil de se fazer certinho em um software está no design. Não é na implementação, tampouco a parte de debugging. É claro que há os dias que gastamos horas e horas tentando resolver aquela porcaria de bug que nem o seu ursinho de pelúcia ajuda, mas isso é o trabalho braçal da coisa, e não o trabalho difícil da coisa. O trabalho que justifica o salário estratosférico que te pagam e os bônus de fim de ano e a máquina de café expresso que colocaram no escritório só para te manter acordado é o trabalho difícil, que só você, campeão, pode dar conta.
Com as linguagens de alto nível, com poder de hardware sobrando nas máquinas de hoje, com bibliotecas que resolvem problemas já conhecidos e com o Google tendo informação sobre os HOW-TOs de praticamente qualquer coisa já bolada no mundo, a parte de implementação em um projeto de software é muito mais um processo de encaixar peças de quebras-cabeças do que de realmente construção propriamente dita. Ainda não chegamos na fase de “Lego Programming”, mas essa é uma tendência clara.
O que resta? O design. O design é aquela fase onde o analista precisa fazer uma coisa esquisita: sair da frente da IDE e conversar com o cliente. Para efeito de ilustração, cliente pode ser traduzido como “o cara que tem que aprovar o software se eu quiser continuar com o salário estratosférico que me pagam e os bônus de fim de ano e a máquina de café expresso que colocaram no escritório só para me manter acordado durante um trabalho difícil, que só eu, o campeão, posso dar conta.
A fase do design é justamente a fase dos requisitos. É a fase onde o cliente vai te pedir que o sistema seja simples, mas que tenha um monte de recursos. Que seja capaz de resolver todos os 13795 problemas que ele acha que tem ao toque de um botão. Um único botão. Que todos os usuários possam acessar o sistema sem precisar de formas complexas de autenticação, ao mesmo tempo que o sistema precisa proteger o arquivo que seja eventualmente apagado por uma secretária estressada, vingativa e sem aumento há mais de 2 anos.
Design é a arte de saber encontrar soluções adequadas para requisitos conflitantes. E os processos e metodologias para desenvolvimento de software acabam se dividindo em dois campos: os que assumem que não vão encontrar uma solução ótima, e trabalham por aproximações sucessivas (as metodologias agéis), e os que tentam investir tempo e dinheiro para descobrir o ponto ótimo antes mesmo de tocar em uma linha de código (o pessoal das escolas Big M de metodologias: CMM, RUP e outras sopas de letrinhas).
O ponto maior desse post que já está ficando longo: não há metodologia ou processo de software que vá te ensinar a encontrar os requisitos, muito menos um método que vá te mostrar qual é o melhor ponto para cruzar os requisitos conflitantes.
Nas empresas do Brasil que lidam com outsourcing, muito se fala da concorrência de empresas da China e Índia, onde a mão-de-obra é mais barata.
Deixe eu reescrever o paŕágrafo acima: em qualquer lugar do mundo se fala da China e da Índia, por ser um lugar com mão-de-obra barata.
E realmente, a Índia é um lugar onde impera a Ditadura do Processo. É lá que se concentram o maior número de empresas com CMM nível 4 e 5. É para lá que vão os grandes call-centers de empresas multinacionais. É para lá que vão os projetos de software com baixo valor agregado. Se você quiser algo feito com baixo custo e com controle de qualidade absoluto, a Índia é o lugar.
Até a indústria de cinema deles é assim. Bollywood produz 800 filmes por ano, mas é um processo tão maduro e estabelecido que você poderia jurar que é o mesmo filme, feito 800 vezes. É ISO 9000 em película: música maluca, mocinha em perigo, mocinho que salva a mocinha depois de fazer uma coreagrafia tirada de algum clipe do Menudo, mocinho salva a mocinha da maldição. Mais músicas e coreografias de Ricky Martin. Créditos do filme. Próóóóóximo…
Domínio do processo é um passo inicial, importante. Mas se pararmos aí, ficamos sempre dependentes de alguém que possa nos dar ordens e indicar o que devemos fazer. A pergunta: o que vai ser da Índia e da China quando a tecnologia de geração de código chegar num nível elevado o suficiente para que tenhamos o “Lego Programming”? O que será dos milhões de profissionais treinados em resolver problemas que já foram resolvidos?
Eu sei que o leitor do log4dev é inteligente e provavelmente já sabe que design é o que realmente importa, mas quero deixar essa idéia bem clara e justificada para um próximo post, com outras idéias: que senso de design é algo que pode aprimorado, que design é o único ponto onde uma startup pode se preocupar, e que o design está nos detalhes.
Quando esse pessoal vai aprender?
30 Agosto, 2007
Eu lembro da época em que o orkut não tinha sido “dominado” por usuários do Brasil. A coisa era nova, mesmo com redes sociais já existentes e boa parte dos americanos usando o Friendster. Isso foi num remoto 2004.
Eu gostava do orkut porque me serviu para entrar em contato com outras pessoas, que não eram rock-stars da internet, mas mesmo assim com algo legal a dizer e – mais importante – coisas legais para mostrar. Essa era uma época que o Alan Cox participava do orkut (se você não sabe quem é: ele foi por muito tempo uma das maiores referências do desenvolvimento do kernel do linux, sendo o responsável pela versão 2.2) e escrevia nos fóruns, tinha mensagens sobre os eventos do qual participava, et cetera.
Era possível entrar em uma comunidade sobre, sei lá, arquitetura MIPS e ver que tinha gente que trabalha e vive de desenvolvimento em sistemas para essa arquitetura. Era possível buscar referências diretamente com os responsáveis por uma atividade. Por exemplo: você sabia que o MIPS é base dos SoC de boa parte das impressoras, scanners e set-top boxes de televisão?
E não era só isso: tinha gente com perfis simples, mas que apareciam e participavam de comunidades sobre Filosofia, Economia, Gastronomia, discussões sobre tipos de perfil psicológico usando o critério Meyer-Briggs, tudo, tudo, tudo. Até mesmo planilhas de treinos de natação eu obtive no orkut, conversando com um cara do Canadá que estava se preparando para competições do mesmo nível (café-com-leite, e cloro) que eu participava. Toda sorte de assuntos e de idéias era discutida por pessoas interessadas e interessantes. E o melhor: as pessoas participavam porque elas também aprendiam. Havia muita gente interessante para ser conhecida. A tal da “sabedoria das multidões” funcionava.
Mesmo que – para você – esse tipo de informação seja tão importante quanto saber a escalação completa do time de críquete da Lituânia nos jogos universitários mundiais de 1987, ficava inegável a afirmação que o valor de uma rede social está intrisicamente ligado ao valor dos melhores usuários.
Era uma sociedade composta por elementos de boa estirpe. Havia respeito mútuo. O conhecimento se difundia. Até que aconteceu o que costuma acontecer com coisas boas e acessíveis: o orkut caiu no gosto do povo brasileiro. Nem preciso contar a piada, na qual Deus precisava arrumar alguma coisa ruim para o Brasil para compensar uma região tão rica de recursos naturais e livre de catástrofes, para explicar o que significa o problema que foi essa invasão tupiniquim.
Tomados por uma vaidade adolescente, alguns começaram a criar comunidades do tipo “Vamos fazer do Brasil o país com mais gente no Orkut”. Adicionavam qualquer pessoa que conheciam, na esperança de fazer amigos. Ficaram num pissing contest, perdendo toda oportunidade de entrar em contato com pessoas que de esferas diferentes (geográficas, sociais, intelectuais), para transformar o site na versão virtual de um bairro de periferia. Invadiram comunidades onde a discussão era em inglês com tópicos num (mal-escrito) português, usando o banal argumento do “Brazil rlz. C tem brasileru aki, eu vo fala em portugueis”. Achavam que estavam dando uma banana para os americanos-porcos-imperialistas-que-queriam-impor-a-sua-língua-ao-resto-do-mundo, mas estavam na verdade atrapalhando a vida do indiano (que tem inglês como segunda língua), do Mexicano, do Argelino, do Alemão, do Paquistanês… e por aí vai.
O problema inerente a toda massificação de um produto ou um serviço não está na massificação, per se. O problema se destaca quando o uso indiscriminado das “unwashed masses” acaba destruindo o valor que é criado pelos “bons cidadãos”. Se as pessoas que abusassem do sistema pudessem ser ignoradas (como hoje 99,99% dos spammers são ignorados pelo usuário comum do sistema de e-mail), não haveria problemas para os “antigos”. Entretanto, quando o bom cidadão se vê entre a opção de a) tentar educar os ignorantes, b) revidar e lutar pela ordem que antes existia no espaço ou c) fazer a sua malinha e cair fora, é óbvio que o caminho tomado será o do “os incomodados que se retirem”.
E eles se retiram. E procuram um novo lugar para chamar de seu. E o novo lugar chama atenção porque (de novo) tem gente de valor. E as massas correm atrás “desse novo lugar que tá virando uma nova febre”. E todo o jogo recomeça. “É o círculo da vida”, apresentado pelo Cid Moreira, veja mais nesse domingo, no Fantástico.
Um outro problema colateral de todo esse movimento é causado pelos discípulos de Gérson, que enxergam uma vantagem burra e participam ativamente desse movimento de deterioração de um serviço de qualidade. Na tentativa de ganhar dinheiro fácil (“AdSense! Monetização! Clickthrough! SEO!”), sempre tem uma meia dúzia de tontos que entram num jogo de popularidade para tentar faturar algo que não passa de, salvo raras exceções, meros trocados. Pessoas gastam horas e horas na frente do computador em troca de dinheiro de pinga, e nem percebem que estão sendo usadas num processo que faz uma transferência inútil de riquezas de ponto-da-moda-A para ponto-da-moda-B.
Ficar falando em “técnicas para maximizar os cliques no AdSense” ou em “como invadir o Digg direito” é o equivalente da blogosfera de garotinhas de escola que disputam quem vai ficar com o playboy da turma: não é difícil (pra quem se dispõe a sujeitar a se abaixar e mostrar os peitinhos, se tornando a vagabunda fácil), não é algo único e exclusivo (ou você acha que o pessoal do Digg vai manter o seu link online por mais do que poucas horas?) e dois dias depois que você fizer, você vai estar arrependido e com a reputação queimada diante dos seus pares. Andy Warhol falava que todos teriam seus 15 minutos de fama, mas pouco foi dito foi sobre o que vinha depois da festinha.
Como diria o Goyaba:
Não entendi isso de alguns blogueiros ficarem putinhos com a campanha do “Estadão” que compara a nossa, ahn, “espécie” a macacos. Sou macaco velho, com quase seis anos de blogagem, e acho que eles estão certos. Por que não estariam? Blogue é – essencialmente e em diferentes graus de elaboração – punhetagem, descrição de atividades como “hoje comi banana” e, às vezes, jogar cocô nos visitantes, o que é sempre divertido. (…)
“Ah, mas não é bem assim! Tem muita gente séria vivendo de blog!”. Tem. Ô se tem. Antes que o leitor se sinta atingido e pretenda disparar na caixa de comentário alguma lista de “pessoas influentes que ganham dinheiro com negócios na Internet”, pergunte-se: o que veio antes para eles? O público ou a “monetização”? Antes de pensar em AdSense ou propaganda, eles se preocuparam em oferecer um produto de qualidade para os seus consumidores.
Só depois que eles se tornaram uma referência em algum assunto específico (empresas de internet, design gráfico, jornalismo independente, fofocas sobre celebridades) veio o momento de poder capitalizar (merecidamente) o material que foi produzido. E “capitalizar” (termo muito melhor do que “monetização”) é algo que não se traduz diretamente por “banner de propaganda”. Capitalizar o material do blog pode ser feito com outras coisas: escrever um livro para um público cativo de seus textos, construir branding de empresas através do seu blog, tornar-se garoto-propaganda da sua empresa e inspiração para profissionais do ramo.
O difícil disso tudo é que tornar-se uma referência em algum assunto não é algo que acontece do dia para a noite. O moleque que só quer ganhar uns trocados (Pô, a grana é pra eu poder ir na balada) acha que sua atitude é inofensiva e não acha que está causando algum mal. Está, sim.
Quem age assim mata a galinha que ainda bota os ovos. Está causando mal a si próprio, perdendo tempo precioso que ele poderia usar trabalhando em algo mais interessante e aprendendo coisas realmente úteis. Está causando mal aos outros, aos “bons cidadãos”, ao praticar algo que pode trazer benefício no curto prazo às custas de um trabalho de longo prazo. Não acredita em mim? Veja por aí se não tem moleque fazendo troca-troca no AdSense? “Clica no meu que eu clico no seu”. Qual é o benefício disso? Dois moleques ganham dinheiro de pinga, e o Google reage mudando o sistema de cobrança. Pior ainda: os anunciantes do AdSense perdem a credibilidade no sistema e deixam de anunciar, prejudicando todos no processo.
Quando o Miguel começou a me pentelhar para escrever aqui, eu fiquei reticente: não iria escrever tanto sobre técnicas e dicas de tecnologia, e ele já faz isso com muita competência, então onde eu estaria adicionando alguma coisa útil a ser dita? Levei tempo para achar um caminho, até ter uma resposta mais ou menos satisfatória: vou escrever com uma idéia tão única quanto arrogante: eu quero escrever para redefinir a visão do trabalho do computeiro, engenheiro de software ou qualquer título que vá no seu hollerith. Aqui, meu trabalho vai ser redefinir o seu trabalho, aí.
Queremos aumentar o público? Claro que queremos. Queremos saber que tem gente que lê o que escrevemos? Claro que sim, ou nem me incomodaria de escrever num blog e teria um “querido diário”. Mas qualquer um que preza o seu trabalho jamais vai pautar o seu blog em cima de popularidade. Qualidade acima de quantidade. Isso é válido para qualquer coisa que fazemos com gosto e queremos sucesso: desenvolvimento de software, design, arte, literatura, namoros… até para a nossa audiência.
Leitura4dev: Wozniak e novos projetos; objetivos para propaganda online; Skype tentando fazer controle de danos…
22 Agosto, 2007
- Steve Wozniak vai se dedicar ao desenvolvimento de habitação eficiente: “Eu sempre sonhei em construir a minha casa pensando na eficiência do consumo de energia.” Com as técnicas e os materiais que podem ser usados na construção, a casa não precisa de mais energia consumida para o aquecimento e/ou refrigeração. “É parecido com a minha forma de pensar sobre a construção de computadores. Eu sempre admirei a idéia de conseguir os mesmos resultados usando menos partes ou procedimentos.”
- Estudos mostram que propagandas online são eficientes mesmo quando o usuário não clica no banner. Tipicamente, se considera um anúncio eficiente quando ele provoca alguma reação no usuário, como clicar no link. Entretanto, analisando o cérebro de pessoas expostas aos anúncios, notam-se indícios que há retenção de informação mesmo quando não há interatividade. Chan Yun Yoo, professor da Universidade de Kentucky de Jornalismo e Telecomunicações, diz que “os anunciantes precisam rever os objetivos da propaganda online”. Há espaço, por exemplo, para a formação de branding (aumentar o valor de uma marca) ao invés de pura tentativa de venda ao consumidor.
- Depois de ficar 36 horas fora do ar e dar uma desculpinha marota (“Aí gente, foi mal, o Ruindows causou tudo isso.”), o Skype está tentando recuperar a confiança do público oferecendo uma semana de serviços grátis. Pra quem acha que basta ter 250 milhões de usuários e viver faturando, fica a lição: consumidores na Internet agem como um verdadeiro cardume, mudando de caminho (e de produto) de uma forma um tanto quanto coordenada, apesar de imprevisível.
- Para os bravos computeiros que tinham prazer ao calcular transformadas de Fourier ou estudar Análise de Sinais: uma técnica muito interessante para redimensionamento de imagens, removendo conteúdo de fundo, ou periférico, e mantendo conteúdo relevante no tamanho original.