SlideShare a Scribd company logo
1 of 56
Faster! Faster!
Accelerating your business with blazing prototypes




                                        Drew Engelson
                                        @handofdoom
Why am I here?
I’m Drew Engelson
 I work for Celerity
 - “The business acceleration consultancy”
 - We help get companies “unstuck”
 I help organizations decide what tech to buy or build
 - National Geographic Society
 - PBS
 - American Diabetes Association
 Then we make it happen
First… a disclaimer
 I’m a Pythonista
 I’m a Djangonaut
 Blame OSCON 2006
Hence, my huge man-crush on JKM




Photo: Jason Samsa @ Flickr
Cultures of stagnation
Risk aversion
Always choosing path well traveled
"Innovation is R&D’s job”

     a.k.a. Not your job
Dwelling on past investments
Over-management and review of new ideas
“We have too much real work to do.”
Cultures of Innovation

   Props to Josh Linkner
Fuel passion
Celebrate ideas
Foster autonomy
Encourage courage
Fail forward
Think small
Institutionalize this stuff
COTS vs. Open Source
“COTS is the safer choice”

No one ever got fired for choosing ___________.
“COTS does it out of the box”

        That’s horse crap!
Photo: Daleeast @ Flickr
Photo: Kethera @ Flickr
Rapid Prototypes
“If only I could show you!”
Developers [sometimes] have good ideas

             Give ‘em a chance!
Reduce the potential cost of failure;
    Timebox the experiment

           “OK, you get 2 days”
The Framework Showdown
The challenge
 Build a simple, fully functional prototype
 - A basic web service for image transformation
 Requirements
 - Pass in a source image url, desired height and width
 - Pull down the image to server
 - Resize the image on the server
 - Return derivative image
The challenge

                              ur l =
                              ht t p: / / f ar m s t at i c f l i c kr . c om 7138/ 7576110858_d66eec 09f 5_z . j pg
                                                8.                           /
                              w dt h = 200
                               i
                              hei ght = 200




Photo: Tomcrenshaw @ Flickr
I’m talking REAL functional code;
    minimize throw away work

         Evolve to production
Surveyed a few frameworks
 PHP
 - Zend
 - CodeIgniter

 Python
 - Django
 - Flask
 - Bottle




                     I know, there are many other choices… Which is your favorite?
Compared on
 Learning curve
 Ease of bootstrapping dev environment
 Ease of development
  - # of files created or touched
  - # of lines written or modified
  - Complexity of code
 Speed of deployment
  - Need to share with others, right?




 Note: This is a very non-scientific study
The non-scientific results
$ pip install Flask requests PIL

     Then write ~19 lines of Python
i mp o r t c S t r i n g I O

i mp o r t r e q u e s t s
f r o m PI L i mp o r t I mag e
f r o m f l as k i mp o r t F l as k , r e q u e s t , s e n d _ f i l e

ap p = F l as k ( _ _ n ame _ _ )

@ap p . r o u t e ( ' / ' , me t h o d s = [ ' GET' , ] )
d ef res i z e( ) :
        u r l = r e q u e s t . val u e s [ ' u r l ' ]
        r e q = r e q u e s t s . ge t ( u r l )
        r e s o u r c e = c S t r i n g I O. S t r i n g I O( r e q . c o n t e n t )
        i mag e = I mag e . o p e n ( r e s o u r c e )
        i mag e = i mag e . r e s i z e ( ( i n t ( r e q u e s t . val u e s [ ' w' ] ) ,
i n t ( r e q u e s t . val u e s [ ' h ' ] ) ) ,
                I mag e . ANTI AL I AS )
        r e s o u r c e = c S t r i n g I O. S t r i n g I O( )
        i mag e . s ave ( r e s o u r c e , ' JPEG' )
        r e s o u r c e . s e e k ( 0)
        r e t u r n s e n d _ f i l e ( r e s o u r c e , mi me t yp e = ' i mag e / j p e g ' )

i f _ _ n ame _ _ = = ' _ _ mai n _ _ ' :
      ap p . r u n ( d e b u g = Tr u e )
Quick and easy local server

   Django: manage.py runserver
         Flask: app.run()
Get boilerplate out of the way!
Don’t trust anything that has built-in smilies 

                 Sorry, CodeIgniter
How do I share it?
$ git push heroku master

Really... does anything else matter?
What does this all mean?
Use what you know!

Learning curve is biggest time suck.
Keep it real

Don’t assume failure… this may have legs.
Don’t be afraid of…

Failure; the unknown; the undead
Give ‘em a little rope…

  But don’t hang ‘em with it
Hold a few “hack days”
Spread knowledge;
Hold sessions to share ideas

     I call these “mind melds”
Increased pace of innovation leads to…
Happier developers leads to…
Greater productivity leads to…
GOTO 50
Resources
 http://flask.pocoo.org/
 https://www.djangoproject.com/
 http://codeigniter.com/
 http://bottlepy.org/
 http://framework.zend.com/


 Josh Linkner
- http://www.inc.com/articles/201106/josh-linkner-7-steps-to-a-culture-of-innovation.html




 I know, there are many other choices… What’s your favorite?
Thanks for coming!



                     Drew Engelson - @handofdoom
                     dengelson@celerity.com
                     http://www.celerity.com/

More Related Content

Viewers also liked

Big Data for each one of us
Big Data for each one of usBig Data for each one of us
Big Data for each one of us
OSCON Byrum
 

Viewers also liked (6)

Oscon 2013 Jesse Anderson
Oscon 2013 Jesse AndersonOscon 2013 Jesse Anderson
Oscon 2013 Jesse Anderson
 
Big Data for each one of us
Big Data for each one of usBig Data for each one of us
Big Data for each one of us
 
The Vanishing Pattern: from iterators to generators in Python
The Vanishing Pattern: from iterators to generators in PythonThe Vanishing Pattern: from iterators to generators in Python
The Vanishing Pattern: from iterators to generators in Python
 
Finite State Machines - Why the fear?
Finite State Machines - Why the fear?Finite State Machines - Why the fear?
Finite State Machines - Why the fear?
 
Using Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open DataUsing Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open Data
 
How we built our community using Github - Uri Cohen
How we built our community using Github - Uri CohenHow we built our community using Github - Uri Cohen
How we built our community using Github - Uri Cohen
 

Similar to Faster! Faster! Accelerate your business with blazing prototypes

You shouldneverdo
You shouldneverdoYou shouldneverdo
You shouldneverdo
daniil3
 
Open source software for startups
Open source software for startupsOpen source software for startups
Open source software for startups
victorneo
 

Similar to Faster! Faster! Accelerate your business with blazing prototypes (20)

Georgia Tech Hack Day
Georgia Tech Hack DayGeorgia Tech Hack Day
Georgia Tech Hack Day
 
With Great Nerdery Comes Great Responsibility
With Great Nerdery Comes Great Responsibility With Great Nerdery Comes Great Responsibility
With Great Nerdery Comes Great Responsibility
 
WordPress in 30 minutes
WordPress in 30 minutesWordPress in 30 minutes
WordPress in 30 minutes
 
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
 
OpenML DALI
OpenML DALIOpenML DALI
OpenML DALI
 
Intro to Python for Data Science
Intro to Python for Data ScienceIntro to Python for Data Science
Intro to Python for Data Science
 
Questioning the status quo
Questioning the status quoQuestioning the status quo
Questioning the status quo
 
Intro to Python for Data Science
Intro to Python for Data ScienceIntro to Python for Data Science
Intro to Python for Data Science
 
Harkable Day of Innovation Oct 2013 - Hark in the Park
Harkable Day of Innovation Oct 2013 - Hark in the ParkHarkable Day of Innovation Oct 2013 - Hark in the Park
Harkable Day of Innovation Oct 2013 - Hark in the Park
 
You shouldneverdo
You shouldneverdoYou shouldneverdo
You shouldneverdo
 
Yahoo is open to developers
Yahoo is open to developersYahoo is open to developers
Yahoo is open to developers
 
K02-salen: Systems Thinking in Action 2011
K02-salen: Systems Thinking in Action 2011K02-salen: Systems Thinking in Action 2011
K02-salen: Systems Thinking in Action 2011
 
Introduce Django
Introduce DjangoIntroduce Django
Introduce Django
 
Game Engine Terminology
Game Engine Terminology Game Engine Terminology
Game Engine Terminology
 
Executive Directors Chat- Artificial Intelligence - The Good, the Bad, and th...
Executive Directors Chat- Artificial Intelligence - The Good, the Bad, and th...Executive Directors Chat- Artificial Intelligence - The Good, the Bad, and th...
Executive Directors Chat- Artificial Intelligence - The Good, the Bad, and th...
 
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
 
Puppet Camp Duesseldorf 2014: Toni Schmidbauer - Continuously deliver your pu...
Puppet Camp Duesseldorf 2014: Toni Schmidbauer - Continuously deliver your pu...Puppet Camp Duesseldorf 2014: Toni Schmidbauer - Continuously deliver your pu...
Puppet Camp Duesseldorf 2014: Toni Schmidbauer - Continuously deliver your pu...
 
Applied Data Science: Building a Beer Recommender | Data Science MD - Oct 2014
Applied Data Science: Building a Beer Recommender | Data Science MD - Oct 2014Applied Data Science: Building a Beer Recommender | Data Science MD - Oct 2014
Applied Data Science: Building a Beer Recommender | Data Science MD - Oct 2014
 
Citrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping WorkshopCitrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping Workshop
 
Open source software for startups
Open source software for startupsOpen source software for startups
Open source software for startups
 

More from OSCON Byrum

Declarative web data visualization using ClojureScript
Declarative web data visualization using ClojureScriptDeclarative web data visualization using ClojureScript
Declarative web data visualization using ClojureScript
OSCON Byrum
 

More from OSCON Byrum (20)

OSCON 2013 - Planning an OpenStack Cloud - Tom Fifield
OSCON 2013 - Planning an OpenStack Cloud - Tom FifieldOSCON 2013 - Planning an OpenStack Cloud - Tom Fifield
OSCON 2013 - Planning an OpenStack Cloud - Tom Fifield
 
Protecting Open Innovation with the Defensive Patent License
Protecting Open Innovation with the Defensive Patent LicenseProtecting Open Innovation with the Defensive Patent License
Protecting Open Innovation with the Defensive Patent License
 
Open Source Automotive Development
Open Source Automotive DevelopmentOpen Source Automotive Development
Open Source Automotive Development
 
Distributed Coordination with Python
Distributed Coordination with PythonDistributed Coordination with Python
Distributed Coordination with Python
 
An overview of open source in East Asia (China, Japan, Korea)
An overview of open source in East Asia (China, Japan, Korea)An overview of open source in East Asia (China, Japan, Korea)
An overview of open source in East Asia (China, Japan, Korea)
 
US Patriot Act OSCON2012 David Mertz
US Patriot Act OSCON2012 David MertzUS Patriot Act OSCON2012 David Mertz
US Patriot Act OSCON2012 David Mertz
 
OSCON 2012 US Patriot Act Implications for Cloud Computing - Diane Mueller, A...
OSCON 2012 US Patriot Act Implications for Cloud Computing - Diane Mueller, A...OSCON 2012 US Patriot Act Implications for Cloud Computing - Diane Mueller, A...
OSCON 2012 US Patriot Act Implications for Cloud Computing - Diane Mueller, A...
 
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
 
Declarative web data visualization using ClojureScript
Declarative web data visualization using ClojureScriptDeclarative web data visualization using ClojureScript
Declarative web data visualization using ClojureScript
 
Using and Building Open Source in Google Corporate Engineering - Justin McWil...
Using and Building Open Source in Google Corporate Engineering - Justin McWil...Using and Building Open Source in Google Corporate Engineering - Justin McWil...
Using and Building Open Source in Google Corporate Engineering - Justin McWil...
 
A Look at the Network: Searching for Truth in Distributed Applications
A Look at the Network: Searching for Truth in Distributed ApplicationsA Look at the Network: Searching for Truth in Distributed Applications
A Look at the Network: Searching for Truth in Distributed Applications
 
Life After Sharding: Monitoring and Management of a Complex Data Cloud
Life After Sharding: Monitoring and Management of a Complex Data CloudLife After Sharding: Monitoring and Management of a Complex Data Cloud
Life After Sharding: Monitoring and Management of a Complex Data Cloud
 
Comparing open source private cloud platforms
Comparing open source private cloud platformsComparing open source private cloud platforms
Comparing open source private cloud platforms
 
State of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open SourceState of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open Source
 
Building an Ecosystem of FLOSS to Educate Students with Disabilities
Building an Ecosystem of FLOSS to Educate Students with DisabilitiesBuilding an Ecosystem of FLOSS to Educate Students with Disabilities
Building an Ecosystem of FLOSS to Educate Students with Disabilities
 
Android Security Essentials
Android Security EssentialsAndroid Security Essentials
Android Security Essentials
 
How to Design for the Future - Cross Channel Experience Design
How to Design for the Future - Cross Channel Experience DesignHow to Design for the Future - Cross Channel Experience Design
How to Design for the Future - Cross Channel Experience Design
 
Harnessing the good intentions of others for your oss project
Harnessing the good intentions of others for your oss projectHarnessing the good intentions of others for your oss project
Harnessing the good intentions of others for your oss project
 
Introduction to android testing - oscon 2012
Introduction to android testing - oscon 2012Introduction to android testing - oscon 2012
Introduction to android testing - oscon 2012
 
The Art of Social Media Analysis with Twitter & Python-OSCON 2012
The Art of Social Media Analysis with Twitter & Python-OSCON 2012The Art of Social Media Analysis with Twitter & Python-OSCON 2012
The Art of Social Media Analysis with Twitter & Python-OSCON 2012
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

Faster! Faster! Accelerate your business with blazing prototypes

Editor's Notes

  1. Very wide list of technologies Personally ASP, .NET, ColdFusion, PHP, Perl, Python
  2. Also “What’s new in Perl 6”
  3. Fear of failure… but is failure necessarily a bad thing?
  4. Those 80’s clothes in my closet!
  5. Reward ideas
  6. Trust
  7. Recent discussion with a big COTS CMS platform… No customization required! What? It’s all configuration.
  8. Evolve to production