Things I Learned From Having Users
Upcoming SlideShare
Loading in...5
×
 

Things I Learned From Having Users

on

  • 1,989 views

 

Statistics

Views

Total Views
1,989
Views on SlideShare
1,989
Embed Views
0

Actions

Likes
1
Downloads
9
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Things I Learned From Having Users Things I Learned From Having Users Presentation Transcript

  • Things I Learned From Having Users
  • Dave Cross [email_address]
  • It's 10 Years Since I Got A CPAN Account
  • April 29 2000
  • Array::Compare 0.01
  • It's a pretty pointless module
  • Comparing arrays using a ridiculous algorithm
  • My second module on CPAN was Symbol::Approx::Sub
  • There may be a theme developing here
  • I now have 24 distributions on CPAN
  • Array::Compare AudioFile::Info AudioFile::Info::MP3::ID3Lib Audiofile::Info::MP3::Info AudioFile::Info::MP3::Tag AudioFile::Info::Ogg::Vorbis::Header AudioFile::Info::Ogg::Vorbis::Header::PurePerl Calendar::Simple Guardian::OpenPlatform::API Net::Backpack Number::Fraction Parse::RPM::Spec Perlanet Symbol::Approx::Sub Template::Plugin::AudioFile::Info Template::Plugin::RPM2 Template::Plugin::XML::Feed Tie::Hash::Cannabinol Tie::Hash::FixedKeys Tie::Hash::Regex WWW::Shorten WWW::Shorten::Qurl WWW::Shorten::Qwer WWW::Shorten::SnipURL
  • Most of them have tiny numbers of users
  • Having few users is good
  • Users are a problem
  • Users report bugs
  • Users suggest enhancements
  • Users expect you to listen to them
  • Writing unpopular modules is good
  • You can release what you want
  • You can release when you want
  • You can completely change the interface
  • (Users don't like that)
  • On the other hand
  • Users make suggestions that you would never have thought of
  • Users use your code in new and interesting ways
  • Users test your code for you
  • Users report problems
  • Users supply failing tests
  • Users write patches
  • Users are good!
  • Embrace your users
  • But!
  • Popularity brings problems
  • Too many active users
  • Too many bug reports
  • (Why are you releasing buggy code?)
  • Too many bug reports
  • Too many bug reports
  • Too many enhancement requests
  • Use the tools
  • CPAN has a great infrastructure
  • Distribution is handled for you
  • Testing is handled for you
  • Cross-platform testing is handled for you
  • Bug tracking is handled for you
  • Every CPAN module gets its own RT queue
  • rt.cpan.org
  • Add that to your documentation
  • To report bugs in Perlanet, please use the CPAN request tracker. You can either use the web page at http://rt.cpan.org/Public/Bug/Report.html?Queue=Perlanet or send an email to bug-Perlanet@rt.cpan.org.
  • All bugs get automatically stored in RT
  • It won't work
  • AUTHOR Dave Cross, <dave@mag-sol.com>
  • To report bugs in Perlanet, please use the CPAN request tracker. You can either use the web page at http://rt.cpan.org/Public/Bug/Report.html?Queue=Perlanet or send an email to bug-Perlanet@rt.cpan.org.
  • TLDR
  • AUTHOR Dave Cross, <dave@mag-sol.com>
  • Install the Redirect add-on for Thunderbird
  • Install the Redirect add-on for Thunderbird * Dave's Top Tip
  • Or use the bounce key in Mutt
  • Send your own bugs to RT
  • Use RT to remember everything you need to do to your modules
  • Use RT to remember everything you want to do to your modules
  • Some examples
  • Example 1: Moose
  • Moose is good
  • I started to Moosify my modules
  • Remember Array::Compare?
  • The module that no-one used
  • I got a bug report
  • Bug #49270 for Array-Compare: Remove the use of Moose
  • Padre project was unhappy
  • Moose was slowing their performance
  • I thought about it
  • I blogged about it
  • Other people blogged about it
  • In the end I did nothing
  • Source code is on Github
  • Feel free to fork it
  • Moral:
  • The user is not always right
  • Example 2: Net::Backpack
  • Backpack from 37 Signals
  • Personal information manager
  • With an API
  • Net::Backpack
  • It's a big API
  • I got bored
  • Release early Release often
  • Released a partial implementation
  • Someone found it useful
  • Sent a patch completing the implementation
  • Yay neshura!
  • Example 3: Perlanet
  • Perlanet is a web feed aggregator
  • Wrote it because I didn't want to hack Python
  • And Plagger was too complex for me to understand
  • So Perlanet is really simple
  • Too simple
  • Users have weird use cases
  • Users have weird use cases
  • Users have unexpected use cases
  • Alex Kapranoff (kappa)
  • perlplanet.ru
  • Cyrillic
  • Кириллица
  • Lots of Unicode bugs
  • kappa didn't complain
  • kappa forked Github repo
  • kappa fixed the bugs
  • kappa sent a pull request
  • kappa++
  • Planet Iron Man
  • Originally used Plagger
  • Wanted to switch to Perlanet
  • YAML configuration
  • Simple
  • Doesn't scale
  • North West England Perl Mongers
  • Hackfest
  • Many improvements
  • More subclassable
  • Github pull request
  • Everybody wins
  • In summary
  • Writing software just for yourself is fun
  • Writing software for users is better
  • Seeing your software being used is great
  • Getting feedback about your software is great
  • Users supply bugs
  • Users supply patches
  • Users supply new ideas
  • Users supply insight
  • Users appreciate your work
  • But best of all
  • Some users show their appreciation...
  • By buying you beer
  •