Faster! Faster!Accelerating your business with blazing prototypes                                        Drew Engelson    ...
Why am I here?
I’m Drew Engelson I work for Celerity - “The business acceleration consultancy” - We help get companies “unstuck” I help...
First… a disclaimer I’m a Pythonista I’m a Djangonaut Blame OSCON 2006
Hence, my huge man-crush on JKMPhoto: 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 - P...
The challenge                              ur l =                              ht t p: / / f ar m s t at i c f l i c kr . ...
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 a...
Compared on Learning curve Ease of bootstrapping dev environment Ease of development  - # of files created or touched  ...
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 Oi mp o r t r e q u e s t sf r o m PI L i mp o r t I mag ef r o m f l as k i mp o r t F l as k ...
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 masterReally... does anything else matter?
What does this all mean?
Use what you know!Learning curve is biggest time suck.
Keep it realDon’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://...
Thanks for coming!                     Drew Engelson - @handofdoom                     dengelson@celerity.com             ...
Upcoming SlideShare
Loading in...5
×

Faster! Faster! Accelerate your business with blazing prototypes

2,283

Published on

Bring your ideas to life! Convince your boss to that open source development is faster and cheaper than the "safe" COTS solution they probably hate anyway. Let's investigate ways to get real-life, functional prototypes up with blazing speed. We'll look at and compare tools for truly rapid development including Python, Django, Flask, PHP, Amazon EC2 and Heroku.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,283
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Very wide list of technologies Personally ASP, .NET, ColdFusion, PHP, Perl, Python
  • Also “What’s new in Perl 6”
  • Fear of failure… but is failure necessarily a bad thing?
  • Those 80’s clothes in my closet!
  • Reward ideas
  • Trust
  • Recent discussion with a big COTS CMS platform… No customization required! What? It’s all configuration.
  • Evolve to production
  • Faster! Faster! Accelerate your business with blazing prototypes

    1. 1. Faster! Faster!Accelerating your business with blazing prototypes Drew Engelson @handofdoom
    2. 2. Why am I here?
    3. 3. 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
    4. 4. First… a disclaimer I’m a Pythonista I’m a Djangonaut Blame OSCON 2006
    5. 5. Hence, my huge man-crush on JKMPhoto: Jason Samsa @ Flickr
    6. 6. Cultures of stagnation
    7. 7. Risk aversion
    8. 8. Always choosing path well traveled
    9. 9. "Innovation is R&D’s job” a.k.a. Not your job
    10. 10. Dwelling on past investments
    11. 11. Over-management and review of new ideas
    12. 12. “We have too much real work to do.”
    13. 13. Cultures of Innovation Props to Josh Linkner
    14. 14. Fuel passion
    15. 15. Celebrate ideas
    16. 16. Foster autonomy
    17. 17. Encourage courage
    18. 18. Fail forward
    19. 19. Think small
    20. 20. Institutionalize this stuff
    21. 21. COTS vs. Open Source
    22. 22. “COTS is the safer choice”No one ever got fired for choosing ___________.
    23. 23. “COTS does it out of the box” That’s horse crap!
    24. 24. Photo: Daleeast @ Flickr
    25. 25. Photo: Kethera @ Flickr
    26. 26. Rapid Prototypes
    27. 27. “If only I could show you!”
    28. 28. Developers [sometimes] have good ideas Give ‘em a chance!
    29. 29. Reduce the potential cost of failure; Timebox the experiment “OK, you get 2 days”
    30. 30. The Framework Showdown
    31. 31. 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
    32. 32. 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 = 200Photo: Tomcrenshaw @ Flickr
    33. 33. I’m talking REAL functional code; minimize throw away work Evolve to production
    34. 34. Surveyed a few frameworks PHP - Zend - CodeIgniter Python - Django - Flask - Bottle  I know, there are many other choices… Which is your favorite?
    35. 35. 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
    36. 36. The non-scientific results
    37. 37. $ pip install Flask requests PIL Then write ~19 lines of Python
    38. 38. i mp o r t c S t r i n g I Oi mp o r t r e q u e s t sf r o m PI L i mp o r t I mag ef 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 eap 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 )
    39. 39. Quick and easy local server Django: manage.py runserver Flask: app.run()
    40. 40. Get boilerplate out of the way!
    41. 41. Don’t trust anything that has built-in smilies  Sorry, CodeIgniter
    42. 42. How do I share it?
    43. 43. $ git push heroku masterReally... does anything else matter?
    44. 44. What does this all mean?
    45. 45. Use what you know!Learning curve is biggest time suck.
    46. 46. Keep it realDon’t assume failure… this may have legs.
    47. 47. Don’t be afraid of…Failure; the unknown; the undead
    48. 48. Give ‘em a little rope… But don’t hang ‘em with it
    49. 49. Hold a few “hack days”
    50. 50. Spread knowledge;Hold sessions to share ideas I call these “mind melds”
    51. 51. Increased pace of innovation leads to…
    52. 52. Happier developers leads to…
    53. 53. Greater productivity leads to…
    54. 54. GOTO 50
    55. 55. 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?
    56. 56. Thanks for coming! Drew Engelson - @handofdoom dengelson@celerity.com http://www.celerity.com/
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×