Zotero development, forums, users, and our ideas
I say the following as someone who has been an enthusiastic Zotero user since fairly early days, and a contributor to these forums as both an asker and answerer. I really want Zotero to succeed. I like the Zotero vision very much, and have given a number of enthusiastic Zotero demonstrations to librarians and students. At times I have also been astonished at the pace of development, and the responsiveness of the developers to user issues. Thanks for all of this. And long live Zotero.
Short version: Is there any way that those at the helm of Zotero could make it happen that all original, quality user proposals and requests on the forums get explicitly dealt with? (Even the small ones).
One frustration I have on these forums is that when I spend a little time thinking about how something in Zotero could work better for me, and I write it up, I sometimes don't any response from those with the ability to do something about it. It doesn't GO anywhere. What I want, I suppose, is something like one of the following:
1. Done. Thanks for the input.
2. I'm listening, but need a better idea of what you're asking for to be able to assess it. Describe it more fully, give your use cases, do some research, etc. and get back to us. We'll take it further then.
3. I like the idea, intend to implement it and have put it on the long or short-term todo list. You can forget about it and watch the changelog.
4. I like the idea but can't imagine getting to code it myself. I would certainly consider a patch which meets our coding guidelines.
5. I like the idea, but don't want it in the core. I'd happily test/promote/host or otherwise assist an extension to do it.
6. I'm unconvinced that that's a helpful change (but could possibly be convinced by a patch or further discussion which made the change compelling)
7. It doesn't fit with our vision. You'll have to look elsewhere, start your own project, or fork this one on your own nickel to fulfill that.
What each of these do for me, is that they take the discussion further. The buck moves in an identifiable direction. I don't have to keep checking my threads at monthly intervals, wondering how soon is too soon to bump them with a polite expansion. I either got over my disappointment at having my idea rejected, or I know that it's deferred, or I know that it's approved, and will be implimented as time and other priorities allow, or I know that the burden is still on me if anything is to happen.
Now what right do I have to ask for that? None really. I'm just a normal user, but one for whom the tasks that Zotero performs are essential. And I made the leap to Zotero, and did what I could short of learning javascript to chip in, helping people on the forums, and raising my own hand when something was broken for me. So I'm invested. I don't want to try to tell you how a good open source project should be run, and I don't have any claims on special attention.
Still, Is there any way that those at the helm of Zotero could see to it that all original, quality user proposals and requests get dealt with one of those ways, by someone with the authority to do it? It is the only thing (besides frustration) that will continue to motivate us to make them.
Short version: Is there any way that those at the helm of Zotero could make it happen that all original, quality user proposals and requests on the forums get explicitly dealt with? (Even the small ones).
One frustration I have on these forums is that when I spend a little time thinking about how something in Zotero could work better for me, and I write it up, I sometimes don't any response from those with the ability to do something about it. It doesn't GO anywhere. What I want, I suppose, is something like one of the following:
1. Done. Thanks for the input.
2. I'm listening, but need a better idea of what you're asking for to be able to assess it. Describe it more fully, give your use cases, do some research, etc. and get back to us. We'll take it further then.
3. I like the idea, intend to implement it and have put it on the long or short-term todo list. You can forget about it and watch the changelog.
4. I like the idea but can't imagine getting to code it myself. I would certainly consider a patch which meets our coding guidelines.
5. I like the idea, but don't want it in the core. I'd happily test/promote/host or otherwise assist an extension to do it.
6. I'm unconvinced that that's a helpful change (but could possibly be convinced by a patch or further discussion which made the change compelling)
7. It doesn't fit with our vision. You'll have to look elsewhere, start your own project, or fork this one on your own nickel to fulfill that.
What each of these do for me, is that they take the discussion further. The buck moves in an identifiable direction. I don't have to keep checking my threads at monthly intervals, wondering how soon is too soon to bump them with a polite expansion. I either got over my disappointment at having my idea rejected, or I know that it's deferred, or I know that it's approved, and will be implimented as time and other priorities allow, or I know that the burden is still on me if anything is to happen.
Now what right do I have to ask for that? None really. I'm just a normal user, but one for whom the tasks that Zotero performs are essential. And I made the leap to Zotero, and did what I could short of learning javascript to chip in, helping people on the forums, and raising my own hand when something was broken for me. So I'm invested. I don't want to try to tell you how a good open source project should be run, and I don't have any claims on special attention.
Still, Is there any way that those at the helm of Zotero could see to it that all original, quality user proposals and requests get dealt with one of those ways, by someone with the authority to do it? It is the only thing (besides frustration) that will continue to motivate us to make them.
Do you have permission to create new tickets scot? If you do, then you should.
If you don't, then maybe this conversation should be about that question.
My suggestion: at minimum, any user on this forum who has shown some level of productive contribution and understanding of Zotero (e.g. scot) should have rights to create new tickets.
Those users should then take responsibility for adding them as issues come up in the context of forum discussions.
The Zotero team, then, is responsible for making sure those tickets are either accepted, or not (with a "won't fix"), and for prioritizing them.
But this is really up to Dan and Sean of course; just a suggestion. In general, there really needs to be a plan for building out this community, and that includes formalizing roles for different contributors.
Dan has noted a few times over the last couple of years that the development team (which I am not a member of) doesn't feel that they are able to play triage to all bugs, which is why access isn't more open. The guidelines still seem to reflect this sentiment. As such, I'd be hesitant to submit anything to TRAC that seemed controversial and/or wasn't thought out enough (e.g. having TWO BibTeX exporters) & would save such discussions for these forums or the development list.
Note also that bugs can sit in trac with no comment or progress for months or more, just as forum posts can. Neglect is not a sign that nothing will ever happen or that nobody thinks it is a good idea. Bumping a thread in the forums is certainly less discouraged than filling trac with "bugspam." Perhaps more threads should be turned into tickets, but again: this won't provide you any more timely feedback. Note that you can follow forum threads using RSS, etc.
But in the end, there also needs to be a plan to grow the developer community, too. Might help some to switch to a distributed VC like Mercurial (which Mozilla is now using), and to split out different pieces into different project repos.
But but the Zotero Trac page is pretty specific (seems to me) that it shouldn't be used for the kinds of user proposals I'm talking about, at least not until they've been given developer say-so.
And even if I could physically create new tickets, that doesn't exactly do it, since the issues can still die in the trac as easily as they can die in the forums.
It's partly an issue of how user suggestions and requests are integrated into the development process. It seems to someone outside that Zotero development is pretty centralized at CHNM. I don't mind this, I've seen great projects with a centralized vision-and-decision core, and which are quite good at taking user input into account. But I would suggest that if Zotero works that way, then good user proposals are most helpfully handled centrally, or at least by someone who is integrated enough into the development process that they can speak with authority about how things stand and what can and will get done.
If the development is not to center around CHNM, then that's a different story, but I'm not sure what that would look like.
I also realize, again with regard to Trac acess, that I'm not sure what the Trac's relation to development is. It seems like it's positioned as repository of tasks that are committed to at some level. If that's the case then it doesn't do much good to give me or someone like me Trac access, since I can't do any committing for the project. If it's broader than that, containing projects and issues and bugs that that still remain to be committed to, then it's different. Do they want that? Do we? The number of Help Wanted tickets on the Trac is currently a tiny fraction of the total. And if it were a repository for 'stuff people hope will happen' then some more of the discussion and bumping would need to happen there, otherwise there's no where it can be noticed by those who actually make the decisions.
Short version: trac isn't magic, but it is a prerequisite, and I think the rules need loosening.
On distributed vs. centralized: as I mentioned above, one thing I'd like to see is a move to a distributed SCM like Merucial (what Mozilla is using), and to have different pieces pulled out into separate repos. Frank Bennett's work on the CSL processor rewrite is a perfect candidate; he could host it on BitBucket and have his own issue tracker, with changes pushed and pulled from Zotero as needed.
A short additon: As an example of a space for community commentary on bugs and features which still has workflow features, see Ubuntu's launchpad.net. This is not a suggestion to change tools, only another model which has some virtues, and which they seem to use well. The Ubuntu team make a pretty good effort to have all issues dealt with (by some means). And that helps them say "No really, this is Open Source, we *want* your bug reports." The Zotero devs also want to (and do) say something like that, but (perhaps) need some way to take those bug reports and feature requests forward so that all of us can benefit from users' mental work on the remaining problems.
And let me add again, that in lots of places the Zotero devs have done this well. Of the posts he answers, Dan S. in particular is quite good at moving each one to the next step, even if that's a 'Sorry, but no.' I appreciate that.
Without having a separate triage team (as mozilla has), I don't know what concrete improvements could be made to the process. You don't need commit access to submit a patch & trac seems to be a decent way to submit working/non-controversial patches. It seems like it'd make trac considerably less useful to everyone But they do welcome contributions on tickets that aren't explicitly tagged as such. The development team does follow these forums too. I disagree with both points: merely changing tools will do nothing to improve a situation that is fundamentally limited by manpower. If trac or distributed version control would not hinder the GMU team & would help outside contributors, then great! But I am not convinced that they really would help that much. I don't think wider trac access would help me with my contributions (unless that wider access came with someone to de-chaff trac). Having changes pulled from my SCM might be nice, but some outside contributions seem to be coming from people who need handholding with SVN.
FWIW: I use git-svn for the extension and CSL repositories & there is nothing stopping you from benefiting from the "private" advantages of distributed version control. Canonical has 200 fulltime employees & raises $30M in revenue a year. Launchpad is a neat tool (and I look forward to it being completely open sourced), but I don't see any of the tools in this thread solving the "problems" highlighted, which are really social in nature.
I'm partly thinking about these issues in terms of xbib too; we've got a bunch of different subprojects in the SVN repo, and now forks of some of it on GitHub; seems to me everything but the schema and test suite ought to be spun off. But I'd still like to be able to contribute to those when time permits. Keeping track of them on GitHub or BitBucket is a nice/easy way to do that.
The idea is that this list would be pre-sifted, and the items would be at least one step further along from a forum request: They would have been seconded by someone who's been around awhile and been given that role (say). So one of the devs sees every item on the list, and decides what happens to it (do, defer, delegate, deny, discuss or whatever).
This surely puts more issues in the Trac, but hopefully without a lot of lasting clutter---just a fairly concentrated stream of feedback, which is ideally both in a single place and already in a workflow-based tool. I like the Trac (with the above caveats) because it's visible to the originating user, and items which get approved don't need to be re-formulated to be added to the Trac by the vetting developer.
This could possibly be good both for developers and users, and it could also even lend itself to spreading the development work around, since user ideas that the developers had answered (4) or even (3) above [blessed for inclusion, but we can't pull it off just now] have a real public status as such. Anyone can take them up and work on them and not wonder whether they're working at cross purposes to the main movers. Now, it seems to me, many of them just languish undressed in the forums. I'm addressing discussion more than code. I don't rule out that I might learn enough Javascript to contribute code, but I don't know any now. I know that code is ultimately where it's at, but I'm addressing bugs and feature requests.
As an example, a few hours ago Rintze, who has ticket creation privileges, created a ticket for a small bug that noksagt pointed out the other day. I'll probably get around to fixing it soon, or, if someone were inclined, they could follow the link to the ticket from the thread and ask to take it. This is as it should be. In that case, I had agreed on the thread that it should be fixed, but noksagt or Rintze could've easily put it into Trac before then, since it's pretty clearly non-optimal and there's no need for further discussion. If it did need further discussion, though, I think that restricting that discussion to the people who follow Trac would be a mistake.
The real limiting factor, as noksagt has pointed out, is developer time to actually implement things, and putting stuff into Trac isn't really going to help with that. Most of us on the Zotero team read every single post in the forums, and we could probably name off the top of our heads most of the issues that would appear on the sort of in-Trac-but-not-fully-committed-to list that you describe.
Ultimately, people not on the core development team are going to work on things that bother them, and they're going to search the forums for previous discussions and either try to get consensus or just offer up a patch. (Frank Bennett has gone both of these routes, and both have led to accepted patches.) We've marked a few tickets as "helpwanted" to suggest places where people could get involved, but I don't think anyone has ever actually worked on such a ticket. We have some ideas to more actively encourage community involvement in development and other areas, but I don't think it will fundamentally change what motivates people.
I think part of the frustration here is simply because, for most of the last year, the Zotero team has been focused primarily on metadata and file syncing, web features, and related social features (including some that have yet to appear), so we haven't had as much time as we've had in the past to devote to implementing other features suggested on the forums. This will change in the coming months as the sync-and-web-related features stabilize.
I think we've demonstrated that we're more than willing to engage deeply in forum discussions and turn user suggestions into code (even, sometimes, within hours), but we can't carry every discussion forward. I understand that it's frustrating not to receive a response to a post, but a lack of response on our end is usually a sign that we don't have anything of interest to add and are seeing if others chime in. This doesn't mean that we're uninterested in an idea, that we wouldn't join in if the discussion progressed, and/or that we wouldn't ultimately either implement something ourselves or welcome patches, but we simply don't have the time to respond to everything.
Ultimately, as I've said in the past, our limiting the use of Trac is aimed not at closing off the development process but rather at keeping it open and accessible to all users, including the large majority of people who would be intimidated by Trac but who can offer valuable contributions in the forums.
This is an interesting exchange. It's a judgment call for the development team, but given the community that Zotero serves, it seems like there may be potential benefits from a slightly more formal role for a "friends of Zotero" circle (which already exists de facto). Something like the "training the trainers" initiative, but on the development side. [Ha. Crossed in the post with Dan's response above, q.v.]
I have the same complaint about trac access, for instance this problem, which as far as I can tell still isn't being tracked. I wanted to enter a bug and tried to but just gave up in frustration - I mean, what's the point of requesting a trac account if I can't enter a bug?
Another side to this nobody has mentioned, we need a real development timeline, one that is accurate and up-to-date. Tracking bugs and features is crucial, but from a user's perspective useless if there's no way to assess where it is in the pipeline (at least if the issue is a "deal-breaker"). In trac many features are listed for 1.5 but is that really going to happen? I realize a huge number of features may be "eventually" - what we need is a timeline for the next release, the next 6 months, ideally the next year.
One more thing, it's important to think about the problem here as the "feature request and bug tracking process" with the emphasis on process. Trac is one part also involved are a lot of non-software people processes: responsibilities, interactions, norms of behavior. Solutions, or improvements, may involve changes to any or all. So it's very important to have discussion like those above about perhaps opening up trac access.
I have my own high-priority list of 2 or 3 features, where I now use klugy work-arounds. These are not "deal-breakers" per se, but I would really, really like to know what chance they'll be implemented when I start writing my dissertation. It could affect my workflow now, if I know I probably won't have the feature.
Another angle is that I'm capable of being a developer (although now working in social sciences / humanities). Some of these features I might go ahead and implement myself ... if I ever had time :-/
The bug I mentioned is an interesting example. I didn't find the bug report because it does not include the error message actually seen by the user. So if I had entered a bug with that error message, and it was marked as a dupe, this would actually be a useful addition to the trac data (in my view). Obviously it would be better to find the existing report, and add a comment there, but ... life's not perfect and bugs need to be findable. Perhaps this is a good test case for gauging one's conception of a bug-tracking system and its role in a project like this.
About asking questions on the forums, I guess my attitude is that we should be trying to avoid predictable questions like "when will this feature be implemented?" by making the information available. Further, that way when someone does predictably ask, you or I (non-devs) could answer and save the devs that work.
We generally do try to include links to Trac tickets from forum threads and vice versa, but that's mostly just to save a few seconds when something is fixed and we want to quickly post a note letting people know.
As noksagt says, that well-meaning individuals like yourself would want to create a Trac ticket for something for which a ticket exists and which is even listed on the known issues page seems like a pretty good indication that reserving Trac for developers and a few select community members is a good idea.
I feel like I've derailed this thread somewhat and apologize for that. My comments were intended in the spirit of the original post, to encourage us all to think about the development process and our use of tools like the forum.
Dan, I'm in sympathy with the way you want to continue to use Trac, and with your reluctance to add new tools and the associated overhead. Thanks for your work, also and especially the work of keeping your energies from getting dissipated.
I do still suggest that it would help Zotero's users if each user idea which is (or in the course of discussion came to be) intelligently presented, received some kind of "processing on" from those with the authority to do so.
This would help users in two ways (1) Zotero users and potential users have their own commitments, and need to make good decisions about what tools to use as their project deadlines approach. For those that have fairly exacting requirements (and citation requirements do tend to migrate in that direction!), they need to be able to make good decisions about when and to what degree to migrate to Zotero. This includes knowledge about what manual workarounds might be required, and whether such workarounds will be required forever (for less mainstream problems or workflows, some may!). A "requested features" tool would help them see just what can and can't be done at any one point. (2) Quite apart from the development process itself, it is a big help to know that some feature request we came up with (researched, discussed, or wrote out details for) is part of some assembly line, and making its way (however slowly, with whatever setbacks) into the code. Or of course to know that it won't make the cut, or that it needs more discussion, research, or planning. We also have limited time and attention which we need to use effectively.
Noksagt asked " How do you perceive submitting a ticket to be different than making a forum post?"
As I said, I've (now) no problem if these things don't become Trac tickets. But if the question is, "What's wrong with forum posts for presenting feature requests?" I have an answer: 3 month old Trac tickets are still "live." A forum post which was a Good Idea (TM), but which never made it off the forums is dead to all but those who search for it. The users who worked on it have no satisfaction. In truth, the forums work great for *presenting* feature requests, it's just that in their present state, they're not that good for taking the lower-, medium- or long-term-priority items into the development flow.
Whatever the implications of this "forum fade" for development, it is a frustration for users. I'm glad to hear, Dan, that you're still able to read everything that's posted on the forums (it's more than I expected), and I'm sure you "could probably name off the top of your heads" many of the issues of the kind that I'm describing. But your mental horizon is much bigger than mine if you are really able to hold all the full set of decent development directions which emerge from the forums. (see a few small ones below)
I hesitate to give one of my own requests as an example, since this I'd rather the thread didn't get diverted by the (de)merits of one particular request, but I'll include it anyway in the interests of making the above a little more concrete:
One feature I need is the inclusion of a place for abbreviating Series Titles. In my field we need it. (For some reason, we're addicted to named series, and we cite them by abbreviation, except when crossing discipline boundaries, then they get spelled out in full.) Again, I pick this only because I know about it and can describe its lifespan on the forums, which went like this:
1. Sept 2007: Initial Request. (Bruce responds from the CSL side, but no word about the Zotero UI and database).
http://forums.zotero.org/discussion/1305/
2. Jan 2008: Second Request. New Thread.
http://forums.zotero.org/discussion/2047/
3. Jan 2008: Request by another user.
http://forums.zotero.org/discussion/2045/
4. April 2008: SBL style announced, and with it the line that "abbreviations for series titles...should be possible in 1.5" This is the first official word about series abbreviations, and comes from erazlogo.
http://forums.zotero.org/discussion/2655/society-of-biblical-literature-note-style
5. Jun 2008: Another user requests (see JB88's request in mid-thread)
http://forums.zotero.org/discussion/3211/
6. Sept: I request again, having not heard anything as the early 1.5s came out.
http://forums.zotero.org/discussion/3999/series-abbreviations/
7. Dec 2008. I bump thread
8. Feb 2009: Ticket created by erazlogo (same thread)
In the various threads, I had made what I thought was a pretty comprehensive justification for the feature. Again, it is more about the process rather than this particular non-sexy feature, but it was pretty frustrating not hear anything from the Zotero side for a year, and nothing concrete for 18 months. As it was I had to revisit the process repeatedly until finally a ticket was added. I don't think that I "deserve better" or that someone else is responsible for implimenting the features I want, but still.
Could this have been helped by some way to 'promote' (or demote) such a request? The main thing I would have wanted is, once it was established as a Reasonably Good Idea, it were out of my hands. Somewhat playfully, something like the following:
-------------------------------------------------------------
This is an autoresponse from the Zotero dev team. Your request sounds good to us. In fact it's now on This-Linked-List of stuff we know about and plan to get to. No breath holding, OK? But there it is. Discuss further here if you have anything to add. Bookmark this forum thread if you like. We'll post here when it's done.
------------------------------------------------------------
Note that the "Known Bugs" page already does something like this for bugs. Perhaps a minimal solution is just a "Requested Features" page, divided (or tagged) into "definitely planned" and "still in discussion" (and possibly others: "rejected", "an idea for an external utility" "we'd include it if someone else did the work.") This would be much more useful if it had links to relevant forum discussion, and (sez me) it would be most useful if it were made easy on developers. I.e. they could manipulate items between the categories, move things to Trac, link to and from the forums, etc.
Another example of a smaller feature request: Add series number to BibTeX export. I requested this a few weeks ago. Noksagt helpfully replied that it was a good idea. But I didn't really know where it would go from there. I asked her about it as far as it had to do with her, and she gave me a good answer, but that was still a user-to-user answer, which she made clear. It's a tiny thing, but because of that, it's pretty easy for it to slip through the cracks. Could it possibly be on the mental map of anyone besides noksagt and myself?
Link: http://forums.zotero.org/discussion/1302/export-bibtex-webpage-specific-fieldsinformation-missing/
Another example, just to round it out. Someone mentioned that it would be handy to have Zotero automatically run a postprocessor on BibTeX export (there's enough of a mismatch between the kinds and format of the data that Zotero holds and exports and what a native BibTeX database wants that systematic postprocessing is often required.) He uses bibtool for the job. The change is not non-controversial (perhaps), and I wouldn't feel at liberty to just add it to Trac (right?) but I think it's a Fine Idea. (He may have requested it elsewhere on the forums, I didn't check.)
Link: http://forums.zotero.org/discussion/6674/zotero-extra-bibtex-note-how-not-to-show/#Item_2
Can we do anything so that these kinds of things get addressed in a way that makes good use of the energy that users invest in discussing them, and is also helpful for the development process itself?
"next release > soon > thinking about it > not thinking about it > hate it/won't work/take a hike"
I think this would also cut down on clutter in the forums with regard to redundant feature requests, or requests for features that are already in development.