BACKGROUND
• R&D at INRIA, France.
• Mobile Games & Technology.
• Geek.
• Developer.
• Just came back from Silicon Valley, 4
months developing a product there.
Slide 4
Slide 4 text
START
Slide 5
Slide 5 text
• Adapting.
• Building Stuff early on.
• Learning.
Everything is an assumption.
To validate our ideas.
Change our shoes, while we are still running.
TOPICS
Slide 6
Slide 6 text
• Coding.
• Irrefutable truths.
Ok, maybe just a bit.
What works for me, may not work for you.
• Mega Scale.
i,e Facebook, Twitter, Instagram.
NOT TOPICS
Slide 7
Slide 7 text
PART 1: DEVELOPMENT
Slide 8
Slide 8 text
MVP
What’s a good MVP anyways?
Slide 9
Slide 9 text
“You want to build a huge ship, but instead of building the ship right from the beginning, you start by
testing your idea with minimal design to see if it floats.”
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
• Simple.
• Robust.
Just the essence.
Ok, it can crash from time to time...
• Measurable.
So you can learn from it.
GOOD MVP
Slide 12
Slide 12 text
We need to move fast!
Why such a rush?
Slide 13
Slide 13 text
• Use what you already know.
i.e. Know Javascript? Build your iOS App MVP with Phonegap
• Save time on repetitive tasks.
...and get used to do so!
MOVING FASTER
Slide 14
Slide 14 text
TOOLS
Heroku
Test Flight
Deploy instantly with git.
Distribute iOS Apps to beta testers in seconds.
Trello
Agile collaboration tool.
Hip-Chat
Agile non-obtrusive team chat.
Slide 15
Slide 15 text
Auto Deploy
v/s
Heroku
Slide 16
Slide 16 text
before_migrate do
template "#{release_path}/config/environments/#{app[:environment]}.rb" do
source "#{release_path}/config/environments/chef_development.rb.erb"
local true
owner app[:deploy_user]
group app[:deploy_user]
mode '0400'
variables(:environment_settings => app[:environment_settings].to_hash)
end
rvm_shell "Bundle install and assets precompile" do
ruby_string "#{app[:ruby_ver]}@#{app[:gemset]}"
cwd release_path
user app[:deploy_user]
group app[:deploy_user]
# common_groups = %w{development test cucumber}
# bundle install --deployment --path #{app[:app_root]}/shared/bundle --without #{common_groups.join(' ')}
code %{
bundle install --path #{app[:app_root]}/shared/bundle
}
end
end
before_restart do
rvm_shell "assets precompile" do
ruby_string "#{app[:ruby_ver]}@#{app[:gemset]}"
cwd release_path
user app[:deploy_user]
group app[:deploy_user]
# TODO I could not set the environment via the builtin command. Does not look like it is getting passed to popen4
# So instead of `environment "RAILS_ENV" => app[:environment]` I have it in the code block
code %{
export RAILS_ENV=#{app[:environment]}
bundle exec rake assets:precompile
}
end
end
symlink_before_migrate({
"config/database.yml" => "config/database.yml",
"config/environments/#{app[:environment]}.rb" => "config/environments/#{app[:environment]}.rb"
})
after_restart do
Slide 17
Slide 17 text
#git push heroku master
1 line to deploy your Web App.
Slide 18
Slide 18 text
Lesson 1: Tools can save you time
... and money in the long run!
Slide 19
Slide 19 text
PART 2: MEASURING THE MVP
Slide 20
Slide 20 text
When?
... shall I wait?
Slide 21
Slide 21 text
Why?
... validated learning anyone?
Slide 22
Slide 22 text
“Build-Measure-Learn: How do you build the fastest ship? You try to build and test your hypothesis;
you measure the result; and then you learn new knowledge that you can bring to your next ship design.”
Slide 23
Slide 23 text
What?
... App Downloads?... Page Views?
Slide 24
Slide 24 text
How?
... so many options!
Slide 25
Slide 25 text
TOOLS
• Google Analytics
• Crazy Egg
Not only for Web Apps.
Heatmaps!
• Mix Panel
100% Real time analytics platform.
• Optimizely
A/B Testing you’ll actually use.
Slide 26
Slide 26 text
CONSIDERATIONS
• Support
• Real-time
• Costs
Slide 27
Slide 27 text
Event Tracking Example
Slide 28
Slide 28 text
Track profits of a sale in your website
...using Google Analytics!
! Buy awesome stuff!
PS: You can use something like jQuery to make this more elegant.
Slide 29
Slide 29 text
[tracker trackEventWithCategory:@"UIAction"
withAction:@"PlaySongButtonPress"
withLabel:@"PlaySongButton"
withValue:nil];
Track the touch of a play button in iOS
...using the Google Analytics iOS SDK!
Slide 30
Slide 30 text
Visualize and take action.
Slide 31
Slide 31 text
Lesson 2: Test everything
...the data allows you to learn and build what people really want.