technology and programming methods

25
Technology & Programming Methods Philip van Allen

Upload: philip-van-allen

Post on 11-Jun-2015

180 views

Category:

Technology


0 download

DESCRIPTION

A presentation for designers that reviews a range of strategies for being successful at technology and programming projects. This presentation uses a project I worked on as an example of how to approach technical challenges. The Infiniti Interactive Mirror was developed by Nikolai Cornell (a former student) while he was at George P. Johnson, and broke significant ground in several areas. Nikolai brought me in to develop the sensor system for the gestural interactions, and advise on the interaction design.

TRANSCRIPT

Page 1: Technology and Programming Methods

Technology & Programming Methods

Philip van Allen

Page 2: Technology and Programming Methods

Work Smarter

Page 3: Technology and Programming Methods

Work Smarter

There is no “right way,” but there are certainly smarter ways

Ask others how they have successes

Be reflective about your process and improve

Page 4: Technology and Programming Methods

Example Project: Infiniti Interactive Mirrorshttp://www.nikolaicornell.com/Infiniti-Interactive-Mirrorshttp://www.interactivemirror.net

Page 5: Technology and Programming Methods
Page 6: Technology and Programming Methods

Enjoy Constant Learning

Even experienced tech people start projects not knowing how they’ll be solvedNo one knows everythingSpend a bunch of time to learn something new for the long term

Page 7: Technology and Programming Methods

Enjoy Constant Learning

Even experienced tech people start projects not knowing how they’ll be solvedNo one knows everythingSpend a bunch of time to learn something new for the long term

Page 8: Technology and Programming Methods

Enjoy Constant Learning

Get used to being in the dark and learning the new

Technology changes very rapidly

Learn general principles, practice just-in-time-learning

Learn to “be the computer”

Sometimes you have to pay-it-forward

Even experienced tech people start projects not knowing how they’ll be solvedNo one knows everythingSpend a bunch of time to learn something new for the long term

Page 9: Technology and Programming Methods

Break the Project Down1.Mount and calibrate sensors2.Get data from sensors3.Filter noise4.Calculate position5.Send position to main code6.Test in real world

Page 10: Technology and Programming Methods

Break the Project Down

Just get started, don’t try to solve the whole thingGather bits of code and referencesFind examples of how others have done something similar

Create little experiments for each partSolve the easy parts firstSolve the hardest parts first

Rebuild once you have it figured it out

1.Mount and calibrate sensors2.Get data from sensors3.Filter noise4.Calculate position5.Send position to main code6.Test in real world

Page 11: Technology and Programming Methods

Stealing is Okay

I had to design a custom sensor system for the Infiniti Interactive Mirrors that involved two sensors for each mirror which triangulated the location of the hand gesture. Thisrequired some trigonometry.

Page 12: Technology and Programming Methods

Stealing is Okay

I had to design a custom sensor system for the Infiniti Interactive Mirrors that involved two sensors for each mirror which triangulated the location of the hand gesture. Thisrequired some trigonometry.

Page 13: Technology and Programming Methods

Stealing is Okay

Code is widely given awaystackoverflow for questions/answersopen source Libraries, e.g. jQuerythousands of examples/tutorials

Steal from yourself

Google is your friend

Give back by posting what you find

I had to design a custom sensor system for the Infiniti Interactive Mirrors that involved two sensors for each mirror which triangulated the location of the hand gesture. Thisrequired some trigonometry.

Page 14: Technology and Programming Methods

Evolve Your Design

Page 15: Technology and Programming Methods
Page 16: Technology and Programming Methods

Evolve Your Design

Prioritize features, and don’t lock design too early

Let your prototypes and failures influence the design

Take advantage of discoveries / mistakes

Abuse the technology

Scope design to time / ability

Page 17: Technology and Programming Methods

Enjoy Constant Failure

Page 18: Technology and Programming Methods

It never works the first time

Get good at debugging

Anticipate and design for failures

Some bugs can take days to fix :-(

Enjoy Constant Failure

Page 19: Technology and Programming Methods

Test Constantly

Page 20: Technology and Programming Methods

Test Constantly

Each time you make a change

Have others use and abuse it

You’ll need real content

Schedule time for testing and bug-fixing

Page 21: Technology and Programming Methods

Be Persistent

Page 22: Technology and Programming Methods

Be Persistent

Be confident there’s a way to do it

When it takes way too long, you are learning

Learn to work around roadblocks

Set aside a problem and come back to it later

Page 23: Technology and Programming Methods

Keep Your Eye on the Goal

Page 24: Technology and Programming Methods

Keep Your Eye on the Goal

Work Smarter

Enjoy Constant Learning

Break the Project Down

Stealing is Okay

Evolve Your Design

Enjoy Constant Failure

Test Constantly

Be Persistent

Page 25: Technology and Programming Methods