NodeHack #2 - MVP

  • 894 views
Uploaded on

A presentation on what is MVP (minimum viable product) and how it can help hackers survive hackathons. Presented during NodeHack #2

A presentation on what is MVP (minimum viable product) and how it can help hackers survive hackathons. Presented during NodeHack #2

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
894
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. MVPa hackathoner’s best friend
  • 2. Who am I?• Ruben Tan• Lead Developer in 40 Square Software• Node.JS disciple• Still a Goblin Camp addict
  • 3. What is MVP• Minimum Viable Product• The smallest feature set to be released• YAGNI,YAGNI,YAGNI
  • 4. What Software Engineers Want
  • 5. What Actually Got Built
  • 6. What Usually Happens
  • 7. MVP
  • 8. MVP• Evolution vs Divine Design • Usually, your framework™ won’t solve anybody’s problem • Imagined features are not features • Be economic and result oriented
  • 9. MVP Example01 var express = require(‘express’);0203 var server = express.createServer();0405 server.configure(function() {0607 // Use a simple view engine08 server.register(‘html’, require(‘ejs’));09 server.set(‘views’, __dirname + ‘/view’);10 server.set(‘view engine’, ‘html’);1112 // Serve only static files for now13 server.use(express.static(__dirname + ‘/public’);1415 });1617 server.get(‘/’, function(req, res) {18 res.render(‘index.html’);19 });2021 server.listen(1337);
  • 10. MVP Evolve01 var express = require(‘express’);0203 var server = express.createServer();04 var db = {}; // add a DB here0506 server.configure(function() {0708 // Use a simple view engine09 server.register(‘html’, require(‘ejs’));10 server.set(‘views’, __dirname + ‘/view’);11 server.set(‘view engine’, ‘html’);1213 // Add session support14 server.use(express.cookieParser());15 server.use(express.session({ secret : ‘Nodehack’ });1617 // Serve only static files for now18 server.use(express.static(__dirname + ‘/public’);1920 });2122 server.get(‘/’, function(req, res) {23 res.render(‘index.html’);24 });2526 server.listen(1337);
  • 11. 01 MVP Refactor var express = require(‘express’);0203 var server = express.createServer();04 var db = {05 config : { secret : ‘NodeHack’ }06 };0708 server.configure(function() {0910 // Use a simple view engine11 server.register(‘html’, require(‘ejs’));12 server.set(‘views’, __dirname + ‘/view’);13 server.set(‘view engine’, ‘html’);1415 // Add session support16 server.use(express.cookieParser());17 server.use(express.session({ secret : db.config.secret });1819 // Serve only static files for now20 server.use(express.static(__dirname + ‘/public’);2122 });2324 server.get(‘/’, function(req, res) {25 res.render(‘index.html’);26 });2728 server.listen(1337);
  • 12. MVP Future• Move DB into it’s own module• Add a connector using the Adapter Pattern• Move session storage into DB/Cache• etc etc etc
  • 13. MVP Principles• Prototype First, Refactor Later• Use TDD/BDD to simplify refactoring• Forward engineer only when necessary• YAGNI,YAGNI,YAGNI
  • 14. process.exit();