Your SlideShare is downloading. ×
0
NodeHack #2 - MVP
NodeHack #2 - MVP
NodeHack #2 - MVP
NodeHack #2 - MVP
NodeHack #2 - MVP
NodeHack #2 - MVP
NodeHack #2 - MVP
NodeHack #2 - MVP
NodeHack #2 - MVP
NodeHack #2 - MVP
NodeHack #2 - MVP
NodeHack #2 - MVP
NodeHack #2 - MVP
NodeHack #2 - MVP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

NodeHack #2 - MVP

954

Published 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

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
954
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
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();

    ×