49. Proscriptive
Every time we proscribed something
Came up with our own best practices
Strayed off the cow paths
It all went to hell
We didn't have enough information
Caused implementation problems
54. YOU'RE
WRONG
I'll win
So many people make so many predictions over so much time
Odds are they're wrong
55. Be Descriptive
Describe only as much as you need
Leave the rest open as a user playground
Even the bad things
They provide wedges to do amazing things years later
56. Descriptive embraces change
The world will change
Technologies change
People change
Safe bet
Have a system that works with change
57. Can't predict change
In the long term
Who could have predicted the web?
NCSA Mosaic 15 years ago in 1993
So you can't control it
59. NCSA Mosaic is 15 years old
(The stable releases)
That was the beginning of the modern web.
The ?rst graphical web browser.
60. Perl 5 is 15 years old
Developed before the web took off
75. .---. .---. .---. .---. .---. .---.
OS API '---' '---' '---' '---' '---' '---'
| | | | | |
v v | v | v
.------------. | .-----------. | .-----.
| Filesystem | | | Scheduler | | | MMU |
'------------' | '-----------' | '-----'
| | | |
v | | v
.----. | | .---------.
| IO |<----' | | Network |
'----' | '---------'
| | |
v v v
.---------------------------------------.
| HAL |
'---------------------------------------'
76. ???? ??? ????? ??????
(Nadim Khemir)
He had no idea if this would be a cool thing
77. He's written all this other stuff that hasn't gotten a lot of attention
He happened to mention asciio at the hackathon
Everyone made them show it off
It was cheered, surprise hit of the conference
78. Will this be useful?
People spend a tremendous amount of time worrying if something will be useful to anyone
else.
Should they release it?
79. No release
==
No information
You can't predict use
Unless you release it you'll never know if anyone's going to use it.
80. Don't worry,
Be crappy
Guy Kawaski
Just throw it out there and see what sticks.
81. Release Early,
Release Often
Because you don't know what's going to be crap and what's gold
Throw it out there and ?nd out
If nobody uses it, no worries, work on something else
If the ?rst release is crap and it gets used, you can always ?x it in the next one
82. Cheap releases
The release process should be so cheap that the cost of release is not a consideration
I automate most of the process
83. Low barriers to entry
CPAN only requires your release is...
freely re-distributable (not even Open Source)
something to do with Perl
84. Feedback about use
The author should get lots of feedback about their release, if it's getting used, if there's bugs,
patches, critiques...
98. Necessary
It is the knowledge you need.
It solves the problems you have.
It includes all the necessary hacks to make it work in the real world.
As opposed to...
117. Write for yourself
It's ok to be sel?sh
The primary reason for working on something is because you need it
Not because others need it
Working for others for free means burnout.