+ All Categories
Home > Technology > Faster! Faster! Accelerate your business with blazing prototypes

Faster! Faster! Accelerate your business with blazing prototypes

Date post: 06-Dec-2014
Category:
Upload: oscon-byrum
View: 2,705 times
Download: 0 times
Share this document with a friend
Description:
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.
Popular Tags:
56
Faster! Faster! Accelerating your business with blazing prototypes Drew Engelson @handofdoom
Transcript
Page 1: Faster! Faster! Accelerate your business with blazing prototypes

Faster! Faster!Accelerating your business with blazing prototypes

Drew Engelson@handofdoom

Page 2: Faster! Faster! Accelerate your business with blazing prototypes

Why am I here?

Page 3: Faster! Faster! Accelerate your business with blazing prototypes

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! Accelerate your business with blazing prototypes

First… a disclaimer I’m a Pythonista

I’m a Djangonaut

Blame OSCON 2006

Page 5: Faster! Faster! Accelerate your business with blazing prototypes

Hence, my huge man-crush on JKM

Photo: Jason Samsa @ Flickr

Page 6: Faster! Faster! Accelerate your business with blazing prototypes

Cultures of stagnation

Page 7: Faster! Faster! Accelerate your business with blazing prototypes

Risk aversion

Page 8: Faster! Faster! Accelerate your business with blazing prototypes

Always choosing path well traveled

Page 9: Faster! Faster! Accelerate your business with blazing prototypes

"Innovation is R&D’s job”

a.k.a. Not your job

Page 10: Faster! Faster! Accelerate your business with blazing prototypes

Dwelling on past investments

Page 11: Faster! Faster! Accelerate your business with blazing prototypes

Over-management and review of new ideas

Page 12: Faster! Faster! Accelerate your business with blazing prototypes

“We have too much real work to do.”

Page 13: Faster! Faster! Accelerate your business with blazing prototypes

Cultures of Innovation

Props to Josh Linkner

Page 14: Faster! Faster! Accelerate your business with blazing prototypes

Fuel passion

Page 15: Faster! Faster! Accelerate your business with blazing prototypes

Celebrate ideas

Page 16: Faster! Faster! Accelerate your business with blazing prototypes

Foster autonomy

Page 17: Faster! Faster! Accelerate your business with blazing prototypes

Encourage courage

Page 18: Faster! Faster! Accelerate your business with blazing prototypes

Fail forward

Page 19: Faster! Faster! Accelerate your business with blazing prototypes

Think small

Page 20: Faster! Faster! Accelerate your business with blazing prototypes

Institutionalize this stuff

Page 21: Faster! Faster! Accelerate your business with blazing prototypes

COTS vs. Open Source

Page 22: Faster! Faster! Accelerate your business with blazing prototypes

“COTS is the safer choice”

No one ever got fired for choosing ___________.

Page 23: Faster! Faster! Accelerate your business with blazing prototypes

“COTS does it out of the box”

That’s horse crap!

Page 24: Faster! Faster! Accelerate your business with blazing prototypes

Photo: Daleeast @ Flickr

Page 25: Faster! Faster! Accelerate your business with blazing prototypes

Photo: Kethera @ Flickr

Page 26: Faster! Faster! Accelerate your business with blazing prototypes

Rapid Prototypes

Page 27: Faster! Faster! Accelerate your business with blazing prototypes

“If only I could show you!”

Page 28: Faster! Faster! Accelerate your business with blazing prototypes

Developers [sometimes] have good ideas

Give ‘em a chance!

Page 29: Faster! Faster! Accelerate your business with blazing prototypes

Reduce the potential cost of failure;Timebox the experiment

“OK, you get 2 days”

Page 30: Faster! Faster! Accelerate your business with blazing prototypes

The Framework Showdown

Page 31: Faster! Faster! Accelerate your business with blazing prototypes

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! Accelerate your business with blazing prototypes

The challenge

Photo: Tomcrenshaw @ Flickr

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

Page 33: Faster! Faster! Accelerate your business with blazing prototypes

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

Evolve to production

Page 34: Faster! Faster! Accelerate your business with blazing prototypes

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! Accelerate your business with blazing prototypes

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! Accelerate your business with blazing prototypes

The non-scientific results

Page 37: Faster! Faster! Accelerate your business with blazing prototypes

$ pip install Flask requests PIL

Then write ~19 lines of Python

Page 38: Faster! Faster! Accelerate your business with blazing prototypes

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! Accelerate your business with blazing prototypes

Quick and easy local server

Django: manage.py runserver

Flask: app.run()

Page 40: Faster! Faster! Accelerate your business with blazing prototypes

Get boilerplate out of the way!

Page 41: Faster! Faster! Accelerate your business with blazing prototypes

Don’t trust anything that has built-in smilies

Sorry, CodeIgniter

Page 42: Faster! Faster! Accelerate your business with blazing prototypes

How do I share it?

Page 43: Faster! Faster! Accelerate your business with blazing prototypes

$ git push heroku master

Really... does anything else matter?

Page 44: Faster! Faster! Accelerate your business with blazing prototypes

What does this all mean?

Page 45: Faster! Faster! Accelerate your business with blazing prototypes

Use what you know!

Learning curve is biggest time suck.

Page 46: Faster! Faster! Accelerate your business with blazing prototypes

Keep it real

Don’t assume failure… this may have legs.

Page 47: Faster! Faster! Accelerate your business with blazing prototypes

Don’t be afraid of…

Failure; the unknown; the undead

Page 48: Faster! Faster! Accelerate your business with blazing prototypes

Give ‘em a little rope…

But don’t hang ‘em with it

Page 49: Faster! Faster! Accelerate your business with blazing prototypes

Hold a few “hack days”

Page 50: Faster! Faster! Accelerate your business with blazing prototypes

Spread knowledge;Hold sessions to share ideas

I call these “mind melds”

Page 51: Faster! Faster! Accelerate your business with blazing prototypes

Increased pace of innovation leads to…

Page 52: Faster! Faster! Accelerate your business with blazing prototypes

Happier developers leads to…

Page 53: Faster! Faster! Accelerate your business with blazing prototypes

Greater productivity leads to…

Page 54: Faster! Faster! Accelerate your business with blazing prototypes

GOTO 50

Page 55: Faster! Faster! Accelerate your business with blazing prototypes

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! Accelerate your business with blazing prototypes

Thanks for coming!

Drew Engelson - @handofdoom

[email protected]

http://www.celerity.com/


Recommended