Program For The Future

Over the next few days, I will be blogging about Program For the Future Conference. Since the essence of the event is Collective Intelligence, I would love to have many of you follow it and share your ideas. I will be participating from Chennai, India. You can participate from anywhere through Twitter, FriendFeed, Slideshare, Blogs and Comments to blogs.

Twitter hashtag #pftf
Tag in other social media pftf

You can also use the same tag for other media – Flickr, del.icio.us, YouTube, FriendFeed etc. This is the page for Virtual Participants.

Note:

We originally had the tag pff, but had to change it since there were many other items already existing with this tag.

Wiki Trends

 This is an article I wrote for I.T. Magazine. It appears in their Nov 07 issue. They were kind enough to let me put this on my blog.

Wiki Trends

You have probably heard about wikis; some of you have probably used Wikipedia or other wikis. In this article, we assume that you know a bit about wikis. We do not cover the basics, or how to create your own. Instead, we will look at some usage patterns, innovations and emerging trends. We will start with a brief history of wikis; look at the way they are used by individuals, organizations and social communities. We will finally look at some of the innovations in both the technology behind wikis, and their applications. We hope that you can use some of these ideas to explore wikis for your own use, whether it is personal, professional, or for your community.

A brief history

The term wiki is a short form for WikiWiki, a Hawaiian term for quick. The original goal of the wiki was to quickly create a set of web pages without writing HTML(Hypertext Markup Language). All you needed was a simple text editor, a few conventions for <formatting. You could just type the text like you do in a notepad. This will give you a minimal web page instantly on saving. That was almost twenty years ago. Wikis have come a long way since then. The first wiki was created as a web-based collaboration tool by Ward Cunningham. He made the sources available free. This encouraged a lot of people to innovate and create various implementations in their favorite languages.

Wiki has some very simple basic concepts:

  • A Page is the basic unit of wiki content. You can just type text to create a page. You can easily create bulleted lists, numbered lists, decorations (bold, italics), and tables, by using simple markup.
  • WikiWords are automatic links. You can either type camel-case words (a set of capitalized words squished together without spaces, for e.g., CollaborationTool) or enclose them in special braces ([ and ] in some wikis, or [[ and ]] in others). The wiki engine expands wiki words, for example CollabTool into “Collaboration Tool” and looks for a match. If the page exists, it automatically links to it. If not, it marks the wiki word with a “?” next to it when the page is saved. This ? is a hyperlink to create a new page.
  • Links and back-links are one of the most powerful features of a wiki. The wiki engine knows about links in a page. It not only keeps track of forward links, but also back links (the page that links to the current page). You can use this feature to find out all pages that link to a particular page.
  • Recently Changed Pages is a list of pages that have been recently changed. When you are using wikis for collaboratively editing content, you can go to this list and find out when each page was changed, and by whom.
  • A keyword-based search facility allows you to quickly locate information on a wiki. This encourages rapid use as well as authoring. I can go to a wiki, and try to find a topic using the search capability. If it does not exist, I can create it and link it to related pages very easily. The ability for anyone to easily contribute and add their bit of knowledge makes the wiki an easy-to-use collaboration tool.
  • Automatic Versioning is another feature that allows people to experiment. Whenever a page is edited, it is automatically saved. This encourages people to add comments, make corrections and add content to a page without worrying. It is easy to go back and edit the page or roll back to the original content. This is probably one of the most heavily-used features in Wikipedia.
  • Change Tracking is another capability available in some wikis. If you like a topic, you can subscribe to the page with the topic or a set of related pages. Whenever these pages change, you will automatically receive an email notification.

What makes Wiki a great tool for collaboration?

First of all, most of the wikis are free. This allows people to experiment with them and explore various applications. It is easy to set up and manage. Here are some more reasons why people like to use wikis:

  • Easy to set up and operate
  • Easy creation or editing of pages
  • Easy to upload documents and images and format content.
  • Easy to link pages
  • Easy to interconnect with other wikis
  • Easy editing by users. This allows multiple people to collaborate and create documents.
  • Built-in search facility
  • Available on a wide variety of platforms
  • Some wiki engines like Mediawiki are highly scalable (several million pages edited by hundreds of thousands of authors)
  • Since most of the wikis are open source, they are easy to customize.

A Wiki mindmap

The diagram below provides a brief visual overview of a wiki. We focus on two aspects – how Wikis are used (also known as wiki applications) and innovations in wiki space.

wiki-mind-map.jpg

There are broadly three types of applications for which Wikis are used – Personal, Organizational, and Social. We will discuss each one of these in more detail.

Personal Wikis

Personal wikis can be either desktop products or browser plug-ins. The desktop products are like any Windows or Unix applications. They are used by a single person on a desktop. Browser plug-ins allow you to use the wiki as a browser side-bar, or one of the popular deskbars.

I use personal wikis to keep notes, to keep track of web-based resources, as an idea log, and a journal. It beats a notepad any time. People also use it as an authoring tool, a documentation aid, and even for writing books. There are tools that let you take random pages in your wiki, organize them into a cohesive sequence of pages, and output them in popular formats like Microsoft Word, DocBook, PDF or HTML.

Why are personal wikis better than notepads? First, all your notes are in one place. The pages can be easily interlinked (using wiki words or wiki links). But the most useful feature is the ability to search through a large volume of text and quickly locate the pages we need.

Organizational use of Wikis

Increasingly, more organizations are using wikis for sharing information. For example, the HR (human resources) group can use a wiki to keep employee manuals, easily update them incrementally, and make them available on the organizational intranet.
Since many wiki engines (the software that powers a wiki) allow you to have multiple instances of wikis and cross-link information, each department/group/project may have their own wiki. A small group sharing information, documents, and knowledge in their own space can be very productive. As a software team, we use wikis to manage specifications, share design ideas, brainstorm implementation options, and even create product documentation. In many organizations, there are internal knowledge bases available only to the employees and partners, and external knowledge repositories available to customers. The last time I looked, every major open source project had their documentation in Wiki format. Even Microsoft Developer’s Network (MSDN) has a wiki. The same is true for eBay, Cisco and Google Code.

Wikis are human editable. There are tools that let you store discussion threads as pages, send email to create pages, or store blogs in wikis (a blog-wiki combo is sometimes known as bliki).


Social Wikis

The best example of a Social Wiki is Wikipedia. It is a global encyclopedia maintained by hundreds of thousands of people worldwide in multiple languages on a voluntary basis. In fact, Wikipedia’s information about people, places, and events is so rich that now there is a new project called dbpedia that takes the information in Wikipedia and makes it available as a database.
Social/Public wikis have a lot of promise; we have not even scratched the surface. Can you believe that MediaWiki, which powers Wikipedia, is developed and maintained by a team of just seven people?

Wiki innovations

Wikis are over twenty years old (the first one was started in March 1995). While the adoption of wikis took a while, they are rapidly increasing in popularity. So are innovative variants; we will cover a few of them here.

Swicki
A swicki is a collaborative search engine. It uses one of the most powerful features of a wiki – the wisdom of a group, also known as collective intelligence. This is an innovative use of the collaborative aspect of wikis to help search better. You can create your own swicki. From http://www.eurekster.com/swickibuilder/faqs.htm:
Sometimes, looking for specific information has that needle in a haystack feeling. Not only can you get 6,000+ results from a simple query, the most relevant data for you can be buried way down the list. Swickis lets you slice and dice and customise your search engine query so that you can specify the most relevant sources, then get further refinement of the results once like-minded users start engaging with the results. Every click refines the swicki’s search strings, creating a responsive, dynamic result that is both customised and highly relevant.

WikiHow

My favorite social wiki is WikiHow. It is a universal repository of “How Tos”. Do you want to know the chat lingo? There is a page that provides links to the information. Do you want to build a web site? Just go to WikiHow page (http://www.wikihow.com) and type “web site” in the search engine. A page pops up with useful links to information. Are you an expert in making paper airplanes? Go ahead and create a “how to” page. WikiHow uses Wiki’s collaborative authoring to provide you a very innovative application.
WikiDocs and WikiTrails
Some wikis now provide a feature called WikiTrails. WikiTrail is a page that simply contains a list of other pages. WikiTrails allow you to create a virtual book out of a large body of information in a wiki without physically reorganizing it.
A set of authors distributed world wide jointly write Wikibooks by working on different topics and work as both writers and editors. These wikibooks are freely available to be shared with others.

DBPedia
Wikipedia contains a lot of useful information. But it is growing at such a rapid rate, it is difficult to keep up with it. So there are tools being developed to extract structured information. DBpedia is one such tool. It is a community effort to extract structured information from Wikipedia and to make this information available as a set of RDF (Resource Description Framework) triples. Several Semantic Web tools like SPARQL can then be used to perform complex queries on this data.

The DBpedia dataset currently provides information about more than 1.95 million “things”, including at least 80,000 persons, 70,000 places, 35,000 music albums, 12,000 films. Altogether, the DBpedia dataset consists of 103 million pieces of information (RDF triples).


Wiki Widgets

As wikis get more sophisticated, the quality of the wiki content gets more diverse. Swicki already allows multi-media content on its wikis. Other wikis support the concept of widgets – little objects like calendars, video clips, audio into a wiki page.
IBM has taken this one step further in their QEDWiki. They provide a way to drag and drop widgets on a wiki page and create Mashups.

Wikiness
I don’t think this is a real term. I coined it to indicate a certain behavior of an application that has wiki-like features. As wikis become more popular, and people feel comfortable using them, you will see wiki-like features in other products. Wikia and Swicki already do that.
Resources:

  • Wikimatrix : A cool resource for comparing different wikis
  • DbPedia: An indication of where wikis are going in future
  • wikibooks: Collaborative authoring of books using wikis
  • Swicki: Collaborative Search using Wiki
  • AskWiki: When wikis become big, this is what happens


Corporate Social Networks

If you are a member of any type of social network, you probably understand the ease with which you can stay connected with friends and colleagues. In addition, you can discover new groups, communities and applications. This is exactly what is happening to me in Facebook. I see the applications they add, the communities they join and even people they connect to. Within less than 10 minutes a day, I can get a bird’s eye view of what is going on in my network of family, friends and colleagues.

How can we take this effect and translate it to our organization? How can we stay connected with our customers, employees (present and past) our advisors and partners. How about deploying a corporate social network?

In 5 Reasons to Deploy Corporate Social Network, CIO Insight highlights the opportunities and challenges of deploying corporate networks. From improving knowledge management, to increasing business opportunities, this presentation covers several benefits of corporate social networks.

I think there are a couple of other intangibles. First of all social networks are fun. Knowing a bit more about my colleagues is more likely to make my interactions with them better. Second, social networks may make hierarchical organization look flatter. Informal networks will blossom given the opportunity for interaction. Finally, I think social networks are great tools for harnessing collective intelligence.

OpenAJAX Gets Stronger

Since first formed, OpenAJAX seems to have gained a lot of support (70+ members). One of the most visible recent events, is Microsoft and Google joining the OpenAJAX alliance in addition to a host of other members.

The Alliance, an industry collaboration whose purpose is to develop and expand the use of Ajax, said it now has a membership of 72 companies. In addition to Microsoft, 30 other companies have recently joined. You can see the full list of companies at Open AJAX Alliance website.

The Alliance, only ten months old, has grown from 13 member companies to over 70. Besides Microsoft, other Alliance members include Adobe, BEA, IBM, Mozilla, Laszlo Systems, Novell, Openwave, Opera, Oracle, SAP, and Sun.

It was a good idea to begin with. Hope this alliance moves fast and does not get bogged down with the weight of the participants.

Here are some resources:

Open AJAX Member Wiki

Open AJAX Blog

John Resig – Thoughts on OpenAJAX 

I am hoping that now that we have some move towards standardizing the AJAX, we will see the following:

  • A component model for building AJAX components
  • An AJAX based wiki
  • AJAX extensions to popular wikis (like MediaWiki)

Product Based Learning – A Learning Collaboratory

We are working on a collaboratory for Product based Learning. The participants in this collaboratory, actually build software products at every stage of learning. We decided to do this since many of the schools do not teach programming in the context of building something useful. A developer needs to learn more than just coding. By making them build products that others can use, we increase their visibility to real life issues as developers.

Almost every writng on  How People Learn talks about Learning by doing as the most effective learning strategy.

  • Having a specific problem to solve provides a context for learning.
  • Alternative (and more elegant ways) to solve the problems show the power of different styles of programming.
  • Product based learning also involves people. This allows them to remember what they learn since they are actually applying.
  • Having something you built being used by others provides a greater incentive to make it better. It teaches something that they can never learn in simulated situations.

Our collaboratory is not about  content. There is enough content on the web for people to use. What we plan to provide are some ideas for building products, identify skills required to build them, provide mentoring. A learner of the academy will start with a simple individual project and progress to team centric efforts. Here are some ideas on how they can progress from simple projects to more complex ones.

Bookmarklets
These are some of the simplest Javascript utilities you can write. They are reusable. You can get a lot of useful feedback from users.

Browser Extensions
Writing a browser extension provides another reusable component that people can use across several websites. When written for open source products like Firefox, you learn a lot more than writing simple form applications with JavaScript.

Web Components
There are several good web component frameworks. Google’s Gadgets, Microsoft’s Live components, Yahoo’s widgets are just a few. When you write components for any of these platforms, you also learn a lot about developing web applications. You can learn from some of the cool components that already exist.

Mashups
Mashups are the easiest way to glue together something cool. But building mashups also teach developers how to reuse webservice and build on top of services already built by others. The instant gratification of producing workable, usable applications by simply layering on top of services will be one of the most rewarding aspects of learning.

Building some real-world web services (lightweight services)
In this stage, developers move from being consumers of services to providers of service. They will learn how to design services, how to test them and build a few sample mashups that others can learn and use.

There is one common thread across all these products – reusability. At each stage of learning, when the developer will learn how to leverage other components and how to build their own reusable components. This is the skill we need as applications becoming composition of services.

Innovations In Cyberinfrastructure

NSF Chief Urges Colleges to Build Better High-Speed Networking Tools

American colleges and universities should quickly build a better set of shared high-speed networking tools and protocols for research if the United States is to maintain leadership in technology and higher education, said Arden L. Bement Jr., director of the National Science Foundation, in a speech here on Wednesday to college leaders.

In the speech, “Cyberinfrastructure: The Second Revolution,” Mr. Bement highlighted the importance of what has become the major focus of the foundation’s support for technology at colleges in recent years. He predicted that innovations in cyberinfrastructure would have an effect similar to that of the invention of the Internet, which was also sparked in part with the foundation’s support.

This is a very real problem. What kinds of tools would you build? Why not leverage the innovations in learning in various institutions of Higher-Ed in US? Or, make it part of one of the Collective Intelligence Initiative?

One of the ways to bootstrap this model of innovation was proposed by Doug Engelbart. His focus is on Augmenting Human Intellect. While Doug is well known as the inventor of the mouse, he has a lot to teach us about Augmentation, Improvement and Improving the process of Improvement.

Doug Engelbart’s theory of recursive improvement is called the A-B-C model. So let us take the example of Improving Learning.

abc-model.jpg

Let us imagine a community focused on Improving Learning Capabilities in the World. Since this involves several countries, It will be community of communities. One possible application of A-B-C model would be as follows:

A – Would be a community in each university to use internet to enable learning (a lot is already happening in this area).

B – Would be a community to improve A (what are the best techniques of using internet to enable learning). This would be in reality a community of communities (Doug calls this Networked Improvement Community or NIC).

C- Would be a community focused on improving the LearningNIC (a meta NIC). NSF Can fund a meta NIC effort and bootstrap NICs everywhere in the country.

So may be Arden should have a coversation with Doug. And look at some work done by Valerie and others on EdNIC (a NIC for education).

Implementing an Innovation Process

I came across this nice blog on Innovation Process Framework, by Jeffrey Philips (via Innovation Weblog)

.innovationprocesssoftware.gif

The blog is a nice read and tries to outline a framework for Repeatable Innovation. Towards the end Jeffrey appeals to the readers to provide feedback.

If you care to, please comment or provide your feedback. I think if we practitioners, consultants and interested bystanders can create a consistent vision for the future of innovation and the tools and processes necessary for success, we can help our clients and business partners become more successful.

I have been experimenting with a few tools and some ad-hoc processes for innovation (in small product groups). So let me start out with a few tools and see how we can start putting together, elements of this framework.

You can start with any simple content management system (Drupal, Plone, Dotnet Nuke or even a Wikimedia engine).  It is also possible to use commercial portal products like Sharepoint, BEA or IBM portal servers. Let us see how we can go about building a prototype of the tools required to bootstrap your Innovation Process based on the framwork described by Jeffrey.

1. Trend Spotting

You can use several products that exist in the marketplace to track trends. The tools I list here provide you information to detect trends. Here is a list.

  • Google Alerts- A service to receive alerts based on certain keywords
  • InfoMinder - Our product to track specific web pages for changes (you can optionally specify filters) and receive notification. Unlike Google or alerts, InfoMinder is specific to the pages you want to track.
  • Digg, delicious, Techmeme, reddit or any of your favorite social bookmarking service (you can look for specific trends or retrieve information using tags)
  • Technorati or Google Blog Search tools
  • Tag Clouds (many of the services mentioned above provide tag clouds that tell you the more popular trends) or you can create your own tag clouds.
  • Google Trends – A product from Google that allows you to see trends based on searches
  • A set of high level Text Mining and Tech mining tools ( a subject that deserves almost a blog of its own)

A combination of these services and other customer serivces, can be used to perform trend capture. You need to figure out a way to make sense of trends from these different pieces of information (Trend Spotting). Fortunately many of these tools provide RSS streams or APIs. You can easily integrate them with several content management systems.

2. Generate Ideas

You can set up a workflow where people with the role of Generators, look at the captured trend information, combine it with other sources and generate ideas. These can be either stored in any relational database like MySQL, Postgres SQL.

3. Capture additional Information
In the system, Ideas are just a specific type of document with certain metadata like creator, date of creation, source of idea, description etc. It will be nice to add the capability for anyone to tag ideas. Based on tags and other criteria, ideas can be routed to Evaluators.

4. Evaluate Ideas
The evaluators can add comments, additional tags, classify the ideas to be further researched and send them back into the system. With each iteration, the circle widens. Ideas are further validated, combined with others or split into multiple ideas and put back into the system. Since Ideas trigger ideas, this process of combining and splitting will work well.

5. Develop and Launch

Stakeholders are found, prototypes built, ideas developed and launched as products/services.Your content management system can be used as a record keeper in this phase. In every step of the process from ideation to launch, it may be worth engaging small communities of users. Connecting to social tools like Twitter, Facebook, LinkedIn may be a good way to build and grow these communities.

6. Workflow/Process Automation

This is functionality built into several content management systems. Ideas can move from one stage to another (nascent, researched, validated etc.)

7. Idea Archetypes

One of the important aspects of the design of Idea Archetype is the progressive addition of information. Some ideas are listed here:

  • State – specifies the current stage of the idea. As it goes through the system, the state of the idea keeps changing
  • Strength – an indicator of the strength of the idea. As ideas float through the system and gather support, the strength can be progressively increased. Support increases this value and opposition decreases this value.
  • Next Steps – For each idea there can be a sequence of steps which can be started by the creator of the idea and collaboratively edited by others. For example, the legal department may add a patent search as a next step

8. Process Maps

Argument maps, Concept maps and other mapping tools can be loosely integrated (most of them export data in XML, JSON or CSV  format).

9. IdeaLogs

Ideas can also be published in blogs (private if they are meant for a small internal groups). Many portal products or content mangement systems come with their own blog software. You can also integrate some of the popular blogging software like WordPress.

10. Wikis as Collaborative Knowledge Bases

Wikis can be used as a knowledge bases to share, collaboratively edit and archive ideas. Wikis are alternative to idea archetypes,  mentioned earlier. Many of the wikis now provide templates for creating structured pages.

Any portal framework that supports content management, custom content types, workflow, collaboration, authentication can be used to jump start the Innovation Process in an organization. It is easy to bootstrap an innovation process using this framework and existing tools in a few weeks.

The best approach is to start with something as simple as a portal, set up some simple workflows, use a single page with extensible metadata as a basis for collaboration.

Update

Pretty much everything I described here can be done using many other portal frameworks, as well. One of recent favorites is Drupal especially since it has started providing support for RDF ( core language  for the semantic web as well). You can also custom build this framework using web frameworks like Rails(Ruby), Django(Python).

Good Separately… Great Together

Tim B on Semantic Web and Web 2.0:

  • Together…interesting
  • Not alternatives
  • Tags and URIs – two paths to data

Tom Grubber on Where Social Web meets Semantic Web (he prefers the more generic Social Web to Web 2.0):

  • Semantic Web – interaction among systems, Social Web – conversations between people
  • Both are driven by user generated content
  • Both are made scalable by machine readable data
  • Semantic Web is a substrate for Collective Intelligence
  • Both Semantic Web and Social Web can use “people power” to improve collective intelligence

Two different people, the same inspiring theme -Web 2.0 and Semantic Web, Good Separately… Great Together.

Improve Where Appropriate

Improve Where Appropriate, is one of the Rules of Engagement, I like from Orcas blog on the best practices of joining a Development team.

Some of the concepts of improvement (using wikis, maintaining a programming journal) have long term rewards, it is more work initially. So to “improve where appropriate”, we may also need to demonstrate how a particular improvement benefits the team.

I never thought about it this way, but you need to be salesman, even if you are developer. So I will add one more to the list:

– Learn how to sell improvement

Want to Test WikiCalc?

 Dan Bricklin the original inventor of spreadsheets and the author of WikiCalc,  is looking for help in testing WikiCalc 0.96 beta.

I really need help testing this product. I’d really appreciate it if people would test it out soon. I need testing of the functions to make sure the calculated values are correct. I need testing in a server-based environment to see how well the Edit This Page system works, how robust the security is, etc. I’m not looking for changes to the UI to make it “better” or more like Excel, etc. I’m looking to find things that are supposed to work that don’t. Even just using it to recreate something you already have and letting me know if it does or doesn’t work will help. I don’t need you to tell me where the bug is in the code (though that’s always nice) — I just need to know what potential bugs you found.

Here are some interesting features.

  •  WikiCalc can be hosted on your own server unlike Google Spreadsheet which is hosted on Google Servers
  • This product is similar to using a Wiki (collaborative editing)
  • Can be dynamically embedded in other web pages

It is nice to see Wikiness appearing in other applications. If you are interested, here is the announcement. And here is the link to the beta. There is also a page about the architecture of WikiCalc.