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

What's hot (20)

Finding Our Happy Place in the Internet of Things
Finding Our Happy Place in the Internet of ThingsFinding Our Happy Place in the Internet of Things
Finding Our Happy Place in the Internet of Things
 
chat-GPT-Information.pdf
chat-GPT-Information.pdfchat-GPT-Information.pdf
chat-GPT-Information.pdf
 
PhD defense presenation
PhD defense presenationPhD defense presenation
PhD defense presenation
 
Help Young Talent Develop a Professional Mindset
Help Young Talent Develop a Professional MindsetHelp Young Talent Develop a Professional Mindset
Help Young Talent Develop a Professional Mindset
 
Learn Prompting with ChatGPT
Learn Prompting with ChatGPTLearn Prompting with ChatGPT
Learn Prompting with ChatGPT
 
02_08_How to master the art of storytelling_Lior Shoham.pptx
02_08_How to master the art of storytelling_Lior Shoham.pptx02_08_How to master the art of storytelling_Lior Shoham.pptx
02_08_How to master the art of storytelling_Lior Shoham.pptx
 
3 Cycles Remote Innovation - Build
3  Cycles Remote Innovation - Build 3  Cycles Remote Innovation - Build
3 Cycles Remote Innovation - Build
 
Random Life Hacks
Random Life HacksRandom Life Hacks
Random Life Hacks
 
Awesome Prompts Naveed
Awesome Prompts NaveedAwesome Prompts Naveed
Awesome Prompts Naveed
 
The Dungeons & Dragons Guide to Marketing
The Dungeons & Dragons Guide to MarketingThe Dungeons & Dragons Guide to Marketing
The Dungeons & Dragons Guide to Marketing
 
How ChatGPT and AI-assisted coding changes software engineering profoundly
How ChatGPT and AI-assisted coding changes software engineering profoundlyHow ChatGPT and AI-assisted coding changes software engineering profoundly
How ChatGPT and AI-assisted coding changes software engineering profoundly
 
24 Productivity Habits of Successful People - by @prdotco
24 Productivity Habits of Successful People - by @prdotco24 Productivity Habits of Successful People - by @prdotco
24 Productivity Habits of Successful People - by @prdotco
 
ChatGPT Deck.pptx
ChatGPT Deck.pptxChatGPT Deck.pptx
ChatGPT Deck.pptx
 
Innovation Frameworks
Innovation FrameworksInnovation Frameworks
Innovation Frameworks
 
Improve Productivity & Be Happier At Work
Improve Productivity & Be Happier At WorkImprove Productivity & Be Happier At Work
Improve Productivity & Be Happier At Work
 
Agile Fundamentals and Best Practices (with Trello)
Agile Fundamentals and Best Practices (with Trello)Agile Fundamentals and Best Practices (with Trello)
Agile Fundamentals and Best Practices (with Trello)
 
Design Thinking: Ideation Techniques
Design Thinking: Ideation TechniquesDesign Thinking: Ideation Techniques
Design Thinking: Ideation Techniques
 
Product Validation With Product Discovery
Product Validation With Product Discovery Product Validation With Product Discovery
Product Validation With Product Discovery
 
Nurturing Innovation Mindset
Nurturing Innovation MindsetNurturing Innovation Mindset
Nurturing Innovation Mindset
 
Mocking in python
Mocking in pythonMocking in python
Mocking in python
 

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
 
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...
 
Dust.js
Dust.jsDust.js
Dust.js
 

Recently uploaded

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
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 

Recently uploaded (20)

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...
 
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...
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
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
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
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
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 

Rapid prototyping