158
12 Steps to be a Better Developer (aside from the coding part) Gregg Pollack @GreggPollack

12 Steps to being a Better Programmer by Code School's Gregg Pollack

Embed Size (px)

DESCRIPTION

"12 Steps to being a Better Programmer" by Gregg Pollack from Code School gives a talk on the lessons they don't teach in programming class. Gregg talks on setting expectations, getting outside of your comfort zone, moving from independence to interdependence and understanding software development as a craft. Using examples from his own experience at his company Envy Labs, Gregg goes through these 12 steps very concisely sharing many anecdotes that offer a great perspective.

Citation preview

Page 1: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

12 Steps to be a Better Developer (aside from the coding part)

Gregg Pollack @GreggPollack

Page 2: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Code is not Enough

Page 3: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

- Steve Jobs“ ”technology alone is not enough

Page 4: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

- Steve Jobs

technology alone is not enoughIt is in Apple’s DNA that

it’s technology married with liberal arts,married with the humanities,that yields the results that make

our heart sing.

Page 5: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 6: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 7: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 8: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 9: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 10: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

- Steve Jobs“ ”technology alone is not enough

Page 11: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

12 principles

Page 12: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

SET EXPECTATIONeven when you’re not asked to1

Page 13: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Estimation is hard,kinda like riding a bike

Page 14: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Why did your last project fail?

Page 15: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Client closer to Team

Page 16: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Client with the Team?

Page 17: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Short Feedback Cycles

Page 18: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Project Management Tools

Page 19: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Be mindful of yourengineering background 2

Page 20: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Listening to Ideas

Page 21: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Kills Collaboration

Page 22: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Often diagnosis soundslike criticism

Page 23: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

“In my wide association in life, meeting with many and great people in various parts of the world, I have yet to find the person, however great or exalted his station, who did not do better work and put forth greater effort under a spirit of approval than he

would ever do under a spirit of criticism.”

~Charles Schwab

Page 24: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Beware of giving Diagnosis

Page 25: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

“yes, and”

Page 26: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Give Attention

Page 27: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 28: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

You might be shy

Page 29: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Be mindful of yourengineering background 2

Page 30: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Software Developmentis an art form3

Page 31: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Software Developmentis an art form3

Page 32: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Software Developmentis a craft

3

Page 33: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

"Craft means making useful objects with perhaps decorative touches. Fine art means making things purely for their beauty." Richard Stallman

Page 34: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Beautiful Work

Page 35: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Beautiful Work

Page 36: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Insert Rant Here

Page 37: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

ConsultingIs usually more challenging

Page 38: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Consulting takes another set of skills

Page 39: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Scratching your own itch is easy.

(see all the PM tools)

Page 40: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Want a challenge? Scratch someone else’s itch.

Page 41: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 42: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 43: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Software Developmentis a craft

3

Page 44: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Learn how to delegateand improve the system4

Page 45: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 46: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 47: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Project Managers

Page 48: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Scheduling Meetings

Writing expectations

Invoicing

Organization

Page 49: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Can you think of things you can delegate

Page 50: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Just because you CANdo something doesn’t

mean you should!!!

Page 51: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Do the math

Page 52: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 53: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

80 people

average 1 cup a day

15 minutes wasted

Page 54: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

80 people

average 1 cup a day

15 minutes wasted

= 1200 minutes = 20 hours

Page 55: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Do the math

Page 56: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

But I’m not running my own business!

Page 57: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 58: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

If someone does a task better than you

Page 59: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

First Independence,Then Interdependence

Page 60: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Learn how to delegateand improve the system4

Page 61: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Continue to learninside and outside your company5

Page 62: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

INSIDE

Page 63: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Internal Presentations

Page 64: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 65: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 66: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 67: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Screencasts!

Page 68: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Retrospectives

Page 69: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

OUTSIDE

Page 70: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 72: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 73: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 74: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 75: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 76: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Stay out of yourcomfort zone6

Page 77: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Your Task List

Page 78: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

The Difficult Tasks= More Learning

Page 79: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

But naturally we gravitate towards

the easy

Page 80: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Example = Email Trap

Page 81: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Want to learn the most while you work?

Page 82: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Stay out of yourcomfort zone6

Page 83: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Make friendsand build relationships

7

Page 84: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

“Individuals and interactionsover

processes and tools”-Agile Manifesto

Page 85: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

More friendships = happiness

Page 86: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

More friendships = happiness

happiness = better work

Page 87: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

How much time do you spend at work nurturing

friendships?

Page 88: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

One way you can make everyone around you better:

Become a better friend.

Page 89: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

One way you can make the Ruby community better:

Make more friends

Page 90: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

People love talking about themselves

Page 91: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Set a goal for yourself.Try to meet 5 new people.

Page 92: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Make friendsand build relationships

7

Page 93: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

don’t be afraid toASK FOR HELP

8

Page 94: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

2  hourses)mate

Page 95: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

2  hourses)mate

4  hours

Page 96: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

2  hourses)mate

8  hours

Page 97: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

What would have happened if you asked for help?

Page 98: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Is it better to fail after 2 hours, or fail after 8 hours?

Page 99: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

It’s natural

Page 100: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 101: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Kerplakistan

Page 102: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Kerplakistan

Page 103: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Kerplakistan

Page 104: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Kerplakistan

Page 105: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Kerplakistan

Page 106: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Kerplakistan

Page 107: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Kerplakistan

Page 108: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

It’s human nature

Page 109: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Give yourself 30 Mins

Page 110: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

If something is taking too much time, you’re probably doing it wrong

Page 111: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Who do you ask?

Page 112: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Preempt the problem

Page 113: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Learn to eliminate distractionsand get in the zone

9

Page 114: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

It is not natural to be productive 100% of the time

Page 115: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

20% Fun80% Productive

Optimally.....

Page 116: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Turn offcommunication

Page 117: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Asynchronous Communication

Page 118: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Alternative workspaces

Page 119: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 120: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 121: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Learn to eliminate distractionsand get in the zone

9

Page 122: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

the most COMPLEX solutionis rarely the BEST solution

10

Page 123: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

communicate better thaneveryone else

11

Page 124: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

“Creating quality software is x% code and y% communication where

y is greater then x.”

~Carlos Souza

Page 125: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 126: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

HIRE GREAT WRITERS

Page 127: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

HIRE GREAT WRITERS

Clear writing is a sign of clear thinking.

Page 128: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

How do you communicate more effectively?

Page 129: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Leverage the right PM tool

Page 130: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Force yourself to communicate

Page 131: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Be more effective withSkitch and JingMonosnap

Page 132: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Communicate through imagesand video. Not words.

Page 133: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

communicate better thaneveryone else

11

Page 134: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

understand what willbring you happiness12

Page 135: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

People aren’t usually good at choosing what will make them happy

Page 136: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

It’s not money

Page 137: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

It’s not fame

Page 138: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

It’s not fame

Page 139: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

It’s not ONLY code

Page 140: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

- Steve Jobs“ ”technology alone is not enough

Page 141: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Doing meaningful work

Page 142: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

SET EXPECTATIONeven when you’re not asked to1

Page 143: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Be mindful of yourengineering background 2

Page 144: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Software Developmentis a craft

3

Page 145: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Learn how to delegateand improve the system4

Page 146: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Continue to learninside and outside your company5

Page 147: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Stay out of yourcomfort zone6

Page 148: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Make friendsand build relationships

7

Page 149: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

don’t be afraid toASK FOR HELP

8

Page 150: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Learn to eliminate distractionsand get in the zone

9

Page 151: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

the most COMPLEX solutionis rarely the BEST solution

10

Page 152: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

communicate better thaneveryone else

11

Page 153: 12 Steps to being a Better Programmer by Code School's Gregg Pollack
Page 154: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

Each of these can createmore meaning in the work

that you do

Page 155: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

understand what willbring you happiness12

Page 156: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

name author URLCanon EFS 17-85mm nickwheeleroz http://www.flickr.com/photos/nickwheeleroz/2663377622

NEGATIVE APPROACH ALL CHROME http://www.flickr.com/photos/allchrome/5049275868

Kup,Kup & Chloé Kup Kup Land http://www.flickr.com/photos/13937854@N00/416735964

Disney - Partners at Dusk Express Monorail http://www.flickr.com/photos/23322134@N02/3108405260

Darkening Clockwork matthelio http://www.flickr.com/photos/matthileo/3552898254

afternoon perfection janhamlet http://www.flickr.com/photos/janhamlet1/4647870872/

friendship bracelets. amanda.venner http://www.flickr.com/photos/amandavenner/4939925977

SAF#2 Robby Ferarri http://www.flickr.com/photos/roberto_ferrari/281640001

Meeting Table mnadi http://www.flickr.com/photos/mnadi/32325828

Money! Tracy O http://www.flickr.com/photos/37108241@N00/61056391

CareerTech Hall of Fame okcareertech http://www.flickr.com/photos/okcareertech/2234107433

Creative Commons

Page 157: 12 Steps to being a Better Programmer by Code School's Gregg Pollack

name author URLdiary Calinago http://www.flickr.com/photos/65691836@N00/221416101

BarCamp Vancouver kk+ http://www.flickr.com/photos/49503002894@N01/230544325

The Grotto Stuck in Customs http://www.flickr.com/photos/95572727@N00/161483435

His Holiness Dagchen Wonderlane http://www.flickr.com/photos/71401718@N00/3242519210

poor walter JKonig http://www.flickr.com/photos/83156837@N00/470817175

Project Opus Launch D’Arcy Norman http://www.flickr.com/photos/51035644987@N01/398070036

Flickr Mints Neal. http://www.flickr.com/photos/31878512@N06/4704140020

Máquina de Rube Goldberg freshwater2006 http://www.flickr.com/photos/freshwater2006/693945631

Communist Unicorn zoomar http://www.flickr.com/photos/zoomar/141098807

Planet Express gabrielsond http://www.flickr.com/photos/41819939@N00/4665230659

Return Undefined nyuhuhuu http://www.flickr.com/photos/nyuhuhuu/4443886636/

Human Reproduction Vinicius Teles http://improveit.com.br

Creative Commons