Subject: [CODE4LIB] good and best open source software

From: Eric Lease Morgan <[email-masked]>
Date: Mon, 28 Dec 2009 12:43:48 -0500

What qualities and characteristics make for a "good" piece of open source software? And once that question is answered, then what pieces of library-related open source software can be considered "best"?

I do not believe there is any single, most important characteristic of open source software that qualifies it to be denoted as "best". Instead, a number of characteristics need to be considered. For example, a program might do one thing and do it well, but if it is bear to install then that counts against it. Similarly, some software might work wonders but it is built on a proprietary infrastructure such as a closed source compiler. Can that software really be considered "open"?

For my own education and cogitation, I have begun to list questions to help me address what I think is the "best" library-related open source software. [1] Your comments would be greatly appreciated. I have listed the questions here in (more or less) personal priority order:

  * Does the software work as advertised?
  * To what degree is the software supported?
  * Is the documentation thorough?
  * What are the licence terms? 
  * To what degree is the software easy to install?
  * To what degree is the software implemented
    using the "standard" LAMP stack?
  * Is the distribution in question an
    application/system or a library/module?
  * To what degree does the software satisfy some
    sort of real library need?
  
What sorts of things have I left out? Is there anything here that can be measurable or is everything left to subjective judgement? Just as importantly, can we as a community answer these questions in light of distributions to come up with the "best" of class?

'More questions than answers.

[1] There are elaborations on the questions in a blog posting. See: http://tinyurl.com/ybk2bef

-- 
Eric Lease Morgan

---

From: Jonathan Rochkind <[email-masked]>
Date: Mon, 28 Dec 2009 12:51:59 -0500

Quality of code in general:   How well-designed is the code 
architecture, for maintenance and debugging?   [This not only matters if 
you plan to do in-house development with it, but matters for predicting 
how likely the product is to stay 'alive' and continue to evolve with 
the times, instead of you just being stuck with exactly the version you 
first installed forever.]

Developer Community: Is there a developer community around this 
software, with multiple people from multiple institutions contributing? 
Or is it just one founder maintaining it?  [One founder maintaining it 
_can_ work fine, as long as that founder keeps maintaining it. MarcEdit 
is a great example.  But the more of a community there is, again, the 
higher the reliability that the software will continue to evolve in the 
future, even if the founder bows out for some reason. ]

A related topic:  Do individual institutions do extensive local 
customization to core code, which does not end up merged back into the 
'main' distribution?  Again, this effects long-term sustainability of 
the software. 

I wrote a bit on judging one aspect of open source in a Library Journal 
article here: http://www.libraryjournal.com/article/CA6611591.html
I also compiled some opinions from me, Bill Dueber, and others, in what 
'good code' looks like in open source here:
http://wiki.code4lib.org/index.php/Category:Patterns

I could also pick nits with some of your criteria, but, hey, if they're 
important to someone they're important to someone. Some of htem are less 
important to me (For instance: "Is it deployed on LAMP" I'd generalize 
to "what are it's requirements and level of difficulty for deployment?"  
We are quite capable of deploying non-PHP solutions, but that doesn't 
mean that all non-PHP solutions are equal for ease of deployment 
either!.  )

---

From: Joe Hourcle <[email-masked]>
Date: Mon, 28 Dec 2009 14:24:05 -0500

On Mon, 28 Dec 2009, Eric Lease Morgan wrote:

> For my own education and cogitation, I have begun to list questions to 
> help me address what I think is the "best" library-related open source 
> software. [1] Your comments would be greatly appreciated. I have listed 
> the questions here in (more or less) personal priority order:
>

> What sorts of things have I left out? Is there anything here that can be 
> measurable or is everything left to subjective judgement? Just as 
> importantly, can we as a community answer these questions in light of 
> distributions to come up with the "best" of class?

+ How often do I have to update it to keep ahead of security exploits?

+ Does it play well with other software?  (eg, does it break under updated
   libraries and/or does the installer try to force me to update every
   library on my system to bleeding edge for no good reason?)
      (aspect #2 might fall under the 'easy to install' item)

...

You could also end up with some outdated software that meets all of the 
requirements, but is based on older standards that might not be relevant 
today.

-Joe

---

From: Nicole Engard <[email-masked]>
Date: Mon, 28 Dec 2009 14:21:42 -0500

I'm with Jonathan on the community health, one of the things I stress
when teaching my open source classes is that the developer and user
community is essential to the success and life of the product.

Nicole C. Engard

On Mon, Dec 28, 2009 at 12:51 PM, Jonathan Rochkind <[email-masked]> wrote:
> Quality of code in general:   How well-designed is the code architecture,
> for maintenance and debugging?   [This not only matters if you plan to do
> in-house development with it, but matters for predicting how likely the
> product is to stay 'alive' and continue to evolve with the times, instead of
> you just being stuck with exactly the version you first installed forever.]
>
> Developer Community: Is there a developer community around this software,
> with multiple people from multiple institutions contributing? Or is it just
> one founder maintaining it?  [One founder maintaining it _can_ work fine, as
> long as that founder keeps maintaining it. MarcEdit is a great example.  But
> the more of a community there is, again, the higher the reliability that the
> software will continue to evolve in the future, even if the founder bows out
> for some reason. ]
>
> 'main' distribution?  Again, this effects long-term sustainability of the
> software.
> important to me (For instance: "Is it deployed on LAMP" I'd generalize to
> "what are it's requirements and level of difficulty for deployment?"  We are
> quite capable of deploying non-PHP solutions, but that doesn't mean that all
> non-PHP solutions are equal for ease of deployment either!.  )
>
> Eric Lease Morgan wrote:
>>
>> What qualities and characteristics make for a "good" piece of open source
>> software? And once that question is answered, then what pieces of
>> library-related open source software can be considered "best"?
>>
>> I do not believe there is any single, most important characteristic of
>> open source software that qualifies it to be denoted as "best". Instead, a
>> number of characteristics need to be considered. For example, a program
>> might do one thing and do it well, but if it is bear to install then that
>> counts against it. Similarly, some software might work wonders but it is
>> built on a proprietary infrastructure such as a closed source compiler. Can
>> that software really be considered "open"?
>>
>> software. [1] Your comments would be greatly appreciated. I have listed the
>> questions here in (more or less) personal priority order:
>>
>>  * What are the licence terms?  * To what degree is the software easy to
>> install?

---

From: Brett Bonfield <[email-masked]>
Date: Mon, 28 Dec 2009 15:02:43 -0500

I really like this topic, and I like how you're thinking about it. I
tried to ask similar questions in an article I published in July:
http://inthelibrarywiththeleadpipe.org/2009/w-e-b-s-i-t-e-find-out-what-it-means-to-me/

I think Jonathan and Nicole nailed it with community health, though
this leads to an additional consideration that I think is more nuanced
than the application/system vs library/module distinction. Scriblio
and SOPAC are built on top of very healthy (from a developer community
perspective) software that has been created with moderately technical
end-users in mind.

This also gets back to Jonathan's very good generalization of your
point about LAMP: "What are its requirements and level of difficulty
for deployment?" When the first few steps are as comparatively easy
for non-developers as a "Five Minute WordPress Install," I think that
has to count for something.

Brett Bonfield

---

From: "Edward M. Corrado" <[email-masked]>
Date: Mon, 28 Dec 2009 15:15:57 -0500

While I think the author draws to strong of a line between Open Source 
and Closed Source, there is a good book about evaluating Open source 
software by Bernard Golden called "Succeeding with open source" [1].

Edward

[1] http://www.worldcat.org/oclc/55124574

---

From: Thomas Krichel <[email-masked]>
Date: Tue, 29 Dec 2009 14:40:18 +0100

Brett Bonfield writes

> I think Jonathan and Nicole nailed it with community health,

  I beg to differ.

  If you requiree a healthy community to start working with a piece of
  software, how do you want a grassroots project to start? Obviously a
  small project will start with one or two developers, and it won't
  grow, until a few people work with it despite the fact that it's a
  small thing to start with.

  Requiring an upfront healthy community is particurly problematic is
  a small community such as digital library work.

  On the other kind, there is widely adopted software that I got
  cajoled into maintaining, that consider bad. Apache is one of
  them. I run maybe 50 virtual servers an a bunch of boxes, I am still
  puzzled how it works and it's trial and error with each software
  upgrade, where goes that NameVirtualServer thing into, the constant
  croaks "server foo has no virtualserver". I'm not a dunce, but
  Apache makes me feel I am one. When I look at these config files
  that are half-baked XML, I wonder what weed the guy smoked who
  invented this.

  If I could do it allover again, I would do it in lighttpd. Oh well
  it was not there in 1995 where I started running web servers. 

  Other problematic case: Mailman. I run about 130 mailing lists, over
  80 have a non-standard config, I am running every few months into
  problems with onne of them, despite the fact that I wrote a script
  to configure all the non-standard lists the same way.

  Cheers,

  Thomas Krichel                    http://openlib.org/home/krichel
                                http://authorclaim.org/profile/pkr1
                                               skype: thomaskrichel

---

From: Nicole Engard <[email-masked]>
Date: Tue, 29 Dec 2009 09:29:09 -0500

Thomas,

That's why I added in 'user' to the community.  If there is an active
communication medium with one or two developers communicating with the
user community than there is health there. So I always say to look at
the developer & user community to make sure it's active as one of the
gauges of the health of an open source product.

Nicole

---

From: Jonathan Rochkind <[email-masked]>
Date: Tue, 29 Dec 2009 10:39:25 -0500

Something I tried to write about in my article in LJ, is, yes, every 
project needs to start somewhere. But you need to evaluate your own 
capacity, and compare that against the maturity of the software and the 
community. You need more internal capacity to deal with immature 
software with an immature community. Now, if there weren't those who had 
that that willingness to take risks, had that capacity, and were willing 
to apply it to a new project -- then we'd never get mature projects, 
indeed. But it's not necessarily the right decision for everyone.  It 
requires capacity and a willingness to be a developer, not just an end 
user.  Which is of course a spectrum, and ideally no user of 
collaborative open source is 'just' an end user, but some are more 
towards the 'developer' end than others.

You need to evaluate your own capacity and measure it against where the 
project you are considering is at.  No individual software is right or 
wrong for everyone universally, it depends on the context.

I tried to write about some of this stuff at more length (among other 
issues) in this article: 
http://www.libraryjournal.com/article/CA6611591.html

Jonathan

---

From: Joe Hourcle <[email-masked]>
Date: Tue, 29 Dec 2009 11:12:20 -0500

>  to configure all the non-standard lists the same way.

Even if they don't have specific forums, if they're more widely adopted 
software, you might have luck with well populated, but more generic 
forums:

 	programming related:
 		http://stackoverflow.com/

 	server administration:
 		http://serverfault.com/

 	other IT stuff:
 		http://superuser.com/

I admit that I haven't specifically asked any questions about Apache or 
Mailman, though.

-Joe

---

From: "Ziso, Ya'aqov" <[email-masked]>
Date: Tue, 29 Dec 2009 11:19:08 -0500

A few lessons learned while monitoring the vuFIND community:

Documentation needs to be evolving and accurate. Someone needs to OWN that responsibility and keep documentation up to date (and vuFIND are so lucky to have Demian Katz!). UNIX/man is not the best example for this.

Developer community, as we communicate, develop, ponder, annotate is also dynamic. Someone needs to OWN the responsibility of keeping track of RC1, or RC2, or Beta, or release 1.0, to TEST and determine which JIRA issues are those to be tackled, or left out, or, postponed.

Support address (for the rainy days when the sys person converted to Budhism or argued with a moving truck) is needed, so maintenance doesn't crush. Even though it sounds elementary, a list of contact admins is so critical for such rainy days, and for convincing library big wigs that paying six-digits to ILS vendors is on its way out.

This business model of OpenSource software becomes critical especially when something goes wrong, and preparing in advance (even if it assumes some costs) seems highly desirable. 

Ya'aqov Ziso

-----Original Message-----
From: Code for Libraries on behalf of Eric Lease Morgan
Sent: Mon 12/28/2009 12:43 PM
To: [email-masked]
Subject: [CODE4LIB] good and best open source software

  

-- 
Eric Lease Morgan

---

From: Thomas Krichel <[email-masked]>
Date: Tue, 29 Dec 2009 21:38:25 +0100

Nicole Engard writes

> That's why I added in 'user' to the community.  

  No matter how many people use Apache based web sites, it 
  does not make it Apache software better. 

  Telling people to use what others are using is just simple
  propaganda to stifle competition. 

  Cheers,

---

From: Francis Kayiwa <[email-masked]>
Date: Tue, 29 Dec 2009 15:17:38 -0600

>    to configure all the non-standard lists the same way.

I agree with Thomas' assessment above. While I don't have the numbers 
for this  I think just like there are more termites than elephants in 
the world, so too software programs. You can follow up that analogy with 
the termites also weigh a lot more than the elephants. ;-)

I think most people look at software development by focusing on the 
elephants and the ecosystem built around them which is frequently flawed 
or buggered down with the "enterprise" crud that is inevitable with 
keeping the community happy. (Do you really get a million hits?, you 
should be so lucky)

IMHO good open source software is driven by people with an itch to fix. 
The community develops and can be cultivated around this itch rather 
than "world domination". The project _MUST_ well documented [0] ideally 
actively maintained. The support of this software will mostly be taken 
care of with good documentation.

I think the OP Eric was being too modest but your MyLibrary Software is 
actually an example of good open source software -unless things have 
changed since I last tinkered with it.

regards,
./fxk

[0] How to != Documentation

---

From: Jonathan Rochkind <[email-masked]>
Date: Tue, 29 Dec 2009 16:28:57 -0500

I think you may find yourself somewhat in the minority in thinking 
Apache is bad software. (I certainly have my complaints about it, but in 
general I find it more robust, flexible, and bug-free than just about 
any other software I work with).

But aside from getting into a war about some particular package:  It may 
be true that in general popular software does not necessarily equal good 
software -- even popular open source software.  And doesn't neccesarily 
equal the right software solution for your problem. (I could mention 
some library-sector-origin open source software I think proves that, but 
I won't, and it would just be my opinion anyways, like yours of Apache).

But popular software _does_ mean software that has a much higher chance 
of continuing to evolve with the times instead of stagnating, getting 
it's bugs and security flaws fixed in a timely manner, and having a much 
larger base of question-answering and support available for it (both 
free and paid).

Which is one important criteria for evaluating open source software. But 
nobody was suggesting it should be the _only_ criteria used for 
evaluating open source software, or even neccesarily the most important. 
It depends on your situation. 

Jonathan

---

From: Jonathan Rochkind <[email-masked]>
Date: Tue, 29 Dec 2009 16:38:53 -0500

> care of with good documentation.

If your organization has local development capacity, and is willing to 
use it to meet a need, and is confident they will have the capacity to 
maintain the software as long as it's needed (which may be short or 
long-term) -- that's great. (Or if you personally have development 
capacity, and your organization is hands-off enough to let you get away 
with it. :) ).

And we defintiely do need more library organizations with development 
capacity that choose to use it on open source start-ups. That is indeed 
how succesful projects start. (And in a related but different topic, I 
think succesful software is seldom designed by committee).

But if you're an IT staff of one who isn't a programmer, it may or may 
not make sense to adopt an immature project. That's up to such a person 
to decide -- and if they aren't taking into account the balance of 
software maturity and local development capacity, I think they're making 
a mistake. If such a person does so without realizing the factors and 
risks involved, then if things don't go well (as I think they often will 
not), odds are someone will end up blaming 'open source'.   This does 
not do the 'open source' cause any good.  

Maturity of a product and it's community is ONE of several factors to be 
considered in evaluating an open source project, and should be balanced 
against the potential benefit of the product, with local capacities 
factored in.  It's just one of several factors, but it's an important 
one, and I think it's really a disservice to try to convince people it's 
not.

Jonathan

---

From: Joe Hourcle <[email-masked]>
Date: Tue, 29 Dec 2009 17:05:00 -0500

On Tue, 29 Dec 2009, Jonathan Rochkind wrote:

> I think you may find yourself somewhat in the minority in thinking Apache is 
> bad software. (I certainly have my complaints about it, but in general I find 
> it more robust, flexible, and bug-free than just about any other software I 
> work with).
>
> But aside from getting into a war about some particular package:  It may be 
> true that in general popular software does not necessarily equal good 
> software -- even popular open source software.  And doesn't neccesarily equal 
> the right software solution for your problem. (I could mention some 
> library-sector-origin open source software I think proves that, but I won't, 
> and it would just be my opinion anyways, like yours of Apache).
>
> But popular software _does_ mean software that has a much higher chance of 
> continuing to evolve with the times instead of stagnating, getting it's bugs 
> and security flaws fixed in a timely manner, and having a much larger base of 
> question-answering and support available for it (both free and paid).
>
> nobody was suggesting it should be the _only_ criteria used for evaluating 
> open source software, or even neccesarily the most important. It depends on 
> your situation.

I think that part of the problem here is that software tends to fill a 
niche, and some of these larger software projects tend to fill the 
'enterprise' niche.

Now, Apache 2 in many ways *is* easier to configure than Apache 1.3, but 
the sheer number of configuration options from all of the different 
modules makes it more difficult to configure than the Netscape/iPlanet/ 
SunOne product line.  (at least to me, other people might not be making 
the sorts of changes that I deal with).

However, there's a lot of power in Apache's configuration ability ... I 
just wish I didn't have to deal with all of it.*

... but it's like anything -- if I switch to a different server, it might 
be easier to configure, but then I lose mod_perl support, so it's a 
trade-off.

-Joe

* I think I lost a week trying to get some software virtual hosts working
   correctly, where there'd be a 'default' host, and one that only
   responded to specific names and had some alternate security options.

---

From: Nicole Engard <[email-masked]>
Date: Tue, 29 Dec 2009 17:00:51 -0500

I feel like I'm being misunderstood. I'm not saying if a lot of people use
it it. must be good.  I'm saying if there is 1 developer listening to his 1+
users in an open community forum (actual forum, mailing list, chat room,
etc) then the product is healthier than the open source product with no
community involvement.  It still may be crappy software, but I'd be more
likely to check it out over the product with no participation.

Nicole

On Dec 29, 2009 3:38 PM, "Thomas Krichel" <[email-masked]> wrote:

 Nicole Engard writes

Cheers, Thomas Krichel http://openlib.org/home/krichel ...

---

From: "Ziso, Ya'aqov" <[email-masked]>
Date: Tue, 29 Dec 2009 19:43:21 -0500

.... Telling people to use what others are using is just simple propaganda to stifle competition ....
+++++++
>> Respectfully, inviting people to an open discussion is exactly the opposite of telling people and propaganda <<

---

From: Eric Lease Morgan <[email-masked]>
Date: Wed, 30 Dec 2009 10:40:17 -0500

On Dec 28, 2009, at 12:51 PM, Jonathan Rochkind wrote:

> Quality of code in general: How well-designed is the code architecture, for maintenance and debugging?
> 
> Developer Community: Is there a developer community around this software, with multiple people from multiple institutions contributing? Or is it just one founder maintaining it? 

These are points well-taken. Thank you.

I have added the quality of code aspect to my internal list because it was not there previously. Much of the subsequent discussion of "good and best" software has surrounded community of some kind. I did not overlook this important aspect, but included it in my definition of support. Yet, I will elaborate for myself. Again, thank you.

-- 
Eric Morgan

---

From: Eric Lease Morgan <[email-masked]>
Date: Wed, 30 Dec 2009 11:07:48 -0500

On Dec 28, 2009, at 2:08 PM, Michael Fraser wrote:

> OSS Watch, the open source software advisory service for UK higher
> education has some pointers to existing frameworks for evaluating open
> source software:
> 
>   http://www.oss-watch.ac.uk/resources/strategists.xml
>   http://www.oss-watch.ac.uk/resources/brr.xml
> 
> --
> Dr Michael Fraser
> Head of Infrastructure Systems and Services
> Oxford University Computing Services
> 13 Banbury Road
> Oxford OX2 6NN
> Tel: 01865 283 343
> Fax: 01865 273 275
> http://users.ox.ac.uk/~mikef/

Very nice, and thank you for bringing OSS Watch back into my consciousness. I am sharing your well-done resource links with the Code4Lib community because, rather ironically, this thread has gotten more attention there. [1] I believe more people need to know about OSS Watch.

[1] Code4Lib thread - http://tinyurl.com/ychwxzq

-- 
Eric Morgan