You're right Mike. "direct calls to the database" is incorrect usage. And we 
are all grateful to the developer community for their great work so far.  So 
please take my suggestions for improvement in the context of this gratitude. I 
want  Evergreen to get to the next level.

My point still stands that features have been released that are way too slow 
(Acquisitions: displaying POs & invoiceswith many items) or just don't work 
(Authorities).  What is the point of releasing them?

If "premature optimization is the root of all evil"  how should we describe 
less than great performance in a  production release? Yes we want to test at 
scale, that's what Alpha and Beta releases are for. We need a large-ish site to 
install the Alpha and Beta releases (without significant customizations or 
features borrowed from future or past releases) and run them on production, do 
the QA optimization where problems appear, document the testing (and publish 
it) all before the production release.

If the release manager can't say no, where then should the QA decision be made? 
 QA should be part of the release process somewhere and contracts for 
development should include a QA clause and performance measures. They should 
also require adequate documentation. The delay of a release because of QA 
problems or lack of documentation is a motivator to do the QA & documentation; 
without that they have been considered of secondary importance.

You say that "RM role is a single volunteer position with no real power except 
to say "no" to a release. Can't they say no to just a feature or process if it 
doesn't measure up? Is it really just an all or nothing situation?

I think that a production release should be a complete package with QA, 
complete documentation and comprehensive, reliable upgrade scripts, not just a 
bunch of features of uneven quality. That just feeds into the "Evergreen (and 
Open Source in general) is not good enough for large libraries" myth.

Personally, I'd rather see one great release a year than two per year that have 
issues along with the improvements.

Stephen


From: Mike Rylander [mailto:mrylan...@gmail.com]
Sent: Thursday, February 28, 2013 10:47 AM
To: Evergreen Discussion Group
Cc: Elfstrand, Stephen F
Subject: Re: [OPEN-ILS-GENERAL] Evergreen & Software Performance Analysis



On Thu, Feb 28, 2013 at 10:56 AM, Jason Stephenson 
<jstephen...@mvlc.org<mailto:jstephen...@mvlc.org>> wrote:
Quoting "Elfstrand, Stephen F" 
<stephen.elfstr...@mnsu.edu<mailto:stephen.elfstr...@mnsu.edu>>:
there are a lot of direct calls to the database from the client,

Speaking as one of the developers, I have to correct the above statement. No 
such thing happens in Evergreen. The client cannot talk directly to the 
database, it goes through OpenSRF which handles database communication on the 
backend.

And speaking as another of the developers, I'd love to see evidence of problems 
(really -- we can't address issues without it).  New features and their 
supporting code and database structures certainly introduce new opportunities 
for optimization (database indexes, condensed APIs, etc), but these 
opportunities are often not visible until real-world load is applied, and in 
the words of a great man, "premature optimization is the root of all evil" 
(http://c2.com/cgi/wiki?PrematureOptimization).  If you have such evidence, 
please share.  I, for one, have a nice pile of evidence and addressing changes 
that are becoming a working branch right now.  As for assigning the job of QA 
to the release manager, assuming the community wants a 6-month release cycle 
and admitting that the RM role is a single volunteer position with no real 
power except to say "no" to a release, I don't think that is reasonable as the 
structure exists today.

In the larger sense, I believe we're driving at the same point, of course -- 
the lack of QA, particularly performance QA, before a release.  There is a 
chicken-and-egg problem here, however, and what we really need, as a community, 
is an ongoing effort -- certainly supported by and augmented with specific 
tactical audits of all the things you point out, and more -- that is separate 
from the release process itself (though informing it, obviously) to make sure 
that the currently desired round of  analysis and repair is not the last.  It's 
that ongoing effort, and the human and technical infrastructure that must, 
somehow, be sustained that I think is a bigger problem than any individual 
performance regression.

Equinox is making the attempt at creating that.  We've been getting good, 
positive feedback, and our efforts are intentionally orthogonal to, and /not/ 
mutually exclusive with, all other the discussions currently ongoing.  We're 
working hard to make sure that stays true, and that what we end up doing with 
and for the rest of the community is part of a larger whole.  We don't want to 
waste anyone's time, so we're making sure we get things as right as possible 
out of the gate, but we'll be sharing more information soon.  However, and I 
can not stress this enough, this should not cause anyone to stop their own 
efforts!  We all benefit from as much participation as possible by all types of 
community members: service providers, libraries and those institutions that 
straddle the line between both.

--
Mike Rylander
 | Director of Research and Development
 | Equinox Software, Inc. / Your Library's Guide to Open Source
 | phone:  1-877-OPEN-ILS (673-6457)
 | email:  mi...@esilibrary.com<mailto:mi...@esilibrary.com>
 | web:  http://www.esilibrary.com

Reply via email to