Slide 1

Slide 1 text

ABOUT DEVELOPING MEASURING & LEARNING

Slide 2

Slide 2 text

@NGOLES

Slide 3

Slide 3 text

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.

Slide 32

Slide 32 text

THE END @NGOLES