Ombros de Gigantes
Marcio Marchini
marcio@BetterDeveloper.net
Rangel Torrezan:
rangel.iflex@gmail.com
18/05/2014
O que eu usaria se eu
fosse competir com os
gigantes da
tecnologia?
O que as Startups
Enxutas estão
usando para
competir com esses
gigantes?
Inovação
Os Gigantes
X
X
X
X
O que os gigantes
esqueceram?
Roda Viva: “Eu sou você amanhã”
Não subestime os pequenos!
Pedra que não rola, cria limo
A necessidade faz o sapa pular
Por Falar em Sapo
Pular...
VS
“If I have seen
further it is by
standing on the
shoulders of giants”
Isaac Newton
1. Design Thinking / Canvas / Lean
2. Cloud / PaaS
3. NoSQL
4. Open Source
Quais ombros subir?
5. Práticas Ágeis
6. Ling. Dinâmicas
1
Design Thinking
Exploração centrada no ser humano
Design Thinking
Qual a dor queremos resolver?
EMPATIA
Rápido e Sujo - Protótipo
Ideias validadas o mais breve
Saia do escritório!!!!
Design Thinking
Critérios
DESEJABILIDADE
VIABILIDADE
PRATICABILIDADE
NECESSIDADE
HUMANA
EXISTE TECNOLOGIA
ECÔNOMICAMENTE
VIÁVEL
BMG – Canvas
Início
Parece ser uma boa ideia
Parece ser uma dor
BMG - Canvas
1º Passo
Montar o Modelo de Negócios
Montar o Modelo
BMG – Canvas
O modelo
• 9 Elemenos
• 2 Principais
• Proposta de valor
• Seguimento de clientes Pilares
BMG – Canvas
Objetivos
Fácil Avaliar
Fácil Visualizar
Fácil de manipular
. . . . . . .
. . . . . . .
. . . .
Lean Startup
Lean Startup
ELIMINATE
UNCERTAINTY
WORK SMARTER
NOT HARDER
DEVELOP AN
MVP VALIDATED
LEARNING
Lean Startup
MVP
SEJA
CRIATIVO
Cartolina
Protótipo
Simulação
Landing Page
Vídeo
MVP Produto
Lean Startup
MVP
2. Cloud/PaaS
(Ambiente Desenvolvimento)
Vantagens
Sem servidores
Esforço admin de rede
DBAs
Backups
Como se fazia
app web...
 Servidor comprado, num CPD próprio
$$$$$
 O cheque de US$100K do investidor na
Google foi para comprar, principalmente,
as máquinas
Evoluindo
SaaS
Servidor Alugado
(Maior escala,
colocation, ...)
IaaS
PaaS
 Quanto custa a infra de uma startup?
 Como posso ser altamente escalável?
 Quanto tempo levaria para preparar o meu
ambiente?
Valore$
Medindo
tempo x custo
 Criar uma conta no Heroku: 5 mins
 Criar um servidor no Heroku: 2 mins
 Tempo Total: 7 mins pra ter um servidor 24/7 escalável, pay-as-you-go
 Custo Total: R$0 (1 heroku dyno)
 Servidor de desenvolvimento = R$0
 Web site = R$0
Escalando: Quanto custa?
• Escalar pra 50 servidores: 10 segundos
• Custo Total: US$ 1762.50 por mês (50 heroku dynos)
E Storage?
Medindo
• Adicionar uma base PostgreSQL: 30 segundos
– pra ter um banco SQL 24/7 escalável, pay-as-you-go
• Custo Total: R$0 (máximo 10 mil registros)
– Servidor de desenvolvimento = R$0
– Web site = R$0
Escalando
• Pague pela quantidade de água que você consome. Startup: R$0
• Heroku é o maior deploy de PostgreSQL do mundo
• Heroku pertence à Salesforce. “Bebem o próprio Champagne.”
– Assim como a Amazon/Loja usa o próprio S3, DynamoDB etc
Backup
• PostgreSQL backup – também um Add-On
Otimizando/Cache: Quanto custa?
• Memcache, REDIS: Pague pela quantidade de água que
você consome. Startup: R$0
Monitoramento
• New Relic – também um Add-On. R$0 pro básico (start-
ups)
Tickets, Controle de Versão, ...
• www.xp-dev.com: TRAC, Git, SVN, CVS gratuito pra 1
projeto (mesmo que comercial): R$0.
Preço proporcional ao Uso
• Caso precises de múltiplos projetos...
2. NoSQL
NoSQL
Quebra de Paradigmas
E NoSQL: Quanto custa?
• Hadoop, MongoDB, Neo4J, CouchDB, Riak, Cassandra
3. Open Source
Mais vantagens ...
X
X
X
4. Práticas Ágeis
ATDD / BDD (um dos Ombros)
• www.NamoroOn.com:
Especificação Ágil Executável
5. Linguagens
Dinâmicas
Gargalos em nossas aplicações
Tempo
Desen.
I/O
CRUD
KLOC
Maximize a quantidade de KLOC que você
NÃO PRECISA ESCREVER
+ +
- -
Minimizando KLOC:
Componentes!!!!!!!!
NoSQL pra escalabilidade
REDIS pra Cache
Reusabilidade com componentes de terceiros!!
Linguagem de programação mais expressiva
Expressividade em Linguagens
• Computer Language Shootout Compara performance
em 10 problemas simples.
– Também lista RAM usada
– Também lista LOC usados
Estudo de
Expressividade
50
Qual Linguagem Escolher?
Qual Ling. Dinâmica Escolher?
– As esotéricas: Scala, Clojure, etc
• Influências de Functional Programming, Haskel etc
– As de cola: Groovy (chama Java fácil)
– As da moda: Ruby (Ruby on Rails, etc), Javascript
(Node.js)
– As sólidas que resistiram ao tempo: Python
– As mais fáceis de achar gente
• Ruby >> Python >> Groovy
Alan Kay
– “Simple things should be simple. Complex
things should be possible”- Allan Kay
• Inventor do Smalltalk
• Inventor da Orientação a Objetos
• Inventor do Sistema de Janelas Gráficas
4. OK, mas quem
utiliza e quais são os
números?!?!
Quem usa Ling.
Dinâmica
• GAE, MapReduce
• Guido
• Guido
• PHP gerando nativo
com HipHop
Quem usa Ling.
Dinâmica
• SaaS de monitoramento
• 800 KLOC
Cases Atuais - Facebook
• PHP (ling. Dinâmica)
• MySQL com Memcache.
• HD SSD DB performance
• 3 bilhões de uploads de foto / mês
• 1.2 milhões de fotos servidas / segundo
• Cassandra (Inbox)
• Hadoop+Hive p/ análise de dados (Big Data)
Cases Atuais - Pinterest
• 150 instâncias web Amazon EC2
• 90 instâncias EC2 pra memcache
• 70 databases para redundância (uso de Sharding).
Hadoop p/ análise de dados.
• Código em Python/Django
Cases Atuais - Dropbox
• 1 milhão de arquivos salvos a cada 15mins
• 99.9% do código: Python (server, client, analytics, etc)
Ressalvas
• Considerar os seguintes aspectos na escolha da
plataforma:
– Open Standard ou Proprietário?
– Qual o custo da licença por desenvolvedor?
– Quão atraente é a tecnologia? (trazer talentos)
– Qual o tamanho da comunidade de profissionais? Livros, fórums, suporte,
etc
– Alinhamento com Universidades, etc (o que vêm-se usando?)
– Qual a quantidade de componentes reusáveis? (diminuir LOC)
– Otimizar / performance onde realmente interessa. “Premature
optimization is the root of all evil” – Donald Knuth
O Futuro: Startups Creating A
New System For IT
– http://highscalability.com/blog/2012/5/7/startups-are-
creating-a-new-system-of-the-world-for-it.html
Então já temos!!
6. Ling. Dinâmicas
5. Práticas Ágeis
4. Open Source
3. NoSQL
2. Cloud / PaaS
1. Design Thinking / Canvas / Lean
Ainda falta mais ...
30/05/2013
Pessoas
• Existem interessados?
• Como está o mercado para
atrair e reter esses
talentos?
• Consigo um ambiente
sustentável?
Tropa de Elite
Intrapreneurs!
Análise
Interesse x Plataforma
• TIOBE Programming Community Index for June 2013
– Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu
• LangPop.com
– Yahoo!, Craigslist, Powell's Books, Freshmeat, Google Code,
Del.icio.us, Ohloh.
– Lambda The Ultimate, programming.reddit.com, Slashdot, IRC.
• Indeed.com
– Site de empregos.
TIOBE LangPop
Indeed
Fazer X Vender
Monetização etc:
Fica pra outra palestra!
Segundo Dave Thomas:
“You have to be able to build it. You have to be able to sell it.
Most companies fail at one of these 2, or both”.
Conclusões
Tudo que foi colocado aqui
não é a bala de prata
Grandes soluções surgem a
todo momento
Pequenas empresas já
crescem com condições
iguais às grandes
Empresas grandes têm
dificuldade de se mover de
forma ágil & reter
intrapreneurs.
Perguntas?
Insanity: doing the same thing over and over again and expecting different results
-- Albert Einstein
Marcio Marchini
http://www.BetterDeveloper.net
http://br.linkedin.com/in/marciomarchini/
Rangel Torrezan:
rangel.iflex@gmail.com
http://br.linkedin.com/in/rangeltorrezan
Referências
• http://ontwik.com/python/pycon-2011-how-dropbox-did-it-and-how-python-helped/
• http://benchmarksgame.alioth.debian.org
• http://redmonk.com/dberkholz/2013/03/25/programming-languages-ranked-by-expressiveness/
• http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
• http://www.langpop.com/
• http://benchmarksgame.alioth.debian.org
• http://en.wikipedia.org/wiki/HipHop_for_PHP
• https://www.djangoproject.com
• http://www.technologyreview.com/featuredstory/410312/how-facebook-works/
• http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/
• http://highscalability.com/blog/2012/5/21/pinterest-architecture-update-18-million-visitors-10x-
growth.html
• http://highscalability.com/blog/2011/3/14/6-lessons-from-dropbox-one-million-files-saved-every-15-
minu.html

OmbrosDeGigantes-TDC2014

Notas do Editor