Inovação e o terceiro mundo

A Riqueza na Base da Pirâmide (2004)

Quem me deu a dica sobre este livro foi o Yuri.

O mote é o seguinte: segundo o autor, C.K. Prahalad, que já esteve no topo do ranking Thinkers 50, existe um grande mercado pouco explorado que é a base da pirâmide social, isto é, os pobres e os miseráveis.

Essa base pode ser altamente lucrativa se as empresas conseguirem fornecer produtos e formas de pagamento condizentes com a realidade desta classe, o que significa muitas vezes criar estratégias para garantir que essas pessoas possam pagar pelo bem ou serviço, inovar criando produtos que atendam a necessidade destas pessoas (fácil) a um custo baixo (difícil) sem perder a qualidade, ou muitas vezes disputando em qualidade com produtos caríssimos que visam mercados mais abastados (dificílimo).

Para não parecer uma viagem completa na maionese, o livro se ocupa em mostrar diversos exemplos, que vão desde como as Casas Bahia no Brasil vendem artigos e entregam no meio da favela até diversas iniciativas na Índia (que tem problemas de pobreza e corrupção tão graves ou maiores que o Brasil) desde a fabricação de próteses até sistemas informatizados rurais para ajudar os pequenos agricultores a venderem melhor suas produções.

Obviamente, não é a bala de prata dos empresários, mas ajuda a abrir um pouco as perspectivas e nos faz refletir profundamente no que chamamos de inovação. Porque embora o livro tente passar constantemente a mensagem de que incluir os mais pobres no mercado é uma forma de melhorar suas vidas e oportunidades (outras vertentes poderão argumentar que as empresas nunca deram a mínima pelos miseráveis e que se trata apenas de mais uma forma de tirar dinheiro dos pobres), a grande mensagem é da inovação.

Os requisitos destes produtos podem dispensar uma campanha com gente bonita na embalagem, mas não pode dispensar que a embalagem seja simples o suficiente para que uma pessoa analfabeta possa comprar e usar. Eis o desafio tecnológico da base da pirâmide: qualidade ao preço que eles podem pagar.

A inovação é fruto de uma necessidade, e quanto mais adverso o ambiente, mais criativa precisa ser a inovação. E em termos de adversidades, o Brasil é um ótimo ambiente :-).

Lembro de pelo menos dois bons exemplos. Um, do meu irmão, economista, que dizia que economistas brasileiros acabam tendo um perfil interessante para os mercados dada a grande quantidade de planos econômicos e vais-e-vens da nossa história. Pouco economistas viram tão de perto as inúmeras trocas de moedas, cortes de zeros, pacotes econômicos e etc quanto os economistas brasileiros.

Outro exemplo interessante, de um amigo biólogo. Conta-se que, certa vez, dois pesquisadores chegaram a uma mesma conclusão numa pesquisa, um nos estados unidos e outro na UFMG. O da UFMG, porém, contava com recursos infinitamente mais limitados e motivou uma equipe americana a vir para o Brasil, conferir COMO DIABOS o pesquisador brasileiro, com tão poucos recursos, conseguiu resultados tão bons. Heroísmo de mentes brilhantes nacionais, sem dúvida.

Eis o verdadeiro potencial do terceiro mundo que deveria ser aproveitado. Ao invés de vender a mão-de-obra commodity de baixo custo, vender a genialidade de alto valor agregado das mentes brilhantes que, democraticamente, podem surgir em qualquer lugar do mundo.

Leia mais sobre o livro do Prahalad: artigo da revista EXAME e entrevista no site do Instituto Ikatu

Inovação 1 Comentário

Análise de Desempenho Usando Profilers

Desde minhas primeiras incursões em Java (em 1996, quando a linguagem ainda estava em beta) eu me vi às voltas com código exigente em termos de memória e capacidade de processamento (principalmente quando lidando com aprendizado de máquina e métodos evolucionários).

A “otimização prematura é a raiz de todo mal”, mas otimização tardia também pode ser difícil e trabalhosa. Identificar os gargalos do seu sistema (performance bottlenecks) é fundamental para melhorar o desempenho do software. Por causa disso, mais cedo ou mais tarde é preciso realizar alguma forma de profiling - identificar quanto tempo seu sistema gasta em cada tarefa, e quanta memória é alocada por quais objetos.

Existem várias técnicas para isso, e acho que já usei quase todas, do mundano println(System.getCurrentTime()…) a Java Virtual Machine Profiling Interface. Nenhuma delas superou um bom programa dedicado especificamente a essa tarefa. Há alguns anos, meu preferido era o JProbe; recentemente, esse título vai para o excelente Yourkit Profiler.

Detalhe da tela do YourKit Java Profiler

Disponível para Java e C#, o Yourkit Profiler integra-se facilmente a IDEs como o Eclipse, e realiza praticamente todas as análises que procuro, com baixíssimo overhead e uma interface gráfica completa e agradável. Não entrarei em detalhes sobre todos os recursos disponíveis; o site é bem completo em relação a isso, e oferece uma versão de avaliação válida por 15 dias.

O preço do Yourkit Java Profiler é bastante razoável, e licenças gratuitas para projetos open-source ativos estão disponíveis (obtivemos licenças para o uso no HyperGraphDB e RelEx, dois projetos de software livre em que participo ativamente do desenvolvimento).

A cereja em cima do bolo é a equipe da YourKit: eu fiz um breve comentário sobre o suporte a profiling de métodos nativos e me surpreendi quando os desenvolvedores me procuraram pedindo por informações do que eu precisava, e poucos dias depois disseram que vão incluir esses recursos no programa.

Se seu programa em Java ou C# está lento ou consumindo memória demais, experimente levar o YourKit Profiler para passear! :-)

DISCLAIMER: Esse post foi resultado exclusivamente de experiências pessoais, e foi escrito de forma espontânea; exceto pelas licenças gratuitas fornecidas para os projetos open-source, comentadas acima, não há qualquer associação entre mim ou o Vetta Labs e a YourKit, LLC.

Detalhe da tela do YourKit Java Profiler

Disponível para Java e C#, o Yourkit Profiler integra-se facilmente a IDEs como o Eclipse, e realiza praticamente todas as análises que procuro, com baixíssimo overhead e uma interface gráfica completa e agradável. Não entrarei em detalhes sobre todos os recursos disponíveis; o site é bem completo em relação a isso, e oferece uma versão de avaliação válida por 15 dias.

O preço do Yourkit Java Profiler é bastante razoável, e licenças gratuitas para projetos open-source ativos estão disponíveis (obtivemos licenças para o uso no HyperGraphDB e RelEx, dois projetos de software livre em que participo ativamente do desenvolvimento).

A cereja em cima do bolo é a equipe da YourKit: eu fiz um breve comentário sobre o suporte a profiling de métodos nativos e me surpreendi quando os desenvolvedores me procuraram pedindo por informações do que eu precisava, e poucos dias depois disseram que vão incluir esses recursos no programa.

Se seu programa em Java ou C# está lento ou consumindo memória demais, experimente levar o YourKit Profiler para passear! :-)

DISCLAIMER: Esse post foi resultado exclusivamente de experiências pessoais, e foi escrito de forma espontânea; exceto pelas licenças gratuitas fornecidas para os projetos open-source, comentadas acima, não há qualquer associação entre mim ou o Vetta Labs e a YourKit, LLC.

Murilo Saraiva de Queiroz, a.k.a. muriloq, 30, tem graduação em Ciência da Computação e Mestrado em Engenharia Eletrônica, ambos pela UFMG. Atualmente ele desenvolve projetos nas áreas de mercado financeiro, bioinformática e processamento de linguagem natural no Vetta Labs (da qual é sócio) e em projetos open-source do Singularity Institute for Artificial Intelligence. Murilo mora em Belo Horizonte com sua esposa Cyntia, seu filho Max e um amontoado de videogames e gadgets.

--> Desenvolvimento 0 Comentários

Minerando os dados dos celulares

Este post comenta ESTE ARTIGO (inglês)

Quem: Sandy Pentland, MIT

Definição: Mineração de Realidade Pessoal (Personal reality mining) infere relações e comportamento através de técnicas de data mining coletada a partir do uso de celulares

O MIT soltou uma lista das tecnologias mais promissoras para os próximos anos, e dentre elas, havia este esotérico termo chamado “reality mining”. Hypes à parte, nada mais é que data mining em cima de dados pessoais obtidos através de celulares, uma tecnologia que agora está na mão de muita gente. Pense em todas as possibilidades, para o bem e para o mal, que um celular com GPS pode oferecer.
Além de, claro, ter um grande volume de dados, reality mining também tem tudo a ver com outra tendência: as redes sociais. Afinal, o que são os celulares senão outra interface que liga você aos seus amigos, familiares, colegas de trabalho, etc? E isso vai desde a análise de padrões de comportamento até o rastreamento de doenças infecciosas, como SARS.

A polêmica óbvia em cima disso é: as pessoas querem ter suas intimidades esmiuçadas neste nível de granularidade? Entra no debate as questões éticas e morais, a privacidade e etc, mas o fato é que, sob vários aspectos, a tecnologia permite a extração de várias informações que irão interessar muita gente.

Data mining não é uma ciência nova e está presente em nossas vidas há muito tempo. Dizem que quem mais conhece sua vida é seu gerente de banco. Analisando anos de extratos bancários, não é difícil ver onde você gastou com livros para a faculdade, se você passou aperto ou não, se vc progrediu no seu emprego, quando vc se casou, quando vc teve filhos, quando você precisou pagar por coisas caras e relevantes, ou até se você é fiel ou não no seu casamento.

Números não mentem. Mas também não esclarecem, se a análise não for bem feita. Data mining é extrair conhecimento através da análise de bases de dados. É encontrar e interpretar padrões, para diversos fins. Desde conhecer melhor seu objeto de estudo até tentar prever ações futuras.

Lembrei imediatamente de uma piadinha sem graça. Maria liga no celular do Manoel, que atende desesperado dizendo “Maria! Como descobriste que eu estava a te trair no motel?”

Pode ser uma piada mais sem graça ainda depois que deixar de ser piada ;-).

Data Mining, Mobile 2 Comentários

Microcrédito com ares de web 2.0

Microcrédito, de acordo com a Wikipedia, é emprestar quantias bem pequenas para pessoas que não têm como obter crédito no sistema financeiro tradicional. Pobres, desempregados, “empreendedores” de economia informal não têm como dar garantias bancárias e o sistema tradicional de crédito via bancos ou financeiras não os atende.

Microcrédito é uma idéia razoavelmente antiga, que se tornou popular depois de casos de sucesso no Bangladesh na década de 70, principalmente o do Grameen Bank. Em 2006 o banco e seu fundador receberam o Prêmio Nobel da Paz em reconhecimento ao profundo poder de transformação social do microcrédito.

Hoje em dia há milhares de organizações no mundo todo dedicadas ao microcrédito, inclusive no Brasil, embora o país ainda tenha muito a fazer no amadurecimento dessa idéia. A maior parte das organizações se divide em dois grupos: ONGs sem fins lucrativos e que recebem doações de capital para emprestar e bancos especializados, muitas vezes braços de bancos maiores tradicionais. As ONGs de microcrédito enfrentam o problema comum a todas as ONGs: levantar fundos.

Em 2005, um casal do Vale do Silício resolveu criar uma startup de microcrédito. Nascia a Kiva. Sem fins lucrativos, a Kiva permite que qualquer pessoa se registre e empreste pequenas quantias usando seu cartão de crédito ou conta no PayPal. Uma rede de organizações associadas mundo afora cadastra e seleciona as pessoas que receberão os empréstimos. O valor típico de um empréstimo é de algumas centenas de dólares, e cada usuário da Kiva participa com uma cota fixa de US$25. Dessa forma, cada empréstimo é um esforço colaborativo, bem dentro do paradigma Web 2.0.

E funciona? Sim, funciona. A Kiva explodiu e continua crescendo de forma exponencial. Em pouco mais de dois anos, ela emprestou mais de US$25 milhões. Foram mais de 37 mil empréstimos em 42 países, financiados com cotas de mais de 250 mil pessoas.

E isso não é tudo. De todos esses empréstimos, 99.9% foram pagos integralmente. Não existe banco tradicional no mundo que chegue perto disso. Só pra comparar, no Brasil a taxa de inadimplência de empréstimos bancários para pessoa física é de 7%, segundo o Banco Central.

Há quatro meses eu entrei na onda. Fiz dois empréstimos. O primeiro para a Sra. Selina John, que tem uma barraca de vender cerveja e refrigerantes em Dar Es Salaam, Tanzânia. O segundo para o Sr. Angel Peralta, do Equador. Confesso que escolhi pelo nome, mas depois vi que o Sr. Peralta já contraiu e pagou outros empréstimos anteriormente.

Selina já pagou todo o seu empréstimo. Com o dinheiro ela aumentou seu estoque e seus lucros mensais. Quando você empresta dinheiro, só o recebe de volta depois que todas as prestações (em geral mensais) são pagas. O dinheiro é creditado na sua conta da Kiva e você pode sacá-lo ou reemprestar.

A sensação de ajudar diretamente essas pessoas é viciante. A Kiva cria perfis de cada pessoa, com fotos e historinhas, o que cria um vinculo emocional. Ou seja, assim como a grande maioria dos outros usuários, nem pensei em sacar minha grana. Já estou à procura do próximo empréstimo. E torcendo pra que logo alguma organização de microcrédito do Brasil esteja madura o suficiente para atender aos critérios de cadastramento da Kiva :-)

E isso não é tudo. De todos esses empréstimos, 99.9% foram pagos integralmente. Não existe banco tradicional no mundo que chegue perto disso. Só pra comparar, no Brasil a taxa de inadimplência de empréstimos bancários para pessoa física é de 7%, segundo o Banco Central.

Há quatro meses eu entrei na onda. Fiz dois empréstimos. O primeiro para a Sra. Selina John, que tem uma barraca de vender cerveja e refrigerantes em Dar Es Salaam, Tanzânia. O segundo para o Sr. Angel Peralta, do Equador. Confesso que escolhi pelo nome, mas depois vi que o Sr. Peralta já contraiu e pagou outros empréstimos anteriormente.

Selina já pagou todo o seu empréstimo. Com o dinheiro ela aumentou seu estoque e seus lucros mensais. Quando você empresta dinheiro, só o recebe de volta depois que todas as prestações (em geral mensais) são pagas. O dinheiro é creditado na sua conta da Kiva e você pode sacá-lo ou reemprestar.

A sensação de ajudar diretamente essas pessoas é viciante. A Kiva cria perfis de cada pessoa, com fotos e historinhas, o que cria um vinculo emocional. Ou seja, assim como a grande maioria dos outros usuários, nem pensei em sacar minha grana. Já estou à procura do próximo empréstimo. E torcendo pra que logo alguma organização de microcrédito do Brasil esteja madura o suficiente para atender aos critérios de cadastramento da Kiva :-)



--> Inovação, Web 2.0 0 Comentários

Test-Driven Development By Example

Este livro do Kent Beck, apesar de já estar com seus 6 aninhos, uma eternidade no mundo volátil da computação, continua sendo uma referência importante de alguns conceitos importantes da engenharia de software. Portanto, é sempre bom tê-lo na biblioteca.

A proposta é radical. Seu código tem que ser testável para que você tenha controle sobre as mudanças que fizer nele, pq mudanças = novos bugs. Ao mesmo tempo, se você escreve os testes antes do código, você é forçado a conhecer melhor a especificação do que ele faz. Seus testes se tornam, a uma granularidade muito pequena, uma especificação do seu código. Escrever teste (especificação) e escrever código, repetidamente. Quando seu código começar a crescer, refatorar (opa, vamos falar deste outro livro do Beck mais à frente), retirar as redundâncias, seguro que suas modificações não afetarão o código, e se afetar, que os testes irão lhe mostrar onde.

É basicamente isto o que o livro advoga. Desenvolver aos poucos, começando sempre pelos testes, refatorando quando necessário. Me dá uma sensação de crescimento celular de código, como se fosse uma célula absorvendo nutrientes, crescendo e se dividindo, até formar estruturas mais complexas. Se funcionou na natureza, funciona para a programação?

Há quem advogue que a técnica leva a arquiteturas pobres e mal planejadas, ou que perde-se muito tempo no processo, tanto escrevendo os testes como mantendo estes mesmos testes quando as coisas mudam lá na frente. De fato, manter um código com boa cobertura de testes é, para os desacostumados, caro e doloroso. A prática promete ganhos futuros argumentando que bugs são caros porque levam tempo para serem encontrados e corrigidos, e num mundo onde o atraso de deadline significa multa contratual, qualidade não é mais um luxo, é um requisito.

Na prática, os resultados são bastante distoantes. Alguns evangelistas defenderão até a morte que TDD é uma bala de prata, enquanto outros dirão que é caro demais. Procurando algum embasamento, achei este interessante paper da Microsoft sobre o resultado do uso de TDD em dois de seus projetos, um em C++ e outro em .NET. Obviamente, linguagens com maiores facilidades de OO são beneficiados com TDD, então os resultados para .NET foram melhores que para C++. Ainda, os resultados foram bastante positivos em ambos os projetos, mostrando ganhos de qualidade (contados por números de bugs) muito significativos (melhorias de 2,6 a 4,2 vezes) a um custo médio em torno de 15% a 30% a mais de tempo. Consistentemente, algumas linguagens permitem ganhos maiores a um custo menor de tempo, então TDD não é uma bala de prata para qualquer linguagem, como gostariam de acreditar alguns. Ou pelo menos, não tão bom quanto é para JAVA ou .NET por exemplo.

A experiência ensina a duras penas aos desenvolvedores que tudo tem um custo, mesmo a hype mais miraculosa. Ciente da realidade, TDD é uma técnica e tanto, que em termos práticos, traz ganhos muito significativos e palpáveis. Difícil é determinar até onde o tradeoff de esforço e qualidade vale a pena.

Teste de Software 0 Comentários

O Post Inaugural

São cerca de 10 anos em várias encarnações de buscas parecidas. Intelligenesis. Webmind. Vetta Technologies. E atualmente, Vetta Labs.

Vetta, em sânscrito, significa “aquele que detêm o conhecimento”. Mas foi graças a este post do Shane Legg, ex-webminder, com quem trabalhamos anos atrás (e cicceroneamos, ele fez caminhada na Serra do Cipó e tudo mais), achei novos significados para o termo. Em italiano, Vetta significa cume, pico, ápice. Bastante pomposo isso ;-).

Pomposidades à parte, a verdade é que, no Labs (como a chamamos, pois empresa é substantivo feminino, talvez não à toa), a busca pelo conhecimento sempre foi a tônica. Sempre esta mão da pesquisa, da inovação, do desenvolvimento tecnológico buscando apertar a outra mão, a do mercado, que realiza.

No fundo, no fundo, existe uma ideologia por trás do Labs. A ideologia de que existe um modelo de negócios que valoriza o conhecimento, e que essa excelência tão almejada virá através das pessoas que valorizam este conhecimento. A ciência permeia e define esta empresa.

Este blog pretende estreitar várias distâncias, porque também somos um tanto tecnólogos e acreditamos que a tecnologia pode fazer isso. Queremos estreitar a distância entre a tecnologia e seus usos. Aproximar nosso dia-a-dia do seu dia-a-dia. É a nossa janela.

Espie. ;-)

Memória 0 Comentários

Next Entries »