faster! accelerating your business with blazing prototypes drew engelson @handofdoom

Download Faster! Accelerating your business with blazing prototypes Drew Engelson @handofdoom

If you can't read please download the document

Upload: godwin-nelson

Post on 13-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

  • Slide 1

Faster! Accelerating your business with blazing prototypes Drew Engelson @handofdoom Slide 2 Why am I here? Slide 3 Im 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 Slide 4 First a disclaimer Im a Pythonista Im a Djangonaut Blame OSCON 2006 Slide 5 Hence, my huge man-crush on JKM Photo: Jason Samsa @ Flickr Slide 6 Cultures of stagnation Slide 7 Risk aversion Slide 8 Always choosing path well traveled Slide 9 "Innovation is R&Ds job a.k.a. Not your job Slide 10 Dwelling on past investments Slide 11 Over-management and review of new ideas Slide 12 We have too much real work to do. Slide 13 Cultures of Innovation Props to Josh Linkner Slide 14 Fuel passion Slide 15 Celebrate ideas Slide 16 Foster autonomy Slide 17 Encourage courage Slide 18 Fail forward Slide 19 Think small Slide 20 Institutionalize this stuff Slide 21 COTS vs. Open Source Slide 22 COTS is the safer choice No one ever got fired for choosing ___________. Slide 23 COTS does it out of the box Thats horse crap! Slide 24 Photo: Daleeast @ Flickr Slide 25 Photo: Kethera @ Flickr Slide 26 Rapid Prototypes Slide 27 If only I could show you! Slide 28 Developers [sometimes] have good ideas Give em a chance! Slide 29 Reduce the potential cost of failure; Timebox the experiment OK, you get 2 days Slide 30 The Framework Showdown Slide 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 Slide 32 The challenge Photo: Tomcrenshaw @ Flickr url = http://farm8.staticflickr.com/7138/7576110858_d66eec09f5_z.jpghttp://farm8.staticflickr.com/7138/7576110858_d66eec09f5_z.jpg width = 200 height = 200 Slide 33 Im talking REAL functional code; minimize throw away work Evolve to production Slide 34 Surveyed a few frameworks PHP -Zend -CodeIgniter Python -Django -Flask -Bottle I know, there are many other choices Which is your favorite? Slide 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 Slide 36 The non-scientific results Slide 37 $ pip install Flask requests PIL Then write ~19 lines of Python Slide 38 import cStringIO import requests from PIL import Image from flask import Flask, request, send_file app = Flask(__name__) @app.route('/', methods=['GET', ]) def resize(): url = request.values['url'] req = requests.get(url) resource = cStringIO.StringIO(req.content) image = Image.open(resource) image = image.resize((int(request.values['w']), int(request.values['h'])), Image.ANTIALIAS) resource = cStringIO.StringIO() image.save(resource, 'JPEG') resource.seek(0) return send_file(resource, mimetype='image/jpeg') if __name__ == '__main__': app.run(debug=True) Slide 39 Quick and easy local server Django: manage.py runserver Flask: app.run() Slide 40 Get boilerplate out of the way! Slide 41 Dont trust anything that has built-in smilies Sorry, CodeIgniter Slide 42 How do I share it? Slide 43 $ git push heroku master Really... does anything else matter? Slide 44 What does this all mean? Slide 45 Use what you know! Learning curve is biggest time suck. Slide 46 Keep it real Dont assume failure this may have legs. Slide 47 Dont be afraid of Failure; the unknown; the undead Slide 48 Give em a little rope But dont hang em with it Slide 49 Hold a few hack days Slide 50 Spread knowledge; Hold sessions to share ideas I call these mind melds Slide 51 Increased pace of innovation leads to Slide 52 Happier developers leads to Slide 53 Greater productivity leads to Slide 54 GOTO 50 Slide 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 Whats your favorite? Slide 56 Thanks for coming! Drew Engelson - @handofdoom [email protected] http://www.celerity.com/