If you can't read please download the document
Upload
dave-cross
View
2.032
Download
2
Embed Size (px)
Citation preview
Things I
Learned
From
Having Users
Dave Cross
[email protected]
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 [email protected].
All bugs get automatically
stored in RT
It won't work
AUTHOR
Dave Cross,
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 [email protected].
TLDR
AUTHOR
Dave Cross,
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