When no one can run the software

naked capitalism: Another Lehman Mess: No One Can Run the Software:

I have no idea whether this estimate is still valid, but back in the days when I was working with O’Connor & Associates, the head of technology (and O’Connor had a well run technology operation) said the cost of documenting software (as in having the developers write up what they did in sufficient detail so a third party could maintain the it) was an additional 20%. It was very difficult to get traders to pay for it, ironically not so much for the hard dollar costs, but the fact that IT was resource constrained. The idea that the coders would spend a lot of time on leaving a paper trail, rather than getting to a business center’s urgent need, was a hard sell.

But Lehman illustrates what happens when you do what most places do, and skip documentation.

What is ECM-SOA?

EdLovesJava: ECM-SOA With Agile Attitude:

The first challenge is to think of our tooling as not a custom application, but more as a set of adaptable services, applications and integrations. This requires a change of thought.

Our previous efforts were to drop a monolithic application called a Content Manager into the middle of things, and then propose to change the business process around this application, ostensibly obsoleting the existing applications and ad-hoc processing to customizations within this new application.

During our previous attempt, we underwent a lengthy analysis phase and generated a 500 page requirements document detailing taxonomies, content types, work flows and templates that would solve our content management (web content management) needs. We then spent lots of time and treasure implementing these requirements. In the end, we built some of the requirements taking far longer and far more resources than anticipated, and we found that most the requirements and subsequently most of the customizations we built were wrong. The heroic content managers and brand managers made it work anyway, developing more ad-hoc, complicated and time consuming steps around yet another application that was supposed to help them. This story is not unique.

We must shift our processes as much as our technology. We are focusing on smaller efforts, more agility and more feedback and move away from 500 page requirements documents. To do this successfully, our architecture also needs to be agile and amenable to change. Our architecture must be a framework to grow on: to grow useful services, and to grow and integrate with useful applications. It must follow user demand that learns from using and refining our processes and tools.

Javascript links for September 8, 2009

Ian J Cottee: Rhino on OS X Leopard

peter.michaux.ca: Server-Side JavaScript with Rhino and Jetty

gorilla3d.com: Programming Java With JavaScript

Steve Yegge: Code’s Worst Enemy

John Resig: Bringing the Browser to the Server (hmmm, jQuery on Rhino?)

YouTube: Google I/O 2008: Steve Yegge on Server Side JavaScript (transcript and slide links):

benne: On-the-fly JavaScript syntax checking in Emacs

Patrick Hunlock: Essential Javascript (nice tutorial)

The UNIX Way

Kas Thomas of CMS Watch riffs on “The UNIX Way”, principals summarized by Mike Gancarz:

1. Small is beautiful.
2. Make each program do one thing well.
3. Build a prototype as soon as possible.
4. Choose portability over efficiency.
5. Store data in flat text files.
6. Use software leverage to your advantage.
7. Use shell scripts to increase leverage and portability.
8. Avoid captive user interfaces.
9. Make every program a filter

Read the whole piece.

cURLing with Alfresco’s and Google’s Data APIs

Jeff Potts: Curl up with a good web script (interacting with Alfresco’s Document Manager via CMIS and Atom)

Google Data APIs: Using cURL to interact with Google Data services

Bonus: commandlinefu.com: Update twitter via curl as Function

Reading List: Getting Started with Alfresco SURF

Goal for today is to absorb the following:

AlfrescoWiki: Surf Platform

AlfrescoWiki: Deployment Configurations

benh: SURF Part 1 – Getting Started

benh: SURF Part 2 – Pages and Navigation

benh: SURF Part 3: Alfresco WCM Content

Back in February, there was a Code Camp run focussing on SURF that Jeff Potts has details of. Once you get the backing information, and can successfully build Alfresco from SVN, you follow along with exercises participants worked on.

Quotable – out of context – but worth it – on maybe why Bill O’Reilly is more popular than Bill Moyers?

Alan Kay on comp.lang.smalltalk.squeak.beginners: Re: Smalltalk Data Structures and Algorithms:

What is wrong? Why is mere opinion so dominating discussions held on the easiest medium there has ever been that can provide substantiations with just a little curiosity and work? Is the world completely reverting to an oral culture of assertions held around an electronic campfire?

That quote is going to be passed around a lot.

It’s a one paragraph penetrating question into why the Bill O’Reilly’s of the world have so much more popularity then those who pursue the fact based journalism that a Bill Moyers pursues.

BTW – Howard Rheingold’s recent post at SFGate, “Crap Detection 101” is highly recommended (via Rebecca Blood).

A Reading List: High Availability for Alfresco ECM

Start with watching the Alfresco hosted webinar: High Availability Clustering with Alfresco to get a high level overview.

Then read thru rivetlogic’s comprehensive page that includes notes on disaster recovery: Deploying HA Alfresco on Linux. This is mirrored on the AlfrescoWiki. Not sure which wiki page is definitive.

Finally, put it into practice with a working example by following Jeff Potts’s walk-thru of a simple set up to get a feel for it: Alfresco 3.1 clustering easier with JGroups.

Reference details:

AlfrescoWiki: Configuring JGroups and Alfresco Clusters

AlfrescoWiki: Cluster Configuration V2.1.3 and Later

Alfresco Webinar: High Scalability with Alfresco WCM (great information about various options)

Special thanks to Jeff Potts who answered a related query of mine on Twitter.

I’ll be sure to post progress here once I’ve a few working examples.

Reading List: Running Alfresco behind X

Jeff D. Brown: Alfresco Integration with JBoss Portal

optaros labs: Alfresco Django Integration Screencast

optaros labs: Alfresco-Drupal Integration via CMIS (Screencast)

Jeff Potts Drupal-Alfresco Integration and Alfresco’s Move to the Front-End

content here: Drupal and Alfresco

AlfrescoWiki: Blog Publishing User Guide

Notes on the Alfresco Web Content Management Evaluation Guide

This walk-thru requires 3.1 Enterprise or 3.2 Community as a prerequisite. Clean install of Alfresco seems a must. Network connection is required! Sometimes you need
to restart your machine (if you see a deploy or preview task ‘freeze up’ for
example). Note: this tutorial is far more comprehensive (and usable) than the WCM Forms Quick Tutorial posted to the Wiki. I wouldn’t waste your time with that.

  1. Download the Web Content Management Evaluation Guide from:
    http://www.alfresco.com/products/ecm/enttrial/files/getting_started_with_wcm_for_enterprise3_1.pdf
  2. Add sample website to hosts file

    127.0.0.1 admin.alfrescosample.www--sandbox.127-0-0-1.ip.alfrescodemo.net
  3. Start Alfresco and virtual alfresco server
    $ ./virtual_start.sh start
    $ ./alf_start.sh start
  4. All files required for evaluation guide are under ${ALFRESCO INSTALL DIRECTORY}/extras/wcm