The often random thoughts of an Eclectic Architect, Enterprise Technologist, Coffee Addict & Social Media Junkie

The first draft of the Architectural Principles for Enterprise Social Software was posted here. I invited feedback and was fortunate to get some comments from Luis Benitez, an IBM architect who deals with Lotus Connections who also then commented and expanded on these further in his own blog with a post 10 architectural principles for social software. I’m going to carry the conversation one step further and refine them again now.

First, a little bit more background. When we (myself and the team I work with) define architectural principles, one of the good pieces of guidance we use in drafting them, is that each principle must be able to be expressed as a counter argument. Why? Because this is something that guidance is therefore required on, and will generate a conversation with the business and help get to the root requirement. If no conversation is required, then it’s probably not a principle (it’s more likely to be a fact). The proviso I’d put around this is that one organisations “fact” will be another organisations “principle”, so you need to consider your requirements and if these principles here apply. For example, the Principle “Configuration not Customisation” does have a counter in our business where they would consider highly customising an off-the-shelf solution and have typically done so in the past, whereas in your business, it may not ever happen.

Applying this rule, I think that we can further refine two of Luis’ principles into one, because at the moment, while they are sound, they are also (at least for our organisation) “fact”; i.e if Internationalisation was available, no-one would say “don’t do it”, and equally with the UI, no-one would say “lets design a complex UI that requires lots of training”. So with that background, here are my 9 core principles from my original (7) and then Luis post (3 combined down to 2) plus a draft of a new one to bring the total to 10!

All this needs now is a review of a few eyes and I think a re-order perhaps to reflect importance a bit better.

Principle 1: Limit Social Software Data to Basic Security (Username/Password) Only

Rationale: Social software is by it’s very nature social! While user security is important, information requiring complex, 2-Factor security solutions is generally not considered appropriate for how social software will be used. In general, open read access is preferable.

Principle 2: Social Software should use Authoritative Sources for relevant Information.

Rationale: Internally we store a lot of information about users, including their phone numbers, contact details etc., we shouldn’t require them to re-key this and it should be updated automatically.

Principle 3: Simple Ubiquitous Online Access

Rationale: Social Software should be considered an online access solution (ie. limited facility to access the information in an off-line capability), but access should be facilitated from multiple points, not just a browser.

Principle 4: Global Sharing (largest number of users)

Rationale: The value of a trusted network dynamically increases with its size http://en.wikipedia.org/wiki/Metcalfe’s_law

Principle 5: Modular, Highly Integrated Services

Rationale: Services should be designed to maximise simple re-use and allow users to mashup up modules to meet their specific requirements. Common standards support is key to enable this.

Principle 6: Configuration not Customisaton

Rationale: Social Software is rapidly evolving, we should only configure the software, not customise it t allow rapid roll-up to future versions and capabilities as these improve.

Principle 7: Build for Rapid Growth

Rationale: Social Software is difficult to control and pilot, we should be prepared for a rapid uptake and changing usage patterns. Effectively this means build with added headroom above what you might normally size for a production system.

Principle 8: By the People, For the People

Rationale: Social software is designed to be used by the people and for the people, we must be very clear on the aim and purpose of the system and remove barriers to adoption that prevent and hinder people sharing information with each other.  This includes promoting Internationalisation and Ease-Of-Use UI’s which facilitate easy use (no-one ever received training on LinkedIn).  The counter to this is that we have an Enterprise Centric Approach where the information and it’s use is driven and mandated by the Enterprise which is quite different in principle.  This is not saying Enterprise Information has no place, it does (see Principle 2), it just means that the Enterprise is not the end consumer of the information (it may be the benefactor), people are.

Principle 9: No User Content Creation Work-Flow

Rationale: Social software solutions promote the sharing of information and activities, deriving value from the flow of this information through the eco-system. Approval processes hinder the value of this conversation, reducing the incentive to participate in the system. Strong requirements for content-creation work-flow potentially suggest that either social software is the wrong solution for the business, or that the business is not yet culturally aligned with social software.

Principle 10: People not Documents

Rationale: Social Software is about people connecting to people and discovering and carrying on a conversation. It’s not a document centric publishing and storage platform (although it may potentially extend to that if documents aid the conversation).

Some of the earliest posts on this blog were about how powerful location aware services could be.  I spoke about Mobile Mashups and SOA, as well as Location Based Services (LBS) and AGPS and finally the value of Location (and how I thought it was relevant, but not quite sure what to do with it).  You’ll notice this is “so long ago” in Internet History (last year) that I refer to Touchstone, now called Particls.

So it’s with great interest that I can see some of the things I was blogging and thinking about beginning to become a reality.  I was a user of Plazes for a while, but ultimately gave it up because to some extent I just didn’t get it and I think having seen BrightKite now, it was missing the fine-grained access I needed to feel comfortable at that time (it may have it now I haven’t re-checked).

BrightKite is a very compelling and interesting service, provides reasonable privacy settings, but also links in to Twitter by default to set either your location or tweet it.  I’m going to see how it evolves, but I can see BrightKite becoming part of my tweeting in the future (especially when I get a new phone in the next couple of months).  It will potentially be my photo-log of where and what I’m doing, auto-feeding this in to Twitter as appropriate, while I’ll use Twitter directly through it’s various other clients for my 140 character tweets on the world and the community.

Another interesting feature of BrightKite is FireEagle. FireEagle sounds like it’s the DataPortability answer to Location Based Services, an open exchange for location information and the fact that a player like Yahoo is making a move in this space suggests we are at the cusp of big things to come.

Dopplr also adds to the picture of location based services, although in this case Dopplr fulfills a “Where am I going” rather than a “Where am I” feature.

I speculated early on, that LBS would potentially be of use for the Enterprise, but I couldn’t quite touch on the use.  The big area I could see is staying in touch with the people who are part of your Enterprise as they move around, with BrightKite and it’s GEORSS feeds, Dopplr and it’s “where am I going to be” and services like FireEagle, I can see that in the next 6 - 12 months, this will start to become a reality.

To paraphrase myself from over twelve months ago:

As Architects, understanding how location works and what location information is needed to tie the system together will be critical steps that can be taken now to ensure early mover advantage when it finally becomes a reality.

We are considering implementing some Social Software so have drafted a series of Architectural Principles to help govern the planning for this. I tweeted on this and was followed up by @IdoNotes
asking if I was willing to share these, so here they are. I’d really welcome any feedback, good bad or in-different, particularly if you have implemented something similar internally.

I’ve removed a lot of the background information here and just shared the key points that are generally relevant (there are a couple of principles I’ve skipped which are just too specific to our circumstances).  There are also other more general architectural principles that we would under-pin these with, for example “Buy Not Build” but these are not included here.

Similar to these, there are some related business principles we’ve proposed for consideration that are not technical in focus, I’ll share these separately.

Principle 1:  Limit Social Software Data to Basic Security (Username/Password) Only

Rationale:  Social software is by it’s very nature social! While user security is important, information requiring complex, 2-Factor security solutions is generally not considered appropriate for how social software will be used.  In general, open read access is preferable.

Principle 2: Social Software should use Authoritative Sources for relevant Information.

Rationale: Internally we store a lot of information about users, including their phone numbers, contact details etc., we shouldn’t require them to re-key this and it should be updated automatically.

Principle 3: Simple Ubiquitous Online Access

Rationale: Social Software should be considered an online access solution (ie.  limited facility to access the information in an off-line capability), but access should be facilitated from multiple points, not just a browser.

Principle 4: Global Sharing (largest number of users)

Rationale: The value of a trusted network dynamically increases with its size http://en.wikipedia.org/wiki/Metcalfe’s_law

Principle 5: Modular, Highly Integrated Services

Rationale: Services should be designed to maximise simple re-use and allow users to mashup up modules to meet their specific requirements.  Common standards support is key to enable this.

Principle 6: Configuration not Customisaton

Rationale: Social Software is rapidly evolving, we should only configure the software, not customise it t allow rapid roll-up to future versions and capabilities as these improve.

Principle 7: Build for Rapid Growth

Rationale: Social Software is difficult to control and pilot, we should be prepared for a rapid uptake and changing usage patterns. Effectively this means build with added headroom above what you might normally size for a production system.

Two ideas have converged.  Elias Bizannes wrote about the Value Chain for Information which I have been thinking about, then I saw Sacha Chua’s Web2.0 @ Work which was done with a Nintendo DS and got really excited about wanting to make something similar. The main difference is I wanted to try make mine as an actual movie, rather than a series of slides.

I give you the Value Chain for Information - The Movie!

This is my first attempt at using a Nintendo DS to create a presentation and I’ve learnt a few things on the way.  I’d do it differently next time (For example, the each stroke ends up as one frame so I’d use more strokes!  On the Nintendo there are lovely sweeping wipes of each screen, but you don’t see these as they are a single frame in the movie), I’d also probably use some more colours! But I’m content enough for a first attempt. Sacha has a great guide here that tells you how to do it, I also used Wired’s more detailed Wiki as well.

I hope you enjoy it and that it adds some value along the way to Elias idea which is growing on me as I consider it further.

Oh what a tangled web we weave… - Sir Walter Scott

Ok, so perhaps I’m not practicing to decieve (the full quote is “Oh what a tangled web we weave, when first we practice to decieve”), but still, the web is tangled regardless.

I posted on Why Enterprises are Sucker-punched by Web2.0 earlier which got me thinking about what the complexity and interaction on the web really looks like so I thought I’d further illustrate that the web is an eco-system by trying to map out my own little corner of the web.  This brings me nicely on to the next topic of my re-factor your digital life series which is to Interoperate.

But first, here is my little eco-system:

As you can see, it’s a tangled web indeed. This is really only what I consider my core on-line presence, I haven’t really included other services that I don’t use (Plaxo), are incidental in nature only (Feedjit), I still intend to get rid of (Jaiku), or are more personal in nature (for example Dopplr also links to my family blog).  I also haven’t shown the series of feeds etc. that keep me on top of what’s going on.

The coloured dots represent the direct inputs into the system, either mobile, through a PC client or via the Web.

The dotted lines show the various automated data feeds between the systems.

The solid lines show the direct links and click-throughs.

A few comments on all of this:

  • The hub of my presence is now this blog.  All relevant services feed into and can be reached from this blog.  I’ve tried to close the loop.  It’s paying off, a contact from IBM commented today he had seen the blog because he linked to it when we connected on LinkedIn.
  • Actually it’s not as complex as it looks in some respects because much of the networking below the interface layer is now self tending and it’s actually contextual in terms of time and place at the input layer.

Of course, the choice of services is not as random as it might appear.  I’ve been putting a bit of thought into the core services I want to use and why.

  • Wordpress (binaryplex.com) - Drives this blog and is very customisable to let me link in my other on-line presences in a nice, clean template.  This blog represents to some degree what I am thinking about and exploring where I can share and learn from others.
  • Twitter - I use Twitter because it keeps many of my profiles “fresh”, for example, even if I don’t post daily, the Flash badge on BinaryPlex let’s you know I’m still around.  TwitterFeed promotes my blog entries in Twitter to those contacts, while TwitterSync means that my FaceBook status is always fresh and up to date.  I’m also learning lots and making connections with Twitter (especially since I discovered Summize which lets me discover people and conversations I might be interested in).
  • Dopplr - My main purpose for blogging and my on-line presence is ultimately to connect with people around ideas.  Dopplr gives me the opportunity to take this one step further and potentially lead into the physical space as well.
  • LinkedIn - People’s mileage on LinkedIn will vary, but for me, it’s a better address book, which has the advantage that you update your contact details without me needing to keep track of you.  With many sites adding LinkedIn support it’s a nice way to get set up with new sites and quickly find friends you want to invite or who already use a service and you connect to.  Finally, it’s the other half of my on-line presence - if Binaryplex.com is what I’m thinking and doing, then LinkedIn is a more professional, consolidated record of what I’ve done.
  • Del.icio.us - I could use Ma.gnolia.com, I’m used to del.icio.us, it does what I need and others I work with use it too.  My challenge on the social bookmarking front is that with a trial of an internal bookmark service in DogEar now, I’m struggling to figure out how to manage both services — I want my bookmarks external, but I recognise the value internally for people who won’t use a service like del.icio.us.
  • Facebook - Actually I don’t really use Facebook much at all anymore, I got sick of the spam and generally speaking the people I want to connect with on a more serious level aren’t on there anyway.  With TwitterSync, my Facebook friends get a live update on me and what I’m up to, I’ve turned down all the notifications and I go on-line occasionally to connect socially with some of the people that I don’t find in other spheres.

So that’s step 6, inter-operate, plug and connect to make a more streamlined, connected on-line presence.

Step 1: Get a better browser

Step 2: Explore your mail hosts options and consolidate your mail into fewer accounts

Step 3: Update your blog software and template

Step 4: Be consistent and be you!

Step 5: Evolve your digital life

Step 6: Interoperate and connect

 
May 26th, 2008
 

I have called this principle, by which each slight variation, if useful, is preserved, by the term of Natural Selection — Charles Darwin

Survival of the fittest - evolve, weed out and select your on-line services with vigour and rigour. Try them but if they don’t work, ditch them.  If you want to preserve the weak, then invest the time to upgrade them to today (I say this after having spent the better part of 4 hours taking old manually crafted HTML from an early web-site and merging it into my personal blog on Saturday).

It doesn’t need to be hard, search for what you are trying to do and typically someone has done it (import Blogger into WordPress; it’s simple there is a built in Import function in Wordpress itself for this!).

The message here is in two simple parts:

  1. Always try new things.
  2. Don’t be afraid to throw the new things (or the old ones) that don’t work out, or bring them up to spec if you want to keep them.

The web is a vast eco-system of natural selection, the best services will evolve and the others will, over-time, wilt, die or more likely be consolidated into bigger and bigger social service companies (e.g. Google, Microsoft, IBM etc.).

Step 5 in re-factoring your digital life:

Step 1: Get a better browser

Step 2: Explore your mail hosts options and consolidate your mail into fewer accounts

Step 3: Update your blog software and template

Step 4: Be consistent and be you!

Step 5: Evolve your digital life

 
May 24th, 2008
 

Not least because I had a similar great idea a couple of years back, except I didn’t think about how cool it would be on the web.  We travel a lot where I work, and I thought a system which fed out of the travel booking system and let people know who was co-inciding would be great.  I even put up a project submission, but it was declined.  Good thing, because now we have even more incentive to use Dopplr!

I’m adding a feed of my Dopplr trips into the sidebar of the blog.  If I happen to co-incide with you, wether I know you in person or not, let me know, I may just have time to catch up for a beer and say hi!

Would you like to buy the Brooklyn bridge?

I was reflecting on some internal conversations around blogs a couple of days ago, and it really struck home that Enterprises haven’t really “got” blogs as one example only.  “What!” you cry. We have a blog, that our (insert marketing / managing director / team leader) regularly pontificates on things for us to read.  But how many Enterprises that have blogs have a rich internal blogging culture that exists on the internet, of these how many of them are non-technology companies?

The analogy for me is the plain old car.  Which came first? The car of the petrol (gas) station?  For cars to work, there is a rich eco-system (aside: is using the word eco-system and car in the same sentence an oxymoron).  For cars to operate effectively and safely they need, to name just a few things:

  • Roads
  • Petrol (gas) stations
  • Standards (Road rules, safety standards etc.)
  • Maintenance

Each of these in turn is part of a richer eco-system that maintain and produce these.  I don’t need to understand how roads are maintained, or how petrol is refined to know that I’m glad these things happen and I can reap the benefit.

Which brings us to blogs.  The first time user of a blog rapidly comes across these kinds of issues:

  • How do people find out about my new posts? Ahh, well you need RSS / ATOM feeds. Oh and you need to deploy these readers to all of your staff and train them in how to use them.
  • But how do I trust what this random person I don’t know has written? Oh, that’s easy, you need pingbacks, trackbacks and it really helps if you have a service like Technorati which provides an authoritative rating.
  • How can I find what I’m interested in amongst these hundreds of posts? Easy! Just implement a feed aggregator and subscribe to a collection of tags.
  • But no-one is writing anything! Ahh - you need a critical mass of 1000’s if not 100′000’s to be sure that your generating enough content for all these rich services to actually “trigger” in a meaningful way.
  • Do you want to buy the Brooklyn Bridge?

The Internet has evolved (and continues to evolve) a rich and mature set of integrated services and standards that are not easily transportable to the inside of the Corporate Firewall, particularly when people tend to look at only one part of the problem “I need a blog”, “I want a wiki” etc.

This is why products like Lotus Connections, Jive and Sharepoint are important to Enterprises because while no individual component within them is as rich as a given tool in the OpenSource world, they help transplant an eco-system that works.

The current situation is a bit like a sucker-punch for Enterprises that are trying to move in this area, failure to see the bigger picture makes it hard to drive the culture change which is needed to be transplanted along with the technology.

Gia Lyons tweeted “[can someone tell me] the value of the data portability movement for enterprises, i mean. Not consumer sites”.

I thought I’d put my thoughts down here, not least because I know that Elias Bizannes and Chris Saad, both players in the Dataportability movement occasionally stumble across my musings and will no doubt carry the conversation back to Gia.

So, while under time pressure to watch a movie with my wife, here are three reasons to describe the value the dataportability movement brings to the enterprise.  Chris has also blogged on this just recently and I have appropriated some of his themes here.

  1. Dataportability provides a language to combine previously disparate standards.  As an Enterprise Architect, I love standards and I love them even more when my two largest vendors, Microsoft and IBM are expressing interest and supporting at least some of the same ones.  Some Enterprises may not care about dataportability as a whole, but they will care deeply about the artifacts it produces and helps drive, like APML, OPML, OpenID etc.
  2. Enterprise Social Networks are rapidly evolving.  Todays solution may not be tomorrows winner.  To be able to move and migrate easily between Confluence, Jive, Lotus Connections etc. etc. at will is always appreciated.
  3. Enterprises will begin to break down the firewalls.  Ultimately Enterprises want to work with their clients; it won’t be tomorrow, but Enterprises will realise that clients don’t want to fill out yet another profile form, but want to share their own data in controlled ways with them.

There will be bumps along the way, but while the dataportability debate may not be critical to Enterprises today, the outcomes will be crucial.

 
May 23rd, 2008
 

I’ve added in feedburner to get better stats on readers (I’ve used it for ages on some other blogs but just never got around to putting it on here!).

I’ve also added the wordpress plug-in which should automatically re-direct your feeds to feedburner, if you have trouble, perhaps re-add the feeds.  Although of course how will you know if you don’t get this feed?  It’s a twisted world…

Going straight home tonight to steal the kids DS and try this out…

 
May 22nd, 2008
 

If you’ve been following my series on re-factoring your life and want good evidence for why you need a new browser, look no further than this very attractive graph from John Resig.

Browser memory usage

 
May 22nd, 2008
 

Reputation is character minus what you’ve been caught doing — Michael Iapoce

On-line you can be who you want to be, however I think most regular bloggers will agree that reputations are built and enhanced by interacting with people who aren’t afraid to be themselves, rather than hiding behind a persona.  Of course, over time we accumulate baggage that doesn’t represent us fully now.

When I started blogging, I was more protective of who I am, but over time I’ve appeared in so many places that identifying and tracking back the real me isn’t actually that hard.  This leads to an inconsistency.

I’ve also experimented with several blogs over the years and under some pseudonyms that I’d rather weren’t attributed back to me (personally I think that there was a positive message in my LazyLeaders blog, but at first glance, which might be all you get if someone is looking to employ you, the title isn’t really that flattering).

To achieve this, I’ve been slowly doing several things:

  1. Linking the value sites together - LinkedIn takes you to this blog, this blog takes you to LinkedIn and Twitter, Twitter will bring you back here.
  2. Deleting accounts that I no longer need or use.  Nothing wrong with them, but I’m trying to centralise and consolidate my identity on line (goodby Jaiku).
  3. Deleting old blogs where I just don’t need them.
  4. I’m claiming my identity (http://claimid.com) which will also give me an OpenID.

So here it is, Step 4 in re-factoring your digital life:

Step 1: Get a better browser

Step 2: Explore your mail hosts options and consolidate your mail into fewer accounts

Step 3: Update your blog software and template

Step 4: Be consistent and be you!

 
May 21st, 2008
 

The debate around Web 2.0 Vs Enterprise 2.0 etc. is an interesting one. Ultimately though, these are tags for concepts.  An interesting question is what does an Enterprise 2.0 actually look like.  Can we describe explicitly the functions, features, capabilities, staff, management style etc. that all build together to make this the Enterprise of tomorrow and not today.

The reality for Enterprises is that they need to work out how to rise to this challenge and meet the needs of staff who are demanding new and different ways of working, while still providing the seamless experience, security and control that they have traditionally required.  Unfortunately Enterprises almost always exist as a point in time; a combination of old systems and old ways of doing things which conflict against the need to change to meet new challenges with limited time, budgets and often buy-in to new approaches.

For a thought experiment, lets envisage the impossible; a mature enterprise that has no baggage; that can instantly adapt it’s system; where staff adapt and change as technology and process demand — what would it look like?  What would it be like to work and operate in Enterprise 2010 today — the Enterprise that we all believe we can deliver given a little bit more time?  Can we build a vision that could be achievable today if the constraints were removed.

There is only one rule — the technology that makes Enterprise 2010 must exist today.   Why? Because no real Enterprise can move that fast; it usually takes at least 2 - 5 years for consumer concepts to percolate inside the corporate firewall.  If it isn’t very near to being in the market today, then there is a strong possibility that the Enterprise of 2010 wouldn’t even be considering it anyway.  While I think removing constraints is important, I think this one rule helps keep us out of the realms of spacemen with little green suits into what could be done today with what we’ve got.

This begs one other question — am I in fact really talking about Enterprise 2008; the mythical Enterprise which makes the best today of everything that is on offer?

I’m going to let this topic sit for a day or two and hopefully elicit some comments from the usual suspects before I jump in with some of my visions on what this Enterprise would look like and what’s achievable.

 
May 21st, 2008
 

This one is short and sweet.

Update your blog software AND template. Do it. Do it now.  And if you use a hosted platform like Blogger, laugh out loud at those of us who don’t but need to keep this step in mind.

I’ve been using my favourite template since I downloaded it probably more than two years ago (which is not the same time I started blogging with it, that came later).  I’ve always updated with each Wordpress release, but I’ve never upgraded the template until last week.  What I had never really paid much attention too, was that some of the new features required new templates to take advantage of them.

All that hacking PHP to add in support for various things you want to link in to your blog? Not any more with the text widget.

It’s also a great opportunity to revisit your template and ask if it’s really representing you properly now?

So step 3 is simple, update your blog platform AND your templates on a regular basis.  You’re digital life will be made that much easier (and secure) because of this simple step.

Step 1: Get a better browser

Step 2: Explore your mail hosts options and consolidate your mail into fewer accounts

Step 3: Update your blog software and template

« Previous Entries