As team lead on a Zope consulting project, i needed a tool for managing an online, dynamically growing collection of design artifacts. (We were co-designing and developing a Zope system with the customer's developers.) ZWiki, the prevalent Zope-based Wiki, was a good candidate, but our projects struggled with losing sight of the forest for the trees, in the sphagetti-like organization that is characteristic of wikis. They inevitably were increasingly unnavigable as the body of development collaboration docs grew. I saw a way to introduce some hierarchical organization without adding any additional authoring effort, at least in the typical case. This organization feature, "parenting", is an adjustable page hierarchy which derives automatically according to the origins of one page from another.
This feature turned out to work extremely well, making wikis much more conducive for structured efforts, and were subsequently used in many Zope corp customer and community collaborative development projects. It has become a standard part of zwiki, and is used wherever zwiki is used.
("parenting" is one of the Crafty Hacks of which i'm proud, and one which i am starting to see other wikis adopt - i think i was the first to come up with and implement the idea, and would like to see it catch on...)
Jim, Zope Corp's chief technical officer and outstanding guru, recognized the value and commissioned me to cultivate from this basis whatever else might be necessary to use these Wikis for Zope's extensive community and customer collaborations. I instigated the WikiForNow effort, implementing some key features, including:
- parenting, as mentioned above
- page commenting, an easy, lower-impact alternative to editing a page
- edit contention prevention, the "saftey belt" which helps multiple concurrent editors avoid stomping one another's edits
- through-the-web page rename and delete
- through-the-web page format setting, surfacing the choice of the various formats to the page editor
- adding of images and files from a wiki page
- page history review and management, surfacing Zope's object history to the page editor
- page access regulation, giving control over basic editing, the above features, and access regulation itself, to the page originator
- and more
- i also developed many crucial refinements and fixes of existing functionality.
See the WikiForNowDevelopments page for an account of the developments, as well as the development process.
This is another case where having an active user base - in this case, the Zope community - was key (sometimes, urgently and maddeningly so:) to effective, incisive development.
Starting around Jan 2001, the WikiForNow wikis were used, through Jan 2006 and beyond, as central tools in both the Zope community's fishbowl process and Zope Corporation's customer development collaboration faculties. My additions, including the parenting facilities, were adopted in the mainline ZWiki.