Archive for the ‘collaboration’ Category

Community Development

Monday, January 4th, 2010

I have finally gotten around to reading Clay Shirky’s excellent book Here Comes Everybody. I love Clay’s writing style and the way his perspectives make me think. One of the points that really resonated with me was about open source. But before I get into it, I should say that when Clay talks about open source, he is really talking about community developed open source (not commercial or institutional open source). Readers of this blog know that the designation “open source” simply means that it is licensed under an OSI certified license. “Open source” says nothing about how the software was developed. Given that disclaimer, Clay nails it when he describes the advantage of community developed software:

The bulk of open source projects fail, and most of the remaining successes are quite modest. But does that mean the threat from open systems generally is overrated and the commercial software industry can breathe easy? Here the answer is no. Open source is a profound threat, not because the open source ecosystem is outsuccessing commercial efforts but because it is outfailing them. Because the open source ecosystem, and by extension open social ecosystems generally, rely on peer production, the work on those systems can be considerably more experimental at a considerable less cost, than any firm can afford. (from page 245 of the hard cover version)

This quote comes from a chapter called “Failure for Free” that discusses the importance of failure for innovation. The key point is that traditional companies can’t afford to really innovate because they must limit their bets to initiatives that they feel have a high likelihood of success. Innovation winds up being constrained to small tweaks to things that are well known. Real breakthroughs are rare. Community development doesn’t make better ideas but it reduces the cost (and risk) of trying ideas that at first seem unlikely to succeed. Out of all this experimentation comes unexpected successes. Even the failures provide useful data that can be turned into future successes.

When open source critics see the volume of incomplete or dead open source projects as evidence against the sustainability of open source, they are missing the point. A low success rate is critical to real innovation; but that is hard to understand by someone for whom failure is discouraged or not tolerated at all. It is widely accepted that the best design for an experiment is one with a 50% chance of failure: if you know what the outcome will be, the experiment is not worth doing. But if the cost (in time and resources) of the experiment is zero or close to it, the ideal failure rate is much higher.

While we have seen many examples of community developed software out-innovating its commercial peers, this phenomenon has very little to do with open source. An open source license can create an environment that invites contribution by reducing the risk that one will exploit and unduly profit from another’s contribution. But what is more important is how the software is managed. Most successful open source projects have adopted an architecture consisting of a core that is tightly managed for stability and quality and is extensible by adding modules. The bar for module code is considerably lower than core code. This allows an open and dynamic community to experiment with new ideas. The community not only bears the cost of failure but it also brings in new perspectives that the core maintainers don’t have. Some of these extensions will be absorbed into the core or will become part of a commonly used bundle. Others will wither and die.

This pattern of stable core and innovative fringe does not have to be unique to open source. It doesn’t really matter how the core is licensed if entry into the fringe is open. The one area that open source licensing helps with the core is in achieving a level of ubiquity that attracts a community. High licensing fees or the bottleneck of a traditional software sales process can limit the size of the user base and discourage contribution. The community developer needs the promise of a large user base to justify the time investment of contributing his work. But open source is not the only way to achieve a large user base and there are plenty of examples of commercial software and SaaS user communities that have a successful code sharing ecosystem. One company that is particularly successful is Salesforce.com. Salesforce has created a very powerful API and module packaging framework. More importantly, they have priced the product to penetrate small-medium sized companies and non-profits. In particular, the Salesforce Foundation makes the product very inexpensive for non-profits. These strategies have infused the customer population with lots companies that are highly motivated to share. These customers are active both within the AppExchange community and also integrating 3rd party open source projects like Plone (see Plone/Salesforce Integration) and Drupal (see Salesforce module).

On the flip side, there are plenty of commercial open source software companies that not been able to leverage community development. There are two primary ways an open source software product can prevent community development from flourishing. First, there can be factors that limit adoption of the core like in the case of open core products that discourage the use of the open source version. Second, the architecture can be monolithic so the only way for an outsider to add a feature is to fork the codebase. All a software producer has to do is solve those two problems. The supplier doesn’t even really need to provide tools for sharing code. If the install base is large (which usually means the software is useful) and the architecture is modular, developers will find a way to communicate and share code. They can use services like Google Code, GitHub, or SourceForge to collaborate. Too often companies put code sharing tools in place without solving those two problems and then complain when they don’t see any activity. In many cases, the user audience is too small to support a contributing ecosystem. In other cases, the incentives are not lined up appropriately. Shirky calls the three ingredients of a collaborative community: promise, tools, and bargain. The promise is what the contributor can expect to get out of participating; the bargain is the terms and rules for participating. Open source licensing helps with the promise and the bargain. The open source promise is that others may help improve your code. The open source bargain is that people can’t take exclusive ownership and profit from your work. Some communities, like Salesforce and Joomla! have thriving commercial extension marketplaces. In those cases the promise and bargain are different but they are very motivating.

Any widely used software application, if it is appropriately designed, can benefit from community development and the benefits are not limited to the successful contributions. Perhaps the biggest value of community development is increased innovation through reducing the cost of failure. In order to harvest this value, a company needs to actively monitor, analyze and participate in its community. There is a goldmine of information sitting in the chaff of failed contributions as well as the modules that do gain traction. Companies that ignore this value do so at their own peril.

Shortened URLs and spam filters

Thursday, October 15th, 2009

One of the more frustrating things about email these days is spam filtering. It stinks to miss important messages that your spam filter thought you shouldn’t see. It is even worse when your message gets caught by someone else’s spam filter. The latter case makes you paranoid whenever someone doesn’t get back to you. You start thinking “did he get my message? Should I send it again?”

Just this morning, a spam filter rejected and sent back one of my emails with the following text:

Heuristic analysis has classified your e-Mail as spam and delivery has been refused. We apologize if your message was misinterpreted. Please check your entire message for any restricted content and then attempt a resend. You may also request addition to our list of pre-approved senders.

“Heuristic analysis” was probably an overstatement. It was probably just looking for keywords. But what could I have written in my email about scheduling a business meeting that would have triggered the rejection? Well, I am relatively certain that the issue is this…. In my email signature (and, in this case, the body too) I have a shortened link (is.gd) to my Google calendar so that the recipient can see when I am free. Personally, I thought this was a great idea because I work with clients who use Exchange or other groupware to schedule meetings when everyone is free. This technique allows the meeting organizer visibility into my calendar without my needing to join their calendaring system. I used a shortener because the link is really long. I use plain text emails so the length of the URL matters to me.

I still think exposing my calendar is a good idea so I figured out a work around. Google allows you to embed a calendar in another page so I just embedded it in page on http://www.contenthere.net that can easily be linked in an email. I am hoping this will lead to a drastic reduction in spam accusations.

The Art of Community

Monday, February 2nd, 2009

Not that long ago, I started reading The Art of Community. Jono Bacon is posting to this blog as he writes an O’Reilly book by the same name. You can read drafts of the first chapters here and here. I expect demand for this book to be high because communities are valuable but very difficult to create. Companies often envy the passion and personal investment that some open source communities have been able to inspire and they get frustrated when their community building attempts fail to thrive. Jono has been involved with Linux and KDE and currently serves as the Ubuntu Community Manager for Canonical so he knows a thing or two about open source communities.

I have written on the topic of evaluating the health of a community and have been approached by more than one software company looking for that special sauce to help create a self-sustaining customer community. One thing is for certain, communities are not built on tools – it takes more than a forum or a wiki to make a community. Tools like these can help an existing community communicate better but they can’t establish a community where there isn’t one. A successful community requires a purpose worthy of passion (for a great discussion on this, see “Would you Join a Toothpaste Community?”), leadership to help people productively focus their passion, and methods for people to get value out of their participation.

So far, the best book that I have read about the community aspects of open source software has been The Success of Open Source. The Art of Community will have a much greater focus on how to create a community. The table of contents looks like a manual for a community builder. One thing that I would like to see, but haven’t yet, is a set of strategies for creating a passion-worthy purpose out of a seemingly mundane topic (like toothpaste).

Part of the writing process involves building a community of readers and harnessing their input. The project is still too young to see if there is any traction. I am looking forward to seeing how both the book and the community around it come together and if purpose, leadership, and value emerge.

Who Isn’t Working on a SharePoint Killer?

Tuesday, January 27th, 2009

I talk to a lot of web content management software vendors and open source project leaders and it seems like most of them are working on some kind of “knowledge worker collaboration portal” – a SharePoint killer. At first they avoid this comparison (nobody likes to openly challenge Microsoft on its home turf; even now in the era of “I’m a PC, I’m a Mac”). But eventually, they admit that is exactly what they are doing.

To be honest, I don’t blame them. There is something very compelling about building a knowledge worker collaboration portal. Portal technology has been a solution looking for a problem [1]. Knowledge worker information management (“knowledge management”) has been a business problem that has confounded technology for ages and only seems to get worse as the sea of unmanaged information grows. A “knowledge sharing portal” is a logical union of solution and problem and the success of SharePoint practically proves it. Who doesn’t want a piece of that action?

Ingeniux Cartella

Ingeniux’s new Cartella product

Still, this does not mean that information management problems are on the verge of extinction. Even SharePoint’s most ardent advocates concede that companies cannot cleanly codify all of its corporate intelligence with SharePoint alone. That takes governance, discipline, and investment beyond technology. But since implementing technology is always easier than affecting profound organizational change, there will always be a market for tools that promise miraculous results – just as there is always a market for easy weight loss programs and pills. These false promises of quick fixes have kept technology companies in business for years.

Even though market demand is huge, competing against SharePoint is not easy. For small to medium size companies and (especially) non-profits, it is hard to beat SharePoint on price. It is also hard to make the case about proprietary technology and lock-in to a potential customer that lives in Microsoft Office (as most knowledge workers do). Right now, alternatives to SharePoint are most attractive to companies that want to avoid building competencies in managing Microsoft servers and .NET development. It is going to take some bigger disruptions to minimize Microsoft’s competitive advantage as a collaboration tool for the mass market. The big thing to look out for is a reduced supremacy of Microsoft Office file formats. This could be from an increased adoption of the Open Document format or it could be through a transition to “file-less” server side information storage like wikis or Google Docs. Until that happens, SharePoint killers will have the biggest success with companies that are reducing their use of Microsoft technologies on principle and with very large companies that are punished by Microsoft’s per user licensing model. This is still a sizable market but hardly a threat to MOSS’s core territory.

Notes:

[1] I can’t even count the times that clients have initially used the word “portal” to describe their projects and later find that what they are looking for is just a regular informational website. Not a portal.

Blogs, Wiki’s, etc.

Monday, November 10th, 2008

A couple of months ago a WCMS sales guy said to me that when hears the words “we are looking for blogs, wikis, etc.” from a customer it is a clear indication that the customer really doesn’t know what he is talking about or (at least) doesn’t have a clear vision of goals for Web 2.0.

I too am suspicious (and a little surprised) when I hear these terms together because, other than the fact that they are relatively new to the “enterprise,” blogs and wikis have little to do with each other. Bob Doyle wrote a very good article differentiating these technologies way back in 2006 (When to Wiki, When to Blog – read the article).

A blog is a publishing system and a wiki is a collaboration tool. A blog author writes articles (posts) which reflect an idea or an observation at a point of time. You don’t typically update a blog entry unless you see a typo that annoys too much to ignore (like misspelling your name – as on of my recent posts). Comments provide a forum for a dialog around the topic. These comments may appear within the context of the blog site or somewhere else as in the case of friendfeed but they are a conversation around the article, not the article itself. Occasionally the blog author will highlight a comment by updating the blog with a reference but this is the exception not the rule. If the author changes his mind, he will write another post rather than update the original. To learn from blogs you read lots of posts and piece together a consistent understanding that works for you.

A wiki is a tool to collaboratively build a comprehensive informational resource. Rather than blog posts that a single author publishes to an audience, a wiki page allows a group of people to jointly define a topic, establish a policy, or create some other information resource that needs to be updated over time. Companies that use a wiki (rather than a WCMS) as their intranet have come to the conclusion that potentially anyone in the company could correct or otherwise improve the information there. If these contributions are wrong, their updates can be corrected or rolled back.

WCMS can serve both of these publishing and information management purposes. For example, a typical implementation “corporate brochure” of a CMS will publish “point-in-time” articles (e.g. press releases) and manage fixed pages (e.g. “about us”). If you need to do both with one tool (and want the option to strictly control contribution), you probably need a WCMS. If you need to do one of these things but not the other, you might be in the market for a blog or a wiki but not “blogs, wikis, etc.”

Web Meetings Revisited

Friday, October 3rd, 2008

A few weeks ago I wrote a post about WebEx alternatives. My conclusion was that there are some good options for sharing a PowerPoint presentation but WebEx was one of the few services that allowed a non-Windows user to share his screen for a software demonstration. WebEx isn’t cheap.

I just learned about a service called Yuuguu that seems to work pretty well. Yuuguu is a free service works like an IM client on Windows, Mac, and Linux. All meetings participants need to download and install the client and register for the service. This is not ideal for one off meetings with people you don’t usually work with (like a sales demo). Yuuguu is much more appropriate for distributed teams that work regularly together.

The service pays for itself (or at least intends to – I don’t know if they are profitable) by recommending a free conference service (British Telecom’s Powwow Now) to use during your meeting. If you don’t pay extra for your long distance dialing into the free conference number will not cost you anything.

Business Time

Wednesday, October 1st, 2008

Clients frequently request that I run my calendar on their calendaring systems so that they can schedule me for meetings. I can’t really do this because I work for a number of clients and I use my calendar to manage my non-client work and my personal activities. I have a hard enough time managing my time. I don’t need the additional burden of replicating the same information in multiple closed systems.

My new work-around is using Spanning Sync (SS) to synchronize my local iCal calendar with a Google Calendar that shows busy times to the general public. So far the solution looks promising but there are some compromises that I have had to make. The biggest one is that I like to have personal and work on different calendars within iCal. SS only does a one-to-one mapping between iCal and Google Calendars so I had to merge my local calendars into one to get a single, public free/busy Google calendar. I recently noticed that iCal allows you to create “groups” of calendars and I was hoping that SS would synchronize a group of calendars as one calendar. Of course, since SS does bi-directional synchronization, this wouldn’t really work (how would SS know which iCal calendar to put an event that came from Google Calendar?).

The other compromise is that I had to make my calendar open to the world. I would have preferred to only share it with people I choose. It seems that I can only share with other registered Google users (which is probably everyone but on principle I don’t like to force people to register for anything). The public URL is relatively long and obscure but I am sure it is guessable. This is not a huge issue because I am only sharing when I have meetings not what I am doing.

I am wondering what other people are doing when faced with similar requirements.

Intranet 2.0 Survey

Monday, September 15th, 2008

Toby Ward and the Prescient Digital team is conducting an Intranet 2.0 survey to study the effectiveness of Intranet 2.0 tools and strategies. Here is the blurb.

In response to customer and market demand for a detailed analysis of Intranet 2.0 tools (Web 2.0 tools used on the corporate intranet) used, considered and deployed by global organizations, Prescient Digiatl Media is preparing a comprehensive report on the topic, based in part on the findings of the following study. Targeted primarily to organizations that currently have a corporate intranet and/or portal, and are considering and/or have deployed Intranet 2.0 tools.

The following survey takes approximately 10 minutes to complete. Respondents who complete the survey will be eligible to win $400 (a random email address will be drawn from all responses to the survey). All respondents will also receive a full copy of the results at no cost. Please provide your contact information in order to receive the survey results.

Only totals and summary statistics will be published. Your personal information and answers will be held confidential, and will not be shared with any outside partner or company.

Please take 10 minutes to take the Intranet 2.0 Global Survey and you’ll get a copy of the full results including the good, bad and learned lessons.

I am looking forward to seeing the results of this study. From what I have seen personally, employee-oriented communities have failed to sustain the levels of social and collaborative energy that their consumer-oriented inspirations have achieved. I would love to see what the market as a whole is doing.

Wikis Not Word! Gaining adoption through psychological warfare

Wednesday, August 27th, 2008

Your company has a perfectly good wiki but your (otherwise intelligent) co-workers insist on emailing you Microsoft Word documents to review. Your gentle guidance has been ignored. Your snarky comments have been equally ineffective. What do you do? I suggest the following method. Try it (at your own risk) and let me know how it works.

A co-worker has sent you and four or five other colleagues a MS Word document that summarizes some research that he did. The document contains some simple headings and paragraphs. You have a lot of ideas and feedback to give but, rather than give it all at once, you trickle it out and have your co-worker feel the pain of merging your edits.

  • Draft 1: Re-Format. Don’t really change anything, just format the heck out of the document. Change the styles around. Send it back with a cryptic filename like [irrelevant name]_[your middle name]_final.doc. Mail it with a note saying that it looks good and you had some slight wording changes. Leave it up to your co-worker to figure out that nothing has really changed.
  • Draft 2: Re-Organize. A day after the first draft, take the original document you received and re-organize it. Re-order the sections and a few sentences here and there. Make sure that you turn on “track changes” so that the whole document is a multi-hued mosaic of change notifications. Name it [original filename]_new.doc. Send it with a note saying that you discussed it with another colleague and got some new ideas but “it is really coming along!”
  • Draft 3: Edit. This is the version where you provide your real feedback. Start with your Draft 1. Make your edits. Name it [original filename].doc. Send it with a note saying how excited you are about this project and have been “thinking about it non-stop.” Schedule a meeting to go over it and ask that your colleague send out a merged final draft for everyone’s review. During the meeting, walk through everyone’s feedback. By this time, your colleague is probably totally fried and is ready for a new way of working. At the end of the meeting, innocently say something like “you know, this might have been easier if we had worked in the wiki.”

This method works even better if you have a co-conspiritor working with you doing the same thing. During the process, watch out for signs of mental instability or fragility and remove all sharp objects from the office. Make sure that the Employee Assistance Program posters are visible and well placed.

All humor aside, sometimes the only way to change people’s ingrained behavior is to offer an alternative that is substantially easier. It has to be a big improvement because old habits are hard to break. Starting to use a wiki can be hard for people accustomed to Microsoft Word. They will initially get frustrated and resort to what they know. If you can’t eliminate the learning curve of a wiki, you can expose the inefficiency of collaborating without one. The next time they launch Word, they will remember their painful experience and think twice.

Knowledge working open source style

Tuesday, August 19th, 2008

My career spans across the domains of a software developer and a knowledge worker. I participate in software development projects and I also do the things that your typical knowledge worker does: communicate information through reports, presentations, and other knowledge assets. One thing I have noticed from this perspective is that software development has been improving from the adoption of open source tools, behaviors, and practices while most knowledge workers live in the comparative stone ages of siloed working habits. As someone who loves living out in the country and working with people from around the world (and is also trying to reduce his carbon footprint), I look forward to the day when knowledge workers start to harness the techniques that distributed open source development teams have used to effectively produce quality software. Here are some places to start.

  • Using Mailing Lists and IRC.

    Mailing lists (and sometimes IRC) are the core channel of communication within open source development teams. Point to point emails (and, shudder, phone calls) are discouraged because they lead to duplicate communication and there is no centralized record of what was said. IRC is preferable to point to point instant messaging for the same reason. Frequently once there is a critical mass of substance on a topic, a wiki page (mentioned later) will be used to capture and organize the idea as it develops.

    Especially in the world of IRC, it is important to include some social value (i.e. fun) in the dialog. Otherwise, the people who have all the answers have little benefit in participating. I have worked on projects where everyone worked within arms reach of each other, listened to music on their headphones but constantly communicated over chat. I liked this way of working because if you had a complex thought in your head that would unravel if you were interrupted, you could ignore the conversation and catch up when you got to a good stopping place. I realized the secondary benefit much later: when the team was broken up and staffed on other projects, the conversation kept on going even though people were spread all over the world.

  • Using Wikis.

    Most open source projects use wikis for documentation. Wikis have a number of advantages over Office/Sharepoint: they stress information over formatting; they have excellent history and version comparison; they encourage referencing information (through links) over duplication (copy/paste); there is no local copy to synchronize; and they don’t require special client-side tools to contribute. Every time I open a word processor, I challenge myself whether this needs to be a “document.” My general rule of thumb is that I only do it for proposals, deliverables, and contracts where the audience needs their own local copy.

  • Managing Vision and Tasks.

    Even though I have worked on several software projects that wound up going nowhere, I have to say that an even higher percentage of knowledge work is wasted. You could argue that the act of knowledge work leads to learning which creates knowledge. But running around in circles without any results is demoralizing. I like developing software systems because you see tangible results. I wish knowledge work was more results oriented. The better managed software projects maintain a road map which communicates an overall vision of what is going be achieved broken down into milestones. Gantt charts just don’t capture the “why” like a road map does. I think knowledge work could benefit from the same understanding. People should be responsible for mapping their individual activities to a shared set of goals and priorities.

    Open source projects rely heavily on issue tracking systems to manage work. Bugs and enhancement ideas all go into the issue tracking system where they are prioritized and assigned. If you have an idea for a new feature, you create an issue, assign it to yourself and start working. Maybe someone else shares your interest and starts to collaborate with you. In distributed teams, where you can’t see people working, you need other ways to keep track of what people are doing – not just if you are given the role of “project manager.” An issue tracking system would be a good way to achieve this.

  • Holding Sprints.

    Open source projects have long understood that effective collaboration depends on communication and trust, which are most efficiently achieved through face to face interaction. For this reason, many open source projects hold sprints (also known as hackathons) where people work closely together (as in 2 to a computer) and mix hard work with an equal balance of socializing and play. In a typical office setting, people need to rush home at quitting time to attend to their home life. If they normally work from home and travel to a sprint, they are more likely to hang out after work and get to know their colleagues.

    I think the sprint technique could have huge potential in knowledge work. It would get people together to share information and it would create networks for people to use in solving future problems. One big thing about software sprints is that they are centered around solving a specific problem or accomplishing a goal. I think that knowledge workers would really respond well to this sense of purpose.

  • Componentizing.

    Good developers know how to break down their software into re-usable components and reuse them. Most knowledge workers live by copy/paste (or Save As). Copy/paste not only creates redundancy that is hard to manage, it also frequently inserts unwanted content into your document. If you want to re-use something as it is, try to reference it. Granted, software has the advantage of build processes that assemble the appropriate parts to produce a cohesive product. Technical documentation (in XML) is often built like software. Most other stuff (particularly anything written in an Office (Microsoft or Open) is not.

    A while back I produced a coding standards document for my company. I based it on the Sun Microsystems’ Java Coding Standards. Rather than copy the whole thing and then edit the parts I wanted to change, I referenced the original and created a small addendum document that discussed where we were deviating from Sun’s standards. While this does not create a polished deliverable, it conveyed the necessary information which is what I was trying to do in the first place.

  • Designating a Committer.

    In large open source projects, lots of developers submit their code to a small team of committers who review everything before committing it to the source code repository. Knowledge workers are constantly creating assets and dumping them into places where they are often never read. Sometimes these assets are never reviewed but are randomly discovered. Then it is up to the reader to determine if the information is valid. Because of this, most companies are swimming in information of wide ranging quality and accuracy. Search technology vendors claim the answer is in sophisticated retrieval systems. I would argue that more attention to the review and categorization of information at the intake end is needed. The committer for knowledge work would be a subject matter expert with librarian skills. This committer would know about what has already been done, be able to judge quality, and see opportunities to create shared resources. In open source projects, the committer is a position of status earned by climbing up through a meritocracy. The analogous knowledge worker position in most companies is really low on the totem pole. People who move up the latter in the knowledge world tend to drift away from the content and their distance leads to neglect.

I don’t think these practices should be that difficult to adopt but they are rare outside of software development. The obstacles are probably mostly based on culture. Old habits are difficult to break. I think another issue is that knowledge assets are commonly thought of as a by-product of the work rather than the purpose of the work (like software is). Therefore, there is less urgency in addressing the quality of the assets. But if institutional knowledge is a priority of the organization, the assets themselves need greater attention and investment.

Further reading: