This is the presentation material for the
Wiki Based Collaboration and Web Development for the Enterprise
conference talk in the Emerging Technologies Track at LinuxWorld in Boston, 17 Feb 2005
Slide 1: Wiki Based Collaboration and Web Development for the Enterprise
Writable webs empower employees to share knowledge effectively and to be more productive
- Wiki, a writable web: Communities can organize and share content in an organic and free manner
- If extended with the right set of functionality, a Wiki can be applied to corporate groups to schedule, manage, document, and support their daily activities
- TWiki is both a leading open-source Wiki for the enterprise and a platform to build web applications
- This talk explains what TWiki is, its history, how it is used, and how to get started
Conference talk in the Emerging Technologies Track at LinuxWorld in Boston, 17 Feb 2005
--
Peter@ThoenyPLEASENOSPAM.com
Slide 2: Agenda
- What is a Wiki?
- Wiki in the Enterprise
- What is TWiki?
- TWiki Highlights
- Initial Deployment
- Example
- Advanced Features
- Web Applications
- Case Study
Slide 3: What is a Wiki?
- WikiWikiWeb = Writable Web
- As quick to contribute as e-mail
- As easy to use as a website
- Ward Cunningham
implemented the original WikiWikiWeb
in 1995 to collaborate on software patterns
- Inspired by HyperCard; some call it a Blog for groups
- Wiki design principles:
- Open - Should a page be found to be incomplete or poorly organized, any reader can edit it as they see fit
- Incremental - Pages can cite other pages, including pages that have not been written yet
- Organic - The structure and text content of the site is open to editing and evolution
- more...
Slide 4: What is a Wiki? (cont.)
- The original WikiWikiWeb
has these features:
- Read-write web, every page can be edited using just a browser
- HTML form based editing
- Pages are served dynamically
- Pages are linked automagically with WikiWords
- Simple markup, no need to learn HTML
- Try the WikiWikiSandbox
- Over 200 Wiki engines
based on the original Wiki idea, mostly open source
- Wiki has geek appeal
- Mainly used by Internet communities and academia
Slide 5: Blogs and Wikis
- Blog: (Weblog)
- Key: Easy to publish opinions of individual, in sequential posts
- Media to express individual voice
- "Post media" (like e-mail), many times with feedback and talkback
- Usually hosted service
(e.g. Six Apart's TypePad
)
- Wiki: (WikiWikiWeb)
- Key: Easy to create and refactor content owned by group
- Media to express group voice, deemphasizing identity of individuals
- "Refactor media", content may change at any time
- Usually open source software, installed on own server
- Some Blogs have Wiki-like features, some Wikis have Blog capabilities
Slide 6: Wiki Systems
- Open Source Wiki engines
: Download and install
- Hosted Wiki services: Wiki farms
- Socialtext Workspace
: Open source Wiki (Kwiki) with Blog extensions; for corporate use ($$$)
- EditMe
: Simple Wiki and Blog ($4.95/month)
- Teamflux
: Simple Wiki ($20/quarter/person)
- Wiki appliance: Wiki in a preconfigured box
Slide 7: Wikipedia
- Wikipedia
: Wiki + Encyclopedia
- A free encyclopedia that is being written collaboratively by its readers
- Project started in January 2001
- The most active public Wiki: There are over 420,000 articles in English; more in 150 other languages; 150,000 registered users
- Anyone in the world can edit any
page.
- Doesn't that lead to chaos?
- Domain experts contribute
- Well defined policies for contributing and handling content
- Graffiti gets removed quickly (many eye balls, rollback available)
- Content can be freely distributed and reproduced under the terms of the GNU Free Documentation License
(GFDL)
Slide 8: Wiki in the Enterprise
- Issues with conventional Wikis in the corporate world:
- Perceived as chaotic
- No security
- No audit trail
- A Wiki system with the right extensions can be used in a corporate environment
- It can address some internal challenges:
- Maintenance of static Intranets
- Internal E-mail flood
- Implementation of business processes
Slide 9: Challenges of Static Intranets
- Some content is outdated
- Incomplete content
- When was the page last updated?
- Difficult to find content
- Inconsistency across departments
- Special tools, knowledge and permission required to maintain
- Content is static, it has a "webmaster syndrome":
If an employee discovers a page with incorrect or insufficient information, the employee will often ignore it because it takes too much time to find out who the webmaster is and to write an e-mail requesting an update
Slide 10: Challenges of E-mail
- E-mail and mailing lists are great, but:
- Post and reply vs. post and refine/refactor
- Great for discussion, but ... hard to find "final consensus" on a thread
- E-mail is not hyper-linked and is not structured, content can't be grouped easily into related topics
- E-mail and attachments are not version controlled and it is difficult to determine the history of a document
- Not all interested people / too many people in the loop
Slide 11: Challenges of Business Processes
- Business processes are implemented in large scale by IT department (Sarbanes-Oxley compliance etc.)
- Rigid structure by design
- Teams follow formal/informal workflow to accomplish tasks, which is often a paper-based process:
- Roll out laptops to employees
- Status board of call-center
- Sign-off for export compliance of a software release
- No resources allocated to implement applications to automate those processes
- IT department has no bandwidth to implement light weight applications for a variety of teams
Slide 12: Wikis and Static Intranets
- Move some/all Intranet content into a Wiki
- No difference for readers to browse and search content
- Employees are empowered to fix content on the spot
- Ease of maintenance
- No need to install client side software
- Paradigm shift
- from: webmasters maintain content
- to: domain experts and casual users maintain content
Slide 13: Wikis and E-mail
- Move some E-mail traffic into a Wiki or Blog
- Ease of reference (cross-linking)
- Flexible notification (favorites only, daily digest, RSS feed)
- Pockets of knowledge made available to interested parties
- Audit trail / domain experts
- Paradigm shift
- from: post & reply
- to: post & refine & cross-link
- Send e-mail with link to content instead of content itself
Slide 14: Wikis and Business Processes
- A Wiki is a flexible tool to support evolving processes
- in the free-form Wiki way -- linked pages, collaboratively maintained
- or with a structured Wiki application -- forms, queries, reports
- Content contributors with moderate skill sets can build web applications
- Paradigm shift
- from: programmers create applications
- to: content contributors build applications
- Similar shift happened with the introduction of spreadsheet programs
Slide 15: Requirements for a Corporate Wiki
- What to look for:
- Version control -- audit trail
- Access control -- security
- File attachments -- document management
- Ease of use -- productivity
- Feature set -- create web applications
- API -- integration with existing enterprise applications
- Support -- get help when needed
Slide 16: Open Source Wikis for the Enterprise
- PHPWiki
: A feature-rich implementation with support for various databases (PHP)
- Tiki
: A CMS with Wiki, Slashdot-style forums, blogs, image galleries, chat, etc. (PHP)
- TWiki
: Heavily featured Wiki variant and application platform for the enterprise, many Plugins (Perl)
- XWiki
: Feature rich Wiki implementation, compatible with some TWiki Plugins (Java)
- ZWiki
: A Wiki implementation that runs on the Zope application platform (Python)
- We will use TWiki to see how a Wiki can be applied in an enterprise
Slide 17: What is TWiki?
- TWiki started as a Wiki engine, but has outgrown its roots and is now a platform for web applications
- Mission:
TWiki is a leading-edge, web-based collaboration platform targeting the corporate intranet world. TWiki
- fosters information flow within an organization
- lets distributed teams work together seamlessly and productively
- eliminates the webmaster syndrome of outdated intranet content
- Open Source software (GPL), hosted at http://TWiki.org/
Slide 18: What is TWiki? (cont.)
- A Wiki in the original sense, but also:
- A shared notebook for projects: Repository, scheduling, meetings
- A departmental collaboration tool: Processes, project reviews, QA tracking
- An Intranet publishing tool: IT, HR, ISO standards
- A CMS with focus on free-form collaboration: Requirements capture
- A knowledge base: Problem/solution pairs with attached patches
- A platform to create web based applications like news portals, inventory systems, issues tracking systems
Slide 19: Who is using TWiki?
- Many corporations, like 3Com, AMD, Alcatel, AT&T, Boeing, ... Xerox
- BT, Disney Corp, Motorola, SAP, Wind River and others have submitted success stories
- Academia, like Brandeis University
- Also Internet communities, like Chandler Wiki
, Java.net's Javapedia
, IPCop Firewall
, Mandrakelinux Development Community
, IntelliJ Community Wiki
, Indymedia
, blueDonkey.org
- Over 1000 installations
- Browse the TWikiInstallation
directory to see who is using TWiki for what purpose
Slide 20: Who is developing TWiki?
- Six active Core team members
: PeterThoeny
(CA), RichardDonkin
(England), ArthurClemens
(Netherlands), ColasNahaboo
(France), SvenDowideit
(Australia) and SamHasler
(England)
- Six additional developers with SVN write access to DEVELOP branch
- Over 100 developers
contributing spec, code, patches
- Main communication vehicle: TWiki at TWiki.org for brainstorming, feature and bug tracking, doc authoring, and support
- Lots of ideas ready to be implemented
- Talk to us if you are interested in participating in building the future
Slide 21: Highlights: Web Environment
Slide 22: Highlights: Interactive Environment
- Add and refactor content - "Share Knowledge"
- Notification
of changes:
- Get notified of page changes by e-mail or RSS feed
- A way to keep everybody in synch
- Also a way to check content by senior engineers
- Peer review for up to date content:
- Fix a posting that is inaccurate or insufficient
Slide 23: Highlights: WikiWords for Linking
- Easy to create hyperlinks within TWiki pages, just use a WikiWord
- WikiWords are capitalized words, run together, e.g., WebCollaboration, IntranetTools
- To create a link to an existing page, edit a page and type:
-
For more info, see IntranetTools
- If the 'IntranetTools' page exists, it is turned automatically into a link:
Slide 24: Highlights: Creating New Pages
- First, edit the page where you want to spin off a new page, and type in some text including a WikiWord for the new page:
-
For more info, see WebServices
- After you save the page you will get:
- For more info, see WebServices?.
- The '?' is a link (to a page that doesn't exist, yet)
- Now, to create the WebServices page, click on this link, type in some text and save it
- If you return to originating page and hit Refresh, the link now covers the whole WikiWord:
Slide 25: Highlights: Context of Content - Database Table
Flat, no hierarchy:

Context: Mainly next/previous; search
Slide 26: Highlights: Context of Content - File System
Tree hierarchy:

Context: Down/up; search
Slide 27: Highlights: Context of Content - HTML Pages & Wikis
Hyperlink structure:

Context: "What is related" browsing; search
Slide 28: Highlights: Context of Content - TWiki Structure
Tree + hyperlink structure:

Context: Down/up browsing; "what is related" browsing; search
Slide 29: Highlights: Context of Content - TWiki Breadcrumb
Where am I?

Breadcrumb example: Home
> Plugins
> PluginPackage
> PluginDevelopment
Slide 30: Highlights: TWiki Shorthand for Content
- TWiki Shorthand
- Simple formatting
- Easy to learn
- Content is more important than nice formatting
- What about HTML?
- TWiki renders HTML
- Better practice to use TWiki shorthand, easier to maintain by other users
- Limitation: HTML form based editing, not WYSIWYG
Slide 31: Highlights: Version Control
- Pages are under revision control:
- See previous page revisions
- Click on the r1.4 type links at bottom of page
- See differences between revisions
- Click on the Diffs link at bottom of page
- See who changed what and when
- 'Soft Security' - anyone can change anything, but changes are logged
- Complete audit trail, even for meta data like access control
Slide 32: Highlights: Access Control
- Default - use Soft Security
- Avoid roadblocks to knowledge sharing
- Special applications - use Access Control
- Avoid write access restrictions - "If you can see you can play"
- Access Control:
- Define groups in Main.TWikiGroups
- Set read/write/rename access restrictions to webs and pages based on these groups
- Complete audit trail of access control settings
Slide 33: Initial Deployment
- Install TWiki on web server
- Plan rollout and content
- Build initial structure
- Populate initial content with help from early adopters
- Initial rollout with smaller group
- Train and coach users
- Do not underestimate inertia and time
Slide 34: Resources for Learning TWiki
- It takes 20 minutes to learn TWiki essentials and start sharing knowledge!
Slide 35: Example: Call-Center Status Board, v1
- Requirement for status board:
- Easily see who is on call at what time
- Easily change the status board
- Start simple with status board v1:
- 07:00am - 11:00am: Richard
- 11:00am - 03:00pm: Peter
- 03:00pm - 07:00pm: Sam
Slide 36: Example: Call-Center Status Board, v2
- Status board v1 does the job, but lets make it more presentable and useful:
- Convert the bullets into a table
- Use WikiWord links to team member's home pages for easy reference
- Add Backup person
- Improved status board v2:
Slide 37: Advanced: TWiki Skins
- TWikiSkins change the look of a TWiki topic, for example the style of the text and the layout of the header and footer
- Separation of program logic, look and content
- Corporations typically create their own skin to match the corporate branding standard
- Many SkinPackages
available for download at TWiki.org
Slide 38: Advanced: TWiki Skin Samples
Slide 39: Advanced: TWiki Variables
- TWiki Variables are what environment variables are to an OS, or macros are to a programming language
- TWiki Variables are text strings - like
%SCRIPTURL%, %URLPARAM{"city"}%, %INCLUDE{"OtherPage"}% - that get rendered at page view time
- Types of variables: Predefined variables; preferences variables; user defined variables
- Useful to create web applications
Slide 40: Advanced: TWiki Forms
- Use TWikiForms to add form-based input to free-form content, e.g., you can structure topics with unlimited, easily searchable categories
- A form is defined in a topic - (DB table definition)
- Forms can be attached to topics - (DB table row)
- The form appears in edit mode, and its content gets rendered as a table when viewing the page
Slide 41: Advanced: Formatted Search
- Use FormattedSearch to generate customized reports in list format or table format
- Typically used to list topics with form data
- Report is embedded in a page with a
%SEARCH{...}% variable
- Example applications:
- Example report:
Slide 42: Advanced: TWiki Plugins
- TWikiPlugins enhance the functionality of TWiki
- Growing Plugins repository
at TWiki.org - over 140 Plugins available for download
- A great resource for administrators and web developers to tailor TWiki to their needs, like for example with:
Slide 43: Advanced: TWiki Plugins - Spreadsheet
- SpreadSheetPlugin
: Add spreadsheet formulae to TWiki tables
- Over 60 formulae available like
$AVERAGE(), $IF(), $REPLACE(), $TIME(), $SET(), $GET()
- You type:
| *Region:* | *Sales:* | | East | 320 | | Central | 580 | | West | 240 | | Total: | %CALC{"$SUM($ABOVE())"}% |
|
|
Slide 44: Advanced: TWiki Plugins - XP Tracker
- The XpTrackerPlugin
allows teams to track Extreme Programming (XP) projects
- Create a page for each Project, Team, Iteration, Story
- Content in some pages is generated automatically
- Task details are tracked in a Story page
- Example:
%XPSHOWITERATIONTERSE% shows the summary of iterations in a project: | Story | FEA | Estimate | Spent | ToDo | Progress | Done | Overrun | Completion |
|---|
DemoStory Summary of story | | 3 | 1.5 | 2.5 | | 37% | +33% | In progress |
SecondDemoStory Finish remaining tasks | | 4 | 3 | 1 | | 75% | +0% | In progress |
| Team totals | | 7 | 4.5 | 3.5 | | 56% | +14% | |
Slide 45: Advanced: Plugin API and Plugin Internals
- A TWikiPlugin is composed of a Perl module that gets installed on the server and a topic with help and Plugin configuration
- A Plugin implements callbacks that extend the functionality of TWiki: Init, render, save, session
- An API
for TWikiPlugins provides the specifications for hooking into the core TWiki code from your external Perl Plugin module: CGI environment, preferences, access control, content handling, I/O
- Diagram of TWiki core and Plugins:
Slide 46: Web Applications
- The basic feature set of TWiki can be used to implement web applications
- We look at three examples:
- Call-Center Status Board, v3
- TWiki Installation Directory
- Feature Tracking
- Use/create Plugins for more advanced applications
Slide 47: Web App: Call-Center Status Board, v3
- Status board v2 is presentable, now lets make it more user friendly:
- Improved status board v3, view and edit:
Slide 48: Web App: TWiki Installation Directory
Slide 49: Web Application: Feature Tracking
- New features of TWiki are tracked in TWiki.
- New entries are classified as:
- These features can be promoted to:
Slide 50: Case Study Wind River: Initial deployment
- Wind River offers real-time operating systems, development tools and middleware with services. This enables companies to develop and run software for devices which are used in aerospace and defense, automotive, digital consumer, industrial, and network infrastructure markets
- Wind River started a large software project in spring 2000, involving around 100 engineers located in 7 offices on two continents
- Evaluated two web based products to keep track of teams, schedules, milestones, meeting minutes, code reviews, and to store all project related documents:
- eRoom: Was in use by merged company ISI
- TWiki: Was in use by acquired company TakeFive
- Decided for TWiki because it was more flexible and configurable than eRoom, even though eRoom had a more polished UI and more out-of-box applications
Slide 51: Case Study Wind River: Build and Coach
- Initial time was spent to compile the requirements with key stakeholders, and to build the content structure
- Gave virtual trainings for each office on collaboration, with focus more on "pros and cons of e-mail, webmaster maintained Intranets, and TWiki based collaboration", and "why it pays off using online collaboration"
- Coached employees by monitoring content and sending "collaboration hints"
Slide 52: Case Study Wind River: Growing Up
- Other groups within the company started using TWiki after seeing how projects can be managed in TWiki
- Big push after a cross-functional council started using TWiki to document its initiatives, metrics and processes
- Several skins have been created in the familiar Wind River Intranet look
- The Intranet home is now a TWiki driven news portal
- Large deployment:
- 1600 registered users (1000 current)
- 120 webs, 50K pages
- 220K actions / month (11 / employee workday)
- 20K updates / month (1 / employee workday)
Slide 53: Summary
- TWiki is a powerful platform for web collaboration
- Free form content and content with structure where needed
- Easy to share knowledge online
- Careful coaching is needed
- Viral growth after people "get it"
- TWiki is a platform to build web-based applications efficiently
Slide 54: Questions & Answers
Slide 55: References
Slide 56: References, cont.
Slide 57: About Peter
- Peter Thoeny - Peter@ThoenyPLEASENOSPAM.com
- Software developer with over 15 years experience, with interests in corporate collaboration, web technology and UI design
- Author of the open source collaboration software TWiki, managed the project over the last six years
- Graduate of the Swiss Federal Institute of Technology
in Zurich
- Lived in Japan for 8 years working as an engineering manager for Denso Create
, developing case tools
- Now in the Silicon Valley for 7 years, managing the Engineering Operations group at Wind River
Notes
--
PeterThoeny - 07 Jan 2005