Friday, January 20, 2012

The difficulty of buy in

I've managed the company software infrastructure for many years. Along the way I've implemented every single idea or request that people have thrown at me.

Bug Trackers
Mantis
Redmine
Fogbugz

Company intranets
Google sites
Mediawiki
PhpBB
Wordpress

Email
Exchange
Gmail

Version Control
Visualsourcesafe
Sourceoffsite
Perforce
Subversion

Chat
IRC
XMPP server

The problem is once there is a preexisting system, and you have 80 - 120  people using it, and staggered projects there's almost no way to get everyone to switch at once! So you try and switch one project at a time, especially the ones that are eager to try a new system because of their complaints with the old one. Then the teams on new systems are faced with a learning curve, eventually fall back to the old system and you're back at square one.

So how do you get buy in? The simplest way is to use what most people already use at home. Which is why IRC, Gmail, AIM have continued staying on and all efforts to move everybody to gTalk will probably fail, and I can't believe gTalk doesn't have chat rooms! Which is what prompted the internal XMPP server. Campfire is definitely an option, but with > 100 users, you quickly reach your cap and can't scale.

Along the way we're picked up small pockets of other services like dropbox that are mainly used by people who cannot live without MS Word to share documents, while others like me just use Google Docs for sharing and collaboration.

I guess at the end of the day, there is no fit all solution, and that is really unfortunate.

On a side note, the wordpress with a custom plugin system works great as a wiki/intranet/annoucement system. The gist of it is this. Use wordpress, and a catchall address on googleapps that automatically adds every new user in your google apps account.

Then just add this plugin to wordpress :

post_content);
 $theauthor = get_the_author_meta( 'user_nicename', $thepost->post_author );

 // Get a comma separated string of categories
 $category_list = '';
 foreach((get_the_category()) as $category) { $category_list .= $category->cat_name . ' | '; }

 $subject = $category_list . $thepost->post_title;
 $body = "\n".
  "\n".
  "

$thecontent

". "

by $theauthor

". "

guid\">$thepost->guid

". "\n". "\n"; $headers = "From: " . get_bloginfo('name') .'' . "\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; mail('all@wayforward.com', $subject, $body, $headers); } add_action('new_to_publish', 'domainemail'); add_action('draft_to_publish', 'domainemail'); add_action('private_to_publish', 'domainemail'); add_action('future_to_publish', 'domainemail'); add_action('pending_to_publish', 'domainemail'); ?>

Replace everyone@yourdomain.com with your catchall.

This way you get emails sent for every announcement with a permalink sent to everyone, including any new person you ever add to your domain, till the end of time. Oh, and you have the full history too when you go visit the site.