Upgrade to Pro — share decks privately, control downloads, hide ads and more …

On Development, Measuring & Learning

Nicolas Goles
November 12, 2012

On Development, Measuring & Learning

Talk I gave for 5th Year engineers and Innovation students at Universidad Adolfo Ibañez, Santiago, Chile.

Nicolas Goles

November 12, 2012
Tweet

More Decks by Nicolas Goles

Other Decks in Business

Transcript

  1. BACKGROUND • R&D at INRIA, France. • Mobile Games &

    Technology. • Geek. • Developer. • Just came back from Silicon Valley, 4 months developing a product there.
  2. • Adapting. • Building Stuff early on. • Learning. Everything

    is an assumption. To validate our ideas. Change our shoes, while we are still running. TOPICS
  3. • 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
  4. “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.”
  5. • Simple. • Robust. Just the essence. Ok, it can

    crash from time to time... • Measurable. So you can learn from it. GOOD MVP
  6. • 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
  7. 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.
  8. 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
  9. “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.”
  10. 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.
  11. Track profits of a sale in your website ...using Google

    Analytics! <a href="#" onClick="_gaq.push(['_trackEvent', 'Purchases', 'profits', 'Awesome Item', 299]);"> ! Buy awesome stuff! </a> PS: You can use something like jQuery to make this more elegant.