SlideShare a Scribd company logo
1 of 57
Download to read offline
Rapid Prototyping
Yevgeniy Brikman
Go from an idea to working code quickly.
Why?
1. Build products faster
Why?
1. Build products faster
2. ???
Why?
1. Build products faster
2. ???
3. Profit!!
Why?
1. Build products faster
2. ???
3. Profit!!
Why?
1. Build products faster
2. Build products of higher quality
3. Profit!!
Why?
1. Build products faster
2. Build products of higher quality
3. Become a better engineer
Outline
1. Instant Feedback
2. Leverage
3. Beyond prototypes
Instant Feedback
The antithesis of rapid prototyping.
Change the code
Change the code See the result
Change the code See the result
Should be as close to 0 as possible
Use dynamic/interpreted languages
1. No waiting for compilation
Use dynamic/interpreted languages
1. No waiting for compilation
2. Generally more flexible and hackable
Use dynamic/interpreted languages
1. No waiting for compilation
2. Generally more flexible and hackable
3. "A programming language is for thinking of
programs, not for expressing programs
you've already thought of." [1]
[1] Paul Graham, Hackers and Painters
Use interactive languages
1. The REPL is your friend
Use interactive languages
1. The REPL is your friend
2. Some static languages support hot reload
(Play Framework, JRebel)
Use interactive languages
1. The REPL is your friend
2. Some static languages support hot reload
(Play Framework, JRebel)
3. IDEs can help too[1][2]
[1] Scala worksheet in Eclipse
[2] http://www.lighttable.com/
Push everything to the client
1. Modern browsers are powerful
Push everything to the client
1. Modern browsers are powerful
2. JS/CSS feedback loop is nearly
instantaneous
Push everything to the client
1. Modern browsers are powerful
2. JS/CSS feedback loop is nearly
instantaneous
3. Tight feedback loop in the browser often
leads to a better user experience
Demo
1. Frameworks: node-dev, express, play
2. Client-side MVC: backbone.js, underscore.js
3. In-browser: firebug, developer tools, jsfiddle,
tinkerbin
4. Other: CodeKit, apigee, js-api console
node-dev: restarts node on every change
Play Framework: modern web framework for Java and
Scala that supports hot reload
Chrome dev tools: inspect the page and change it on
the fly!
JSFiddle: create, run, and share HTML/CSS/JS snippets
right in the browser.
apigee: try out 3rd party APIs (LinkedIn, twitter, facebook,
etc) directly in the browser
Leverage
tldr: google & stackoverflow are your
friends
Don't reinvent the wheel
1. Always, always, always google first
Don't reinvent the wheel
1. Always, always, always google first
2. StackOverflow has the best answers
Don't reinvent the wheel
1. Always, always, always google first
2. StackOverflow has the best answers
3. You'll be lucky if you have a single original
idea your entire life [1]
[1] Mr. Patch, my 11th grade physics teacher
Use open source libraries
1. There is probably (more than) one for the
problem you're solving
Use open source libraries
1. There is probably (more than) one for the
problem you're solving
2. They have probably solved parts of the
problem you haven't thought of yet
Use open source libraries
1. There is probably (more than) one for the
problem you're solving
2. They have probably solved parts of the
problem you haven't thought of yet
3. Many minds are better than one
Use open source libraries
1. There is probably (more than) one for the
problem you're solving
2. They have probably solved parts of the
problem you haven't thought of yet
3. Many minds are better than one
4. Bonus: learn from their code
Demo
1. Backend: node modules, node toolbox,
ruby toolbox, mongo
2. JS: jQuery (UI, tools), backbone, underscore
3. UI: bootstrap, jetstrap, google fonts,
compass
4. Other: node.js screen scraping, lorem ipsum,
placekitten.com, localtunnel
ruby-toolbox: open source ruby libraries, broken down
by category, ranked by popularity and quality.
node-toolbox: open source node.js libraries, broken
down by category, ranked by popularity and quality.
jquery: the de-fact cross-browser JS library. Don’t leave
home without it.
underscore: dozens of extremely useful javascript
functions. The most popular library in npm.
bootstrap: frontend framework that makes it easy to
create a clean, responsive UI, even if you aren’t a CSS pro.
Google fonts: free fonts to use in your app
localtunnel: a quick way to share an app running on
localhost with the outside world
Beyond prototyping
All software development is trial and error.
A canvas or sketchbook serves as an
"external imagination", where an artist can
grow an idea from birth to maturity by
continuously reacting to what's in front of
him [1]
[1] Bret Victor, Learnable Programming
Only about 10% of the UI code written to
craft the experience lasted more than a year.
90% of the UI code needed to be thrown
away. [1]
[1] Bill Scott, The Experimentation Layer
Time
Maturity
Mature, stable
Proof of concept
Product development (technology comparison)
Dynamic/interpreted
languages Static languages
Idea
Time
Maturity
Mature, stable
Proof of concept
Dynamic/interpreted
languages Static languages
Innovation
Advantage
Product development (technology comparison)
Idea
Time
Maturity
Mature, stable
Proof of concept
RoR, Play
Servlets, Spring
Innovation
Advantage
Product development (framework comparison)
Idea
Time
Maturity
Mature, stable
Proof of concept
Agile, Scrum
Waterfall
Innovation
Advantage
Product development (development method comparison)
Idea
Faster can mean higher quality
1. In a trial and error world, getting to errors
faster is the key to success
Faster can mean higher quality
1. In a trial and error world, getting to errors
faster is the key to success
2. Making more errors leads to better software
and better engineers
Faster can mean higher quality
1. In a trial and error world, getting to errors
faster is the key to success
2. Making more errors leads to better software
and better engineers
3. Speed wins [1]
[1] A handwritten note on the door to the office of Stephen Kaufer, TripAdvisor CEO

More Related Content

What's hot

Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm
Chandler Huang
 
Column oriented database
Column oriented databaseColumn oriented database
Column oriented database
Kanike Krishna
 

What's hot (20)

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm
 
What is big data?
What is big data?What is big data?
What is big data?
 
Mongodb
MongodbMongodb
Mongodb
 
Hadoop File system (HDFS)
Hadoop File system (HDFS)Hadoop File system (HDFS)
Hadoop File system (HDFS)
 
IoT backend architecture
IoT backend architectureIoT backend architecture
IoT backend architecture
 
Amplitude Behavioral Cohorts Deep Dive
Amplitude Behavioral Cohorts Deep DiveAmplitude Behavioral Cohorts Deep Dive
Amplitude Behavioral Cohorts Deep Dive
 
Machine Learning for retail and ecommerce
Machine Learning for retail and ecommerceMachine Learning for retail and ecommerce
Machine Learning for retail and ecommerce
 
Intro to HBase
Intro to HBaseIntro to HBase
Intro to HBase
 
Data modelling 101
Data modelling 101Data modelling 101
Data modelling 101
 
What is NoSQL and CAP Theorem
What is NoSQL and CAP TheoremWhat is NoSQL and CAP Theorem
What is NoSQL and CAP Theorem
 
The Future of Data Warehousing and Data Integration
The Future of Data Warehousing and Data IntegrationThe Future of Data Warehousing and Data Integration
The Future of Data Warehousing and Data Integration
 
Mongodb basics and architecture
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architecture
 
Column oriented database
Column oriented databaseColumn oriented database
Column oriented database
 
Dataiku & Snowflake Meetup Berlin 2020
Dataiku & Snowflake Meetup Berlin 2020Dataiku & Snowflake Meetup Berlin 2020
Dataiku & Snowflake Meetup Berlin 2020
 
Building End-to-End Delta Pipelines on GCP
Building End-to-End Delta Pipelines on GCPBuilding End-to-End Delta Pipelines on GCP
Building End-to-End Delta Pipelines on GCP
 
Architecting Agile Data Applications for Scale
Architecting Agile Data Applications for ScaleArchitecting Agile Data Applications for Scale
Architecting Agile Data Applications for Scale
 
Introduction to MongoDB.pptx
Introduction to MongoDB.pptxIntroduction to MongoDB.pptx
Introduction to MongoDB.pptx
 
Metadata Strategies - Data Squared
Metadata Strategies - Data SquaredMetadata Strategies - Data Squared
Metadata Strategies - Data Squared
 
20090713 Hbase Schema Design Case Studies
20090713 Hbase Schema Design Case Studies20090713 Hbase Schema Design Case Studies
20090713 Hbase Schema Design Case Studies
 

Similar to Rapid prototyping

Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Wojciech Koszek
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
Svetlin Nakov
 

Similar to Rapid prototyping (20)

The Ring programming language version 1.9 book - Part 97 of 210
The Ring programming language version 1.9 book - Part 97 of 210The Ring programming language version 1.9 book - Part 97 of 210
The Ring programming language version 1.9 book - Part 97 of 210
 
The Ring programming language version 1.10 book - Part 99 of 212
The Ring programming language version 1.10 book - Part 99 of 212The Ring programming language version 1.10 book - Part 99 of 212
The Ring programming language version 1.10 book - Part 99 of 212
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community Support
 
The Ring programming language version 1.5.1 book - Part 173 of 180
The Ring programming language version 1.5.1 book - Part 173 of 180 The Ring programming language version 1.5.1 book - Part 173 of 180
The Ring programming language version 1.5.1 book - Part 173 of 180
 
The Ring programming language version 1.3 book - Part 81 of 88
The Ring programming language version 1.3 book - Part 81 of 88The Ring programming language version 1.3 book - Part 81 of 88
The Ring programming language version 1.3 book - Part 81 of 88
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
 
Webdev and programming
Webdev and programming  Webdev and programming
Webdev and programming
 
Python overview
Python overviewPython overview
Python overview
 
Upwork time log and difficulty 20160523
Upwork time log and difficulty 20160523Upwork time log and difficulty 20160523
Upwork time log and difficulty 20160523
 
Creating a compiler for your own language
Creating a compiler for your own languageCreating a compiler for your own language
Creating a compiler for your own language
 
Android Developer Training
Android Developer TrainingAndroid Developer Training
Android Developer Training
 
What is a "programmer"?
What is a "programmer"?What is a "programmer"?
What is a "programmer"?
 
Is Python still production ready ? Ludovic Gasc
Is Python still production ready ? Ludovic GascIs Python still production ready ? Ludovic Gasc
Is Python still production ready ? Ludovic Gasc
 
Michael Widenius
Michael WideniusMichael Widenius
Michael Widenius
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?
 
Advanced java script essentials v1
Advanced java script essentials v1Advanced java script essentials v1
Advanced java script essentials v1
 
Advice for Computer Science freshers!
Advice for Computer Science freshers!Advice for Computer Science freshers!
Advice for Computer Science freshers!
 
The Ring programming language version 1.2 book - Part 77 of 84
The Ring programming language version 1.2 book - Part 77 of 84The Ring programming language version 1.2 book - Part 77 of 84
The Ring programming language version 1.2 book - Part 77 of 84
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Functional rotterdam-20-09-16
Functional rotterdam-20-09-16Functional rotterdam-20-09-16
Functional rotterdam-20-09-16
 

More from Yevgeniy Brikman

More from Yevgeniy Brikman (20)

Cloud adoption fails - 5 ways deployments go wrong and 5 solutions
Cloud adoption fails - 5 ways deployments go wrong and 5 solutionsCloud adoption fails - 5 ways deployments go wrong and 5 solutions
Cloud adoption fails - 5 ways deployments go wrong and 5 solutions
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
 
Lessons learned from writing over 300,000 lines of infrastructure code
Lessons learned from writing over 300,000 lines of infrastructure codeLessons learned from writing over 300,000 lines of infrastructure code
Lessons learned from writing over 300,000 lines of infrastructure code
 
Gruntwork Executive Summary
Gruntwork Executive SummaryGruntwork Executive Summary
Gruntwork Executive Summary
 
Reusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modulesReusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modules
 
The Truth About Startups: What I wish someone had told me about entrepreneurs...
The Truth About Startups: What I wish someone had told me about entrepreneurs...The Truth About Startups: What I wish someone had told me about entrepreneurs...
The Truth About Startups: What I wish someone had told me about entrepreneurs...
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECS
 
Comprehensive Terraform Training
Comprehensive Terraform TrainingComprehensive Terraform Training
Comprehensive Terraform Training
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
 
Agility Requires Safety
Agility Requires SafetyAgility Requires Safety
Agility Requires Safety
 
Startup Ideas and Validation
Startup Ideas and ValidationStartup Ideas and Validation
Startup Ideas and Validation
 
A Guide to Hiring for your Startup
A Guide to Hiring for your StartupA Guide to Hiring for your Startup
A Guide to Hiring for your Startup
 
Node.js vs Play Framework (with Japanese subtitles)
Node.js vs Play Framework (with Japanese subtitles)Node.js vs Play Framework (with Japanese subtitles)
Node.js vs Play Framework (with Japanese subtitles)
 
Node.js vs Play Framework
Node.js vs Play FrameworkNode.js vs Play Framework
Node.js vs Play Framework
 
Composable and streamable Play apps
Composable and streamable Play appsComposable and streamable Play apps
Composable and streamable Play apps
 
Play Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and ScalaPlay Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and Scala
 
The Play Framework at LinkedIn
The Play Framework at LinkedInThe Play Framework at LinkedIn
The Play Framework at LinkedIn
 
Kings of Code Hack Battle
Kings of Code Hack BattleKings of Code Hack Battle
Kings of Code Hack Battle
 
Hackdays and [in]cubator
Hackdays and [in]cubatorHackdays and [in]cubator
Hackdays and [in]cubator
 
Startup DNA: the formula behind successful startups in Silicon Valley (update...
Startup DNA: the formula behind successful startups in Silicon Valley (update...Startup DNA: the formula behind successful startups in Silicon Valley (update...
Startup DNA: the formula behind successful startups in Silicon Valley (update...
 

Recently uploaded

Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Christo Ananth
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
Tonystark477637
 

Recently uploaded (20)

Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 

Rapid prototyping