Crap is Gold

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Crap is Gold - Presentation Transcript

    1. Balancing Sharing And Selfishness The CPAN Way
    2. or
    3. The Used-ocracy
    4. or
    5. Crap Is Gold
    6. Hi I'm Michael Schwern I went to CMU I failed.
    7. Perl
    8. Perl is part of Unix
    9. Perl has to work!
    10. Comprehensive Perl Archive Network
    11. CPAN
    12. CPAN is half of Perl
    13. CPAN breaks, Perl breaks
    14. CPAN has to work!
    15. CPAN is 90% crap 90% of everything is crap (present company excluded) That's ok because ideally you never find it And nobody uses it (for long)
    16. Only 10% gets used That 10% is really good
    17. Isn't that inefficient? Yes... ...but maybe it's the least inefficient in the long run
    18. Oslo QA Hackathon Lots of arguments and productivity Lots of things that have been festering for years resolved
    19. Improving CPAN Improving Perl testing
    20. Why Us? Why this bunch of people? Why not somebody else?
    21. Testing experts? Nope
    22. Fancy degrees? Nope
    23. Big companies? Nope
    24. Why Us? Why this bunch of people? Why not somebody else?
    25. We do
    26. People use People use our stuff
    27. Selected by use
    28. Merit-ocracy? We're not there because we wrote the \"best\" thing What is the \"best\"? How do you select what is the \"best\"?
    29. Do-ocracy? We're not there just because we do the work. 90% of CPAN is crap They did, but they're not selected.
    30. Used-ocracy We're there because our stuff gets used. That's it Even if it's internals are crap, it's useful
    31. Selected by use
    32. Not by poll
    33. Not by vote
    34. Not by asking
    35. Not by what people want
    36. By what people need Not just what they think or say they need But by what they actually need
    37. Use illustrates need
    38. Use is measurable Clearly measurable Downloads, phone homes, \"popularity contest\" Mailing list activity, robust communities Forks, patches...
    39. Select By Use A healthy system selects by use
    40. CPAN is a Used-ocracy The users select what is important.
    41. Use is evolutionary
    42. Pave the cow paths We were in Oslo to pave the cow paths
    43. Pave the wagon trails
    44. Descriptive Describing More formally Because the community had grown too large for conventions Word-of-mouth only goes so far Spread best practice
    45. English dictionaries are primarily descriptive
    46. 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
    47. Proscribe the potentially bad
    48. Proscribe the potentially good also proscribe the good
    49. Proscribing change Nobody will ever want to do it this way Proscription backs you into a corner Proscription bets everything
    50. My prediction for the future?
    51. YOU'RE WRONG I'll win So many people make so many predictions over so much time Odds are they're wrong
    52. 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
    53. Descriptive embraces change The world will change Technologies change People change Safe bet Have a system that works with change
    54. 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
    55. NCSA Mosaic is 15 years old (The stable releases) That was the beginning of the modern web. The first graphical web browser.
    56. Perl 5 is 15 years old Developed before the web took off
    57. Perl is 20 years old
    58. CPAN is 12 years old And for much of that time it wasn't intensely used. Not like it is now.
    59. Perl predated the web Perl did not predict the web Perl became THE web language
    60. Linux is 17 years old
    61. Unix predated it Unix became THE web server Who had trouble?
    62. Microsoft w/Win 95 and 98 And Windows 95 came *after* Mosaic
    63. Controlling change is death or at least really painful in Microsoft's case
    64. Descriptive embraces chaos
    65. 90% is crap Taking a big crap is healthy
    66. One man's crap Is another man's gold
    67. App::Asciio For example
    68. App::Asciio - Plain ASCII diagram | | | | | | | | | | | | | | | | v | v | v | v v v ______ _____ /\\ _ \\ __ __/\\ __`\\ \\ \\ \\L\\ \\ ____ ___ /\\_\\/\\_\\ \\ \\/\\ \\ -----> \\ \\ __ \\ /',__\\ /'___\\/\\ \\/\\ \\ \\ \\ \\ \\ -----> \\ \\ \\/\\ \\/\\__, `\\/\\ \\__/\\ \\ \\ \\ \\ \\ \\_\\ \\ \\ \\_\\ \\_\\/\\____/\\ \\____\\\\ \\_\\ \\_\\ \\_____\\ \\/_/\\/_/\\/___/ \\/____/ \\/_/\\/_/\\/_____/ | | | | | | | | | | | v | | | v | | | v | | | v | | v v v (\\_/) (O.o) ASCII world domination is near! (> <)
    69. default elements in an empty diagram .------------------------. | | | | | | .-------|---------------|--------|------------------------------------------. | | | | asciio | |-------|---------------|--------|------------------------------------------| | ......v---------......v........v......................................... | | .....| |..edit_me....--->....................................... | | .....'----------'........................................................ | | ......................................................................... | | ...................----------------..---------------..................... | | ..................| ASCII > || thin_box |.................... | | ..................| Rules line > || text |.................... | | ..................| Load || wirl_arrow |.................... | grid------------->..........| Save || arrow |.----------......... | | ..................| Export > || box > || star_box |........ | | ..................'----------------'| Rulers > |'----------'........ | | ...........................^........| Misc > |.................... | | ...........................|........| T_star |.................... | | ...........................|........'---------------'.................... | | ...........................|............................................. | | ...........................|............................................. | | ...........................|............................................. | | ...........................|............................................. | | ...........................|............................................. | | ...........................|............................................. | '----------------------------|----------------------------------------------' | context menu
    70. .---. .---. .---. .---. .---. .---. OS API '---' '---' '---' '---' '---' '---' | | | | | | v v | v | v .------------. | .-----------. | .-----. | Filesystem | | | Scheduler | | | MMU | '------------' | '-----------' | '-----' | | | | v | | v .----. | | .---------. | IO |<----' | | Network | '----' | '---------' | | | v v v .---------------------------------------. | HAL | '---------------------------------------'
    71. ‫ﻧﺪﱘ ﺍﺑﻦ ﺤﻣﻮﺪﺓ ﺍﳋﻤﻴﺮ‬ (Nadim Khemir) He had no idea if this would be a cool thing
    72. 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
    73. Will this be useful? People spend a tremendous amount of time worrying if something will be useful to anyone else. Should they release it?
    74. No release == No information You can't predict use Unless you release it you'll never know if anyone's going to use it.
    75. Don't worry, Be crappy Guy Kawaski Just throw it out there and see what sticks.
    76. Release Early, Release Often Because you don't know what's going to be crap and what's gold Throw it out there and find out If nobody uses it, no worries, work on something else If the first release is crap and it gets used, you can always fix it in the next one
    77. Cheap releases The release process should be so cheap that the cost of release is not a consideration I automate most of the process
    78. Low barriers to entry CPAN only requires your release is... freely re-distributable (not even Open Source) something to do with Perl
    79. Feedback about use The author should get lots of feedback about their release, if it's getting used, if there's bugs, patches, critiques...
    80. Feedback Loop Starts a feedback loop Author makes changes based on use
    81. Evolution System evolves based on use Evolution is very healthy and very robust
    82. How do you know what people need? Nadim came up with this great thing, asciio Why did it he do it?
    83. You don't know.
    84. What do you know?
    85. You know yourself.
    86. You know your needs. Instead of writing what others need...
    87. Write what you need. Knowing and doing what you need for your situation is known as...
    88. Mêtis
    89. Local
    90. Practical
    91. Personal
    92. Subjective
    93. 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...
    94. Generalized Knowledge
    95. Global
    96. Abstract
    97. Impersonal
    98. Speculative
    99. Simplified
    100. About control Top down control. Making it easier for the implementers at the expense of the users.
    101. Finding the holy grail Often never found
    102. About getting things done Metis is...
    103. You know your problem best
    104. You know best if the solution fits \"Art of muddling through\"
    105. You write what you need. Then release it and see if anyone else needs it. Astoundingly effective.
    106. Don't look up for help
    107. Look side to side Look to yourself and the people around you They have a similar problem They'll accept a similar solution
    108. Even the best authors only make a handful of useful modules
    109. 90% is useless to others
    110. 100% is useful to yourself
    111. Write for yourself It's ok to be selfish The primary reason for working on something is because you need it Not because others need it Working for others for free means burnout.
    112. (Mêtis)
    113. Release for others
    114. (Generalize)
    115. Adapt for both
    116. Work for yourself Share with others
    117. Thanks
    118. Questions? schwern@pobox.com

    + FriprogsenteretFriprogsenteret, 2 years ago

    custom

    325 views, 0 favs, 1 embeds more stats

    Michael Schwern's presentation at GoOpen 2008.

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 325
      • 324 on SlideShare
      • 1 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 2
    Most viewed embeds
    • 1 views on http://192.168.10.100

    more

    All embeds
    • 1 views on http://192.168.10.100

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories