
Until reading Raskin's "The Human Interface" I always thought that it was just practical to have an "edit"-Link on every page. Now I know the reason and the name for it: Noun-Verb Construction
Programmers should recognize the principle of object orientation in the noun-verb construction: You have an object to which you apply a method:
$car<-accelerate('55')
This is far easier to read than the previous functional design which was a verb-noun construction:
accelerate($car, '55')
The same can be applied to user interfaces. Back in the days we often had a clear distinction between front-end and back-end. In order to edit a news article you had to enter the administration of the news module and go through the list of articles and choose edit there.
Now you at least have an edit- and a new-link in the article itself. But the fact that after editing the article you again end up in the list of articles in the back-end is a remnant of the old times which should be changed ASAP.
A current example is Formicula - a great and flexible module that handles all kinds of forms on your site: From simple contact forms to more complex ones with uploads and so on. Yet you can only change the contacts in the back-end. In my installations I simply added an edit-button next-to the contact drop-down that leads to the back-end - as a quick fix.
CRUD
Today's web frameworks work according to the CRUD principle: Create, Update, Delete. These are the function you can apply to all objects. Thus there should be "New XY", "Edit This" and "Delete This" links with every piece of content. Delete should not be a modification of "Edit" - in some modules you have to edit an article and check "delete" in the form. This is a hidden function and the topic of one of my next posts.
If you have a module that doesn't have these links with every piece of content: Please add them.
I've also added direct edit links to for instance pagesetter and also never understood why they weren't there with the News articles. In these days a very simple statement in the templates would suffice already to check permissions and add New/Edit/Delete
Maybe even a central plugin could render these links, to make it even easier for devs to call it in their templates.
Erik