I was having some frustration just now while trying to configure our Trac system. Deletion of tickets and ticket comments is not a standard feature in Trac, and must be added using the WebAdmin and TicketDelete plugins. These have worked perfectly for us in the past, but broke when we upgraded to Trac 0.10. I’ve been trying to install their new versions, with no luck. I find it very frustrating that this functionality is not part of the standard Trac system. Of course, it being open-source, that means I should write/fix the problem myself.
But it made me realize something. I think the frustration I was having fits a common model in open-source projects: users get frustrated when what they consider to be basic CRUD features are not provided with software. And it’s true, these features do tend to get left out of otherwise feature-rich open-source projects. I think there are a few reasons for this phenomenon.
First, developers tend to prioritize features in terms of frequency of use. Even if implementing a given feature is easy, if it isn’t going to get used by the vast majority of users (according to the developer’s anecdotal subjective assessment), it gets a low priority.
Another reason, and I think this is the more predominant factor, is that developers have to draw the line between theory/Best-Practices, and practicality. For example, in the case of Trac, I’ve seen it mentioned on IRC and the email list that in theory, a ticket should never need to be deleted. It should just get marked as invalid, redundant, etc. However, this does not take spam into consideration. Here, a developer might have the tendency to think “well, this means that we need an excellent anti-spam solution. We will have it in the next version. No need for ticket deletion.”. Meanwhile, thousands of users, who are perfectly willing to go through the manual labor involved in clearing out spam, have limited tools to use.
And these are hard decisions to make, believe me. Looking at ANY single simple-feature example will make it seem like a no-brainer, but it’s perhaps easy to forget that there are dozens, if not hundreds, of such simple features that can be implemented for a given project. So we must conclude: the developer’s masterful instincts should always be trusted :).
But today I decided that there is an exception to that conclusion: basic CRUD.
For example, in Lyceum, there is no way to completely delete a user or a blog. You can “deactivate” both of these things, and I always figured that for the time being this was enough for basic removal of spam sites and such.
But I can imagine users being very frustrated that they can’t delete users they made when testing their system, or users that were created with typos. Also, the process of reclaiming a blog slug is tedious. The system-admin needs to go to that blog’s admin interface, rename the slug with ‘_deactivated’ or some such namespace-safe string, and then go to the system-settings and deactivate that new slug.
The lack of such features might contribute significantly to making a user’s initial experience with Lyceum negative. Putting together a simple tool for permanently deleting a user or blog would be quite easy.
What these examples exemplify is that basic CRUD features are the building blocks of an unanticipatable array of administrative tasks, and so the best way to realize tomorrow’s features today is to provide a smattering (dare I say “complete”) offering of CRUD features. This is directly in line with traditional unix philosophy.
I give you JJB’s 1st Law of Feature Prioritization:
CRUD features should be prioritized over more abstract, heuristically driven features. Furthermore, developers are in the worst position to know which basic CRUD features are needed. These decisions should be driven by users, and the developers should humbly follow.
Pretty fancy huh? Anyway, the main point of this entire post is to solicit input from you on Lyceum. So I ask you, dear current or potential Lyceum user: what basic CRUD tools would you like to see added to Lyceum?
- user deletion
- blog deletion
- what else?
Leave your suggestions in the comments below.
13 Comments so far
Leave a comment
Great thoughts John!
Does default design qualify as crud?
http://source.ibiblio.org/trac/lyceum/ticket/464
Lyceum is already solid and will continue rockin our small world :-)
By Shahrooz on 11.12.06 8:39 pm | Permalink
Thanks Sharooz. No, it doesn’t :-D. But that feature is already slated for 0.34 and will hopefully stay there.
By John on 11.12.06 8:47 pm | Permalink
I wish you work more on the db and enhance the MySQL queries for MySQL 5.0.x and 5.1.x
beside
# user deletion - with option if I need to keep his posts or not.
# blog deletion
# rich editor optiopn for comments as well.
I liked lyceum and will install it to offer Blog services for my network users.
Thank you,
Abdullah
Arab Portal Network
http://www.WeArab.Net/
By Arab on 11.13.06 4:10 am | Permalink
I have two suggestions:
1) After login of a user he/she should not get to the profile but to some kind of menu, where one can choose the blog to edit or the profile. I had feedback from users who did not see the links at the top of the page to access the blogs.
2) Some enhancements to the start page (portal.php). “login” and “logout” should never be displayed both. This is of course easy to change and we did that on our installation. Also “my blogs” should only be displayed when logged in.
By Daniel on 11.13.06 12:25 pm | Permalink
Well, that was not really CRUD… ;-)
Anyway, thanks for your work!
By Daniel on 11.13.06 12:31 pm | Permalink
I would like the sysadmin to be able to manually change any user’s password and email address. I’ve recently gone through a very frustrating time trying to get a new user up and running with a blog, because the automated emails from Lyceum were being thrown out by her spam filter. We eventually got that figured out, but meanwhile, a lot of time was wasted because I had no way to set her password and tell her what it was.
By David Woolley on 11.13.06 3:23 pm | Permalink
I second David request.
By Arab on 11.16.06 3:26 am | Permalink
John,
After testing to post stuff, I found the the visual rich editor missing many good things like font color, size, and there is no smilies to pick from.
As for the customizing the blog, I found good option in http://beta.blogger.com to customize Fonts and for Main Background Color, Colors for the user blog, like blog title color, date header color, ..etc.
Could we have these stuff added?
By Arab on 11.16.06 4:42 am | Permalink
Hi,
1. The theme edition, maybe with User Themes would be a plus plus.
2. Maybe a selection of plugins that really work.
3. base theme and stuff that could make new websites no looking so ugly. http://blog.asu.edu/ (w/o the wiki) is a good example.
Think it would be all for now :)
By Lopo on 11.20.06 3:20 pm | Permalink
I think more user management tools would be most helpful… such as being able to delete users and blogs completely, being able to change user passwords and email addresses, as well as being able to perform basic tasks on individual blogs (such as deleting posts).
I am about to migrate a site with 3000 bloggers over to Lyceum and am certainly going to need these tools! As such, I will probably write a rough and ready script to enable me to do it, but it would be good to have the functionality built in to the system.
By Mark on 11.28.06 10:11 am | Permalink
email users function (please)
http://source.ibiblio.org/trac/lyceum/ticket/659
some way to automate making a site news blog appear in the dashboard. this could be as simple as a select box to assign a feed to the news function (i hope this is making sense). some people are code dummies
By Adam on 01.14.07 8:54 pm | Permalink
Its actually really nice to visually see a community of lyceum users. I thought I was on my own.
I would like many of the features mentioned above. I wasn’t quite sure if one of the blog posts above was speaking of a forum integrated for the Lyceum blog system to offer to the users, or for the users to have somewhere to come and discuss Lyceum. I hope it was the latter. It would make for a world of difference.
M
By milly on 01.15.07 5:56 pm | Permalink
Thanks everyone for all the input!
Some folks may be interested in the tickets and changesets in this milestone:
http://source.ibiblio.org/trac/lyceum/milestone/0.35
By John on 01.24.07 1:24 am | Permalink
HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>