Sei sulla pagina 1di 49

How to Stop Sucking and Be Awesome Instead

Jeff Atwood
Coding Horror, Stack Exchange, Stack Overflow

Q: What does it mean when something Sucks?

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

And folks, let's be honest. Sturgeon was an optimist. Way more than

90% of code is crap.

Al Viro

Q: Why do we suck?

A: Because were software, too.

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.

The common thread in all my failed projects is

The First Rule of Programming: Its Always Your Fault.

codinghorror

1. Embrace the Suck

We make shitty software with bugs!

Dave Winer 1995

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!

Version 1 Sucks, But Ship It Anyway

codinghorror

3 months in development
vs.

3 months of user feedback

better side visibility hydraulic flight controls

climbs faster turns faster better distance visibility

Boyds Law of Iteration:

speed of iteration always beats quality of iteration


Where you are today doesnt matter so much, compared to where youre going tomorrow.

My goal is to suck less every year.

codinghorror

2. Do It In Public

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

talk, finger LISTSERV ls find, grep rn pine mount bash wall

ICQ DejaNews Yahoo! directory Google Bloglines Google Mail Amazon S3 Yahoo! Pipes Twitter

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."

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."

YouTube = public home videos (2005) Bob Saget was on to something.


Viewed 456 million times so far.

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.

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.

Moreover, Im sharing my code, for what its 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 elses door hat in hand, asking for commit access. I am not looking to do battle with Brooks Law at the outset of my brainstorm.

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

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

The onus of interestingness

the freedom to totally suck in private vs.

attempting to be awesome in public

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

In the information age, the barriers just aren't there. The barriers are self

imposed.

John Carmack

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.

3. Pick Stuff That Matters

So what?
everyone

The world just isnt 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?

Every time you share something ask yourself so what?


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

If your thing in public isnt awesome enough (or sucks) thats OK.
People wont go out of their way to mock you. Theyll just ignore it.

(people do remember successes, though)

This is The Internet.


Let your freak flag fly. Find your audience.

Nobody should be more excited about your mission than you.

How do I know if this matters? What cool thing did you do for someone else today?
(psst Stack Overflow isnt really a site about programming, its where we trick peers into reading, writing, experimenting, and learning with each other.)

It's better to be safe than sorry is such crap. You know what's better

than being safe? Being AWESOME.

codinghorror

1. Embrace the Suck 2. Do It In Public 3. Pick Stuff That Matters


#atlassiansummit

Thank you!

Potrebbero piacerti anche