Top Banner
Faster! Faster! Accelerating your business with blazing prototypes Drew Engelson @handofdoom
56

Faster! Faster!

Jan 19, 2016

Download

Documents

Rory

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 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Faster! Faster!

Faster! Faster!Accelerating your business with blazing prototypes

Drew Engelson@handofdoom

Page 2: Faster! Faster!

Why am I here?

Page 3: Faster! Faster!

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

Page 4: Faster! Faster!

First… a disclaimer I’m a Pythonista

I’m a Djangonaut

Blame OSCON 2006

Page 5: Faster! Faster!

Hence, my huge man-crush on JKM

Photo: Jason Samsa @ Flickr

Page 6: Faster! Faster!

Cultures of stagnation

Page 7: Faster! Faster!

Risk aversion

Page 8: Faster! Faster!

Always choosing path well traveled

Page 9: Faster! Faster!

"Innovation is R&D’s job”

a.k.a. Not your job

Page 10: Faster! Faster!

Dwelling on past investments

Page 11: Faster! Faster!

Over-management and review of new ideas

Page 12: Faster! Faster!

“We have too much real work to do.”

Page 13: Faster! Faster!

Cultures of Innovation

Props to Josh Linkner

Page 14: Faster! Faster!

Fuel passion

Page 15: Faster! Faster!

Celebrate ideas

Page 16: Faster! Faster!

Foster autonomy

Page 17: Faster! Faster!

Encourage courage

Page 18: Faster! Faster!

Fail forward

Page 19: Faster! Faster!

Think small

Page 20: Faster! Faster!

Institutionalize this stuff

Page 21: Faster! Faster!

COTS vs. Open Source

Page 22: Faster! Faster!

“COTS is the safer choice”

No one ever got fired for choosing ___________.

Page 23: Faster! Faster!

“COTS does it out of the box”

That’s horse crap!

Page 24: Faster! Faster!

Photo: Daleeast @ Flickr

Page 25: Faster! Faster!

Photo: Kethera @ Flickr

Page 26: Faster! Faster!

Rapid Prototypes

Page 27: Faster! Faster!

“If only I could show you!”

Page 28: Faster! Faster!

Developers [sometimes] have good ideas

Give ‘em a chance!

Page 29: Faster! Faster!

Reduce the potential cost of failure;Timebox the experiment

“OK, you get 2 days”

Page 30: Faster! Faster!

The Framework Showdown

Page 31: Faster! Faster!

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

Page 32: Faster! Faster!

The challenge

Photo: Tomcrenshaw @ Flickr

url = http://farm8.staticflickr.com/7138/7576110858_d66eec09f5_z.jpgwidth = 200height = 200

Page 33: Faster! Faster!

I’m talking REAL functional code;minimize throw away work

Evolve to production

Page 34: Faster! Faster!

Surveyed a few frameworks PHP

- Zend

- CodeIgniter

Python

- Django

- Flask

- Bottle

I know, there are many other choices… Which is your favorite?

Page 35: Faster! Faster!

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

Page 36: Faster! Faster!

The non-scientific results

Page 37: Faster! Faster!

$ pip install Flask requests PIL

Then write ~19 lines of Python

Page 38: Faster! Faster!

import cStringIO

import requestsfrom PIL import Imagefrom 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)

Page 39: Faster! Faster!

Quick and easy local server

Django: manage.py runserver

Flask: app.run()

Page 40: Faster! Faster!

Get boilerplate out of the way!

Page 41: Faster! Faster!

Don’t trust anything that has built-in smilies

Sorry, CodeIgniter

Page 42: Faster! Faster!

How do I share it?

Page 43: Faster! Faster!

$ git push heroku master

Really... does anything else matter?

Page 44: Faster! Faster!

What does this all mean?

Page 45: Faster! Faster!

Use what you know!

Learning curve is biggest time suck.

Page 46: Faster! Faster!

Keep it real

Don’t assume failure… this may have legs.

Page 47: Faster! Faster!

Don’t be afraid of…

Failure; the unknown; the undead

Page 48: Faster! Faster!

Give ‘em a little rope…

But don’t hang ‘em with it

Page 49: Faster! Faster!

Hold a few “hack days”

Page 50: Faster! Faster!

Spread knowledge;Hold sessions to share ideas

I call these “mind melds”

Page 51: Faster! Faster!

Increased pace of innovation leads to…

Page 52: Faster! Faster!

Happier developers leads to…

Page 53: Faster! Faster!

Greater productivity leads to…

Page 54: Faster! Faster!

GOTO 50

Page 55: Faster! Faster!

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?

Page 56: Faster! Faster!

Thanks for coming!

Drew Engelson - @handofdoom

[email protected]

http://www.celerity.com/