Top Banner
49
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: Howtostopsucking
Page 2: Howtostopsucking

How to Stop Sucking and Be Awesome Instead

Jeff AtwoodCoding Horror, Stack Exchange, Stack Overflow

Page 3: Howtostopsucking
Page 4: Howtostopsucking

Q:

What does it mean when

something “Sucks”?

Page 5: Howtostopsucking

• This doesn't do what I need• I can't figure out how to do what I need• This is unnecessarily frustrating and

complex• This breaks all the time• It's so ugly I want to vomit• It doesn't map to my understanding of the

universe• I'm thinking about the tool, instead of my

work

Page 6: Howtostopsucking

And folks, let's be honest.

Sturgeon was an optimist. Way

more than 90% of code is crap.

Al Viro

Page 7: Howtostopsucking
Page 8: Howtostopsucking

Q:

Why do we suck?

Page 9: Howtostopsucking

A:

Because we’re software,

too.

Page 10: Howtostopsucking

“The main reason we tend to focus on the technical rather than the human side of the work is not because it's more crucial, but because it's easier to do.”

Page 11: Howtostopsucking

The common thread in all my failed projects is…

Page 12: Howtostopsucking

The First Rule of Programming:

It’s Always Your Fault.

codinghorror

Page 13: Howtostopsucking

1. Embrace the Suck

Page 14: Howtostopsucking
Page 15: Howtostopsucking

We make shitty software… with

bugs!

Dave Winer1995

Page 16: Howtostopsucking

“Software is a process, it's never finished, it's always evolving. That's its nature. We know our software sucks. But it's shipping! Next time we'll do better, but even then it will be shitty. The only software that's perfect is one you're dreaming about. Real software crashes, loses data, is hard to learn and hard to use. But it's a process. We'll make it less shitty. Just watch!”

Page 17: Howtostopsucking

Version 1 Sucks, But Ship It

Anyway

codinghorror

Page 18: Howtostopsucking

3 months in development

vs.

3 months of user feedback

Page 19: Howtostopsucking

• climbs faster• turns faster• better distance

visibility

• better side visibility• hydraulic flight

controls

Page 20: Howtostopsucking

Boyd’s Law of Iteration:

speed of iteration always beats quality of iteration

Where you are today doesn’t matter so much, compared to where you’re going tomorrow.

Page 21: Howtostopsucking

My goal is to suck less every

year.

codinghorror

Page 22: Howtostopsucking

2. Do It In Public

Page 23: Howtostopsucking

One of my favorite business model

suggestions for [web] entrepreneurs is

to find an old UNIX command that

hasn't yet been implemented on the

web, and fix that.

Marc Hedlund

Page 24: Howtostopsucking

talk, finger ICQLISTSERV DejaNews

ls Yahoo! directory

find, grep Google

rn Bloglines

pine Google Mail

mount Amazon S3

bash Yahoo! Pipes

wall Twitter

Page 25: Howtostopsucking

Blogger = public email messages (1999)

Instead of "Dear Bob, Check out this movie." it's "Dear People I May or May Not Know Who Are Interested in Film Noir, check out this movie. If you like it, maybe we can be friends."

Page 26: Howtostopsucking

Flickr = public photo sharing (2004)

"When we started the company, there were dozens of other photosharing companies such as Shutterfly, but on those sites there was no such thing as a public photograph -- it didn't even exist as a concept."

Page 27: Howtostopsucking

YouTube = public home videos (2005)

Bob Saget was on to something.

Viewed 456 million times… so far.

Page 28: Howtostopsucking

Twitter = public instant messaging (2006)

I don't think it's any coincidence that one of the people responsible for Blogger is also responsible for Twitter.

Page 29: Howtostopsucking

GitHub = public source control (2008)

“SourceForge is about projects. GitHub is about people... A world of programmers forking, hacking and experimenting. There is merging, but only if people agree to do so, by other channels... GitHub gives me my own place to play. It lets me share my code the way I share photos on Flickr.”

Page 30: Howtostopsucking

“Moreover, I’m sharing my code, for what it’s worth to me to share my code...  I am sharing my code.  I am not launching an open source project.  I am not beginning a search for like minded developers to avoid duplication of efforts.  I am not showing up at someone else’s door hat in hand, asking for commit access.  I am not looking to do battle with Brook’s Law at the outset of my brainstorm.”

Page 31: Howtostopsucking
Page 32: Howtostopsucking

Stack Overflow = public learning (2008)

• Fun-size units of Q&A “work”

• Document how much we suck, so that others might learn from it!

• Leave breadcrumb trails of our awesomeness

Page 33: Howtostopsucking

Maximize the value of your keystrokes

If nobody knows you did {x}, did you get all the benefits of doing {x}?

Page 34: Howtostopsucking

The onus of “interestingness”

the freedom to totally suck in private

vs.

attempting to be awesome in public

Page 35: Howtostopsucking

If you you don't have any marketable skills,

learn some. It's the future. We have Khan

Academy and Wikipedia and Codecademy

and almost the entire world's collective

knowledge at your fingertips. Use it.

Carl Lange

Page 36: Howtostopsucking
Page 37: Howtostopsucking

In the information age, the

barriers just aren't there. The

barriers are self imposed.

John Carmack

Page 38: Howtostopsucking

“If you want to set off and go develop some grand new thing, you don't need millions of dollars of capitalization. You need enough pizza and Diet Coke to stick in your refrigerator, a cheap PC to work on, and the dedication to go through with it. We slept on floors. We waded across rivers.”

Page 39: Howtostopsucking

3. Pick Stuff That Matters

Page 40: Howtostopsucking

So

what?everyone

Page 41: Howtostopsucking

The world just isn’t that into you. Unless what you're sharing …

• solves their problem• provides useful information• entertains them• makes them feel like they rule

… why would they care?

Page 42: Howtostopsucking

Every time you share something – ask yourself “so what?”

If you can't answer convincingly, reformulate and try again.

Page 43: Howtostopsucking

If your thing in public isn’t awesome enough (or sucks) that’s OK.

People won’t go out of their way to mock you.

They’ll just ignore it.

(people do remember successes, though)

Page 44: Howtostopsucking

This is The Internet.

Let your freak flag fly.

Find your audience.

Page 45: Howtostopsucking

Nobody should be more excited about your mission than you.

Page 46: Howtostopsucking

How do I know if this matters?

What cool thing did you do for someone else today?

(psst… Stack Overflow isn’t really a site about programming, it’s where we trick peers into reading, writing, experimenting, and learning with each other.)

Page 47: Howtostopsucking

“It's better to be safe than

sorry” is such crap. You know

what's better than being safe?

Being AWESOME.

codinghorror

Page 48: Howtostopsucking

#atlassiansummit

1. Embrace the Suck

2. Do It In Public

3. Pick Stuff That Matters

Page 49: Howtostopsucking

Thank you!