Articles specific to Oracle software products, including the former Stellent product line

Oracle UCM jQuery Plugin for AJAX

I recently put together a jQuery plugin for Oracle UCM, and thought I'd share. This connector allows you to use jQuery to make UCM Service calls through AJAX, and easily display the results. This is 100% pure JavaScript, no Java, Idoc, or ADF required! You can download the plugin from the Bezzotech library page.

You will need to be familiar with jQuery before you can use this plug-in. You can start with the jQuery tutorial at W3Schools.

This plug-in is essentially a collection of wrappers around the $.post() method in jQuery, to allow you to more easily make AJAX calls to Oracle UCM. For example, in order to make a "Test Connection" button to call the "PING_SERVER" service, and pop-up a status message, you'd use code like this:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript" src="jquery.oracle-ucm-1.0.js"></script> <form> <button id="pingServer" name="pingServer">Test Connection</button> </form> <script> $(document).ready(function(){ $("#pingServer").click(function(){ var testData = { IdcService : "PING_SERVER" }; $.ucm.executeService(testData, function(ucmResponse){ var msg = ucmResponse.getValue("StatusMessage"); alert(msg); }); return false; }); }); </script>

Notice how we have to pass function(ucmResponse){} as a parameter to the executeService method... and then fill that function with the code we want to run after the request completes. Also note that we are passing in functions as parameters to the button's click event, and to the document's ready event. Passing around functions in this way looks quite odd if you're used to object-oriented languages like Java... but it's standard operating procedure for jQuery and AJAX.

The ucmResponse object is a standard JSON data object, with the following convenience functions added:

  • getValue('value') looks in the LocalData and the ResultSets to get a value from the response.
  • getRow('resultSetName', index) gets the row in the specific ResultSet at the specific index as an associative array (hashtable) of name-value pairs.
  • findRowIndex('resultSetName', 'column', 'value') returns the first row index in the result set where the column equals the specified value.

There are more examples and instructions in the download. If you have any suggestions or requests, please leave a comment!

What Almost Everybody Gets Wrong About Collaboration

I've used dozens of collaboration systems... none of which really stood out to me. It wasn't that they were difficult to use, it's that none of them actually solved the human problems that limit our ability -- and our desire -- to actually collaborate.

It wasn't until recently that I came across a talk from Clay Shirky, which explained pretty well what was missing... Clay spoke about human nature and software and asked a very important question: why do some kinds of sharing work well, while other fail?

Well... one reason is that according to anthropologists, there really is no one thing called "sharing." We humans -- like all primates -- have three distinct ways that we share... and our brains are wired to do different things based on what kinds of sharing we are doing.

For example... I want you to imagine that a little old lady is walking up to you on the street. She makes direct eye contact, and gestures that she has a question for you. I want you to take a deep breath and genuinely imagine that she asks you one of the following three things... and take note of your emotions:

  1. she asks you for money,
  2. she asks you to help her cross the street,
  3. she asks you for directions to the bus stop

If you are like most primates, your initial gut reaction to #1 is something like "NO! MINE!" Your gut reaction to #2 is "eh... OK..." And your gut reaction to #3 is "Absolutely! I'd be happy to!"

Why??? All three are sharing, aren't they? Not quite... millions of years of evolution have wired us to react differently to different kinds of sharing. The examples above each demonstrate one kind of sharing:

  1. Sharing Goods: the gut reaction it to feel bad when you give somebody else your goods... because then you can't use them anymore, and you might not be able to replenish them. Even generous people have this initial reaction.
  2. Sharing Services: people are more generous with favors, because they don't lose anything physical... merely their time. However, before sharing your time, everybody does a little mental math. Do I have the time? Is this worth my time, or should I delegate to somebody else? Shouldn't I be compensated for my time?
  3. Sharing Information: people are most generous when it comes to sharing information... it takes little measurable time, it costs nothing, and sharing information makes us feel good. We feel good, because we feel like we've helped out one like us, and made the world a better, more knowledgeable place.

Clay used the example of Napster to illustrate his point... it took a goods sharing problem (can I have your CD?) and a service sharing problem (can you make me a mix tape?) and turned it into an information sharing problem (can I download all your already ripped albums?). People were sharing their albums online because it made them feel good.

Like monkeys with iPods...

The problem with most collaboration software is that collaboration software relies too much on "service sharing" to get people to take action. I post some information on a place for "sharing" and to make it better through input from others... but in order for that to happen, first you need to read it and understand it. That's sometimes not a big deal, but in many cases it's a significant time investment.

To make matters worse, some of these systems even make it difficult for you to do the mental math for you to determine whether reading my document is worth your time... Is this for an important project? How important? Do you need my expertise for all of this, or just a few pages? Should I be charging your department for my time? Not only is this still a "service sharing" problem, but a pretty tough one at that...

Ideally, a good collaboration system would obey the 2 minute rule. Getting information is still something of a service... but if it's a service that can be performed in under 2 minutes, it will probably "feel" more like an information problem... which makes it more likely to be done. If it takes more than 2 minutes, then it feels like a service problem, and then we're back to the mental math problem...

Getting down to the 2 minute rule is tricky... you could opt for a system like Aardvark, which tries to match simple questions with the right person to answer it... Alternatively, you could force people to jump through a few hoops first before asking a question; essentially making it easy for people to answer your question. If people can estimate the difficulty of the task and the value provided by the solution, then it's easier for them to do the mental math for the tougher problems.

Neither of these are new concepts... in fact bug tracking systems for successful open source projects use a blend of both. They'd have to, or their entire model would collapse! Although I have yet to see any enterprise level collaboration system truly adopt these concepts... probably because the enterprise is something of a captive audience. If you're lucky youll have a system that focuses on ease-of-use and good training... but adapting to human behavior isn't always high on the list. Would people still use your collaboration system if you didn't pay them? Probably not... which usually means a problem...

Hopefully the big push to "Enterprise 2.0" solutions will get more software companies thinking about making software that's a natural extension of human behavior... Maybe in a few years we'll have Aardvark for the enterprise... but I'll take my standard curmudgeony "wait and see" attitude ;-)

The World's Oldest Computer

Sometimes people ask me, "what does your company's logo mean?" When I founded Bezzotech 4 years back, I wanted a symbol that says "high-tech and new", but also something that says "old school rocks!"

After a bit of thinking, I realized the answer was simple. There was only one appropriate symbol, the computer invented by the ancient Greeks: the astrolabe.

An astrolabe is essentially an analog calculator. You would set it according to your latitude, and point the rule at a well known object in the sky: the sun, the moon, the north start, etc. Depending on what you picked, you could calculate the time of day, the time of year, or your location. It could be used for things as simple as calculating when to plant your crops, or as complex as a geographic survey of an entire city. Advanced ones had charts on the back to help with math calculations, and conversions.

It was originally invented in Greece in approximately 150 BC, and spread quickly through Europe and the Middle East... They aren't very common today, but 2000 years ago they had approximately the "cool factor" of the iPhone. One Persian astronomer wrote a book on the 1000 different uses of an Astrolabe. Technically, the astrolabe has more apps than the Google phone...

You can make a simple astrolabe using paper or wood... but of course the most beautiful ones are made from brass. In the old days, an educated person would not only know how to use an astrolabe, but they could build one as well. This presentation from the TED conference covers how it was used, and how amazingly resourceful our predecessors were with them:

So what do you think? Does my logo look like an astrolabe, or is it just a cool gear thingie?

Bezzotech and IRA Merge Into One!

This shouldn't come as a surprise to my clients, but it might to a lot of my readers...

About 6 months ago, Jason Clarkin (from Impement R Advantage) and I had discussed joining forces. We talked a lot about the kind of firm we could build together, and what kind of new software we could create. We started working very closely together to make sure our business styles were similar, and that our skills complimented each other's well...

Once comfortable with that, we decided to pull the trigger an make it official. We are now one company!

We decided to make the big splash at IOUG Collaborate... together, our company is giving three UCM related talks this year:

  • Sesion 418: The Top 10 Things Oracle UCM Customers Need To Know About WebLogic. Tuesday, April 20 3:15 p.m.
  • Session 422: UCM as the Repository, Presentation Layer of Your Choice: The Future of WCM. Wednesday, April 21 8:00 a.m.
  • Session 107: Impact of Oracle UCM on Organizations. Thursday, April 22, 11:00 a.m.

Also, be sure to swing by our booth: #1743. We're right by the big Oracle booth near a few other UCM vendors. See you there!

Should Product Managers Know How To Code? Steve Jobs Couldn't...

Last week I was in a spirited debate with @jkuramot over at The Oracle AppsLab about whether or not Product Managers need to know how to code.

Jake says yes, I say no... Primarily because we disagree about what a product manager actually does...

First, I think I should answer the question, what the heck does a Product Manager do all day long??? Most of the time when my wife tells people she's a "proDUCT manager" they think she's a "proJECT manager"... which isn't even close. I've met quite a number of Product Managers, in different industries, and I can safely say that most of them do significantly different tasks... And many of them disagree on what their main focus should be.

Why such contention? The best explanation I ever heard was this: a product manager is more or less the CEO of a product line. Which means that pretty much anything that will help your product, you should do... which means a million different things in a million different situations. In order to be successful, you need to know a little bit of everything -- what features to add, what new markets to attack, what sales people need to sell -- in order to be an effective Product Manager.

Rich Manalang did not like that definition, saying it was too broad... he preferred the idea that a Product Manager is responsible for just the "life cycle" of the product. In other words, vision, design, creation, testing, support, and end-of-life decisions. In my opinion, this definition is far too narrow... it's far too "developer centric" in that you focus mainly on new features, training, and support... but neglect such very important things like what effect does the existence of this new product have on the rest of the company? An individual Product Manager might not know this... but hopefully somebody on the Product Management team does! If not, then nobody is building the path between a successful product launch, and a successful company.

If the Product Manager isn't responsible for that critical task, then who the heck is???

Back to the original question... do technology product managers need to know how to code? I say, emphatically no... It's a useful skill to have, don't get me wrong... but I disagree that it's a requirement for everybody on your product management team.

Let's be clear -- programming skills are primarily useful to a Product Manager as a communication technique. A prototype speaks volumes about what features people want... but that's about the limits of it's usefulness to a Product Manager. And, of course, if you are a good communicator, you can certainly do without it.

"the three great virtues of a programmer: laziness, impatience, and hubris" -- Larry Wall, inventor of Perl

Now... what if you are a Product Manager in charge of lazy, lazy developers? This happens. Maybe you want a feature, but the developers don't want to add it. So the developers give you the run-around so they can go back to playing Halo. Well, in those cases it helps to know how to program, so you can call out your developers for being lazy virtuous... but this only works if you know a great deal of the existing code base as well! Just because it works in a prototype, that doesn't mean it will work when integrated into the product.

"When it comes to understanding code, if you wrote it 6 months ago, it might as well have been written by somebody else" -- Ancient Geek Proverb

Knowing the code base is a pretty hefty requirement... even seasoned developers don't know everything about their product... so it would be nigh impossible for a Product Manager to do so. It's more important that their minions think they know the whole code base, to try to keep the lazy virtuous developers honest. The best technical Product Managers know ho to "dive deep" into the product, and know well a handful of obscure but important details about the system... this inspires a healthy amount of fear.

Ultimately, Product Management is so important and so difficult, that it's almost impossible to find all of the skills you need in one person. Small companies do this, but as companies grow, they usually break it down into three teams... it's occasionally useful for the "technical" Product Manager to know how to code, but this rule does not apply to your whole team.

If you're looking for more info on this subject, I've heard great things about the Pragmatic Marketing Framework for designing a Product Management team.

Why People Just Don't Pay for News

CMS Report has an interesting rant about micropayments, and how they never got off the ground... many people have tried to convince me to pay a quarter or a nickle to view their online content, but I've never done so. Every few years, somebody comes up with some master plan based on the theory that "this time it's different!!!" But sadly -- and totally predictably -- they failed.

Why don't people pay for news? Because the most powerful word in marketing is "Free." No matter how little you charge for "quality" content, if somebody else is offering a reasonable substitute for free, you will always lose.

The latest "big idea" in this history of failures is Rupert Murdoch's attempt to charge for their online content. Some folks see Apple's new iPad as a game changer here, perhaps shaking up the market and getting people to pay for quality content. I'm skeptical... Yes, the iPad is pretty, and yes it is probably the best possible platform that "paid content" could ever hope for... but that doesn't change the economic realities.

Yes... the Wall Street Journal's articles might be exceptional... they might be light years better than what you can find for free on blogs and Bloomberg.com... but how can Murdoch prove to a skeptic that "paid-for" content is worth the extra cost? Unless they give away the whole article for free, nobody can judge it's quality. Also, just because one article was great, does not mean future articles will be great... Finally, if it really is a great article, people will blog about it, or editorialize about it, after which I can find a decent summary elsewhere.

People just don't have much brand loyalty to information sources anymore... Whoever gets it to me in the way I want it, will win my loyalty for today... but once you're boring, or ask me to login, or ask me to pay, then I might take my eyeballs to one of the other bazillion sites out there.

News is a commodity, and therefore subject to the economics of commodities. There is a little bit of profit in their creation, but much more in their distribution. In the past, the newspapers owned their distribution channel: printers, packers, delivery trucks... heck, the New York Times even owns their own forests and paper mills! The majority of their expenses are spent maintaining their distribution channel, not in paying people to write quality content.

Rupert Murdoch whines very loudly that his content is valuable and Google should have to pay to spider it... what he's really saying is that he's mad that the internet has made his distribution channels less profitable. If Fox truly cared about creating "quality content," they'd probably drop half their sitcoms.

Is there a way to save newspapers? Sort of...

Obviously, companies with good content need to get into the new distribution channels if they want to survive. The NBC/Comcast merger is a good example... although as a consumer I'm not a fan of so much power being in one single entity. I hope other companies get into the residential high-speed internet business so we have more competition... I'm happy to see that Google is getting into the residential ISP business, and I hope to see more competition soon...

In other words... The New York Times and the Wall Street Journal will survive... but their distribution channels will not. The sooner they get out of the dead-tree-scattering business, the better!

I Called It! Google Acquires "Social Search" Company Aardvark

Man... I was just blogging last week about how social search systems like Aardvark would completely change the dynamic of search engines... particularly for mobile users. I said that it was perhaps the best sales model for folks like Twitter and Facebook to challenge the dominance of Google.

Well, too late boys! Because it appears Google just acquired Aardvark. I anticipate Google will be using their standard ad-engine to target Aardvark users... and probably use it to make their mobile offerings more socially aware. This will continue to cement Google's place as the #1 search engine, and gives them a pretty cool foot in the door of actually taping into the useful aspects of your network of friends.

@Twitter: next time you should be faster! Maybe if I tweeted my advice in 140 characters instead of doing a well-thought-out blog post, they would have been able to beat Google to the punch.

Apple iPad: Another Reason HTML5 will Beat Flash

Many people have been using Adobe technology for next generation "rich internet applications." Many folks -- myself included -- have warned against this kind of behavior. Flash is a stopgap solution with a lot of cool features, but it would be unwise to use it as a long-term standard. I mentioned earlier in my HTML 5 versus Flash/Flex post, that enough of these flashy features will be a part of HTML 5 and WebKit enabled browsers... so you might want to start pushing them as a requirement.

Another reason why you should avoid Flash? The new Apple iPad.

The jury is still out about this one... Steve Jobs says it's the most important accomplishment of his life, while haters are bashing it almost as much as they bashed the original iPod. Personally, I'm disappointed in its lack of a camera or voice recorder. Other than that I'll have to kick the tires on it a bit.

However, some folks are shocked that the iPad will not run Flash or Flex applications! You know all that time and effort you spent making flashy gizmos for your web app? Well, get ready to do it all over again... because the new iPad does not run Mac OS X. It runs a modified version of the iPhone OS, which never, ever, ever supported Flash... and there are zero plans to support it.

Likely, the future is going to be CSS, JS, and HTML 5. Yes, I know Flash fanboys will say that those technologies are just plain awful when you want total control over the look and feel across multiple browsers... and they are 100% correct. But, sorry to say, it's not always the best technology that wins.

UPDATE: it appears that Steve Jobs has gone on records about why the iPad and iPod will NEVER support Flash. Steve-o brings up a few more reasons I did not cover here: Flash is a power hog, it doesn't support "touch" interfaces, and it crashes a lot. Steve Jobs ends with a plea: Adobe should use its brainpower to make a cross-platform IDE for HTML5, and stop trying to cram Flash down our throats. If they don't, then the "next Adobe" certainly will...

Social Search: How Facebook And Twitter Can Conquer Google

Oreilly has an interesting article about the future of search engines...

It was prompted by the annual report by Aardvark, which is a pretty cool little startup. It's similar to Google Answers and Yahoo Answers, where you can ask any question and it will get you an answer. Sounds simple enough, but the devil's in the details. One thing that impresses me about Aardvark is that they really seem to "get it" when it comes to social search: people aren't looking for THE answer, they are looking for AN answer. They call this the "village" model, as opposed to the "library" model preferred by Google.

Aardvark uses your profile to learn a few things about you: where you live, interests, hobbies, etc., and then tries to find a similar person in their network to answer your question. It also connects with Facebook to figure out a few more things about you... who your friends are, what they like. Essentially, what your "villiage" is. Once it figures out what virtual village to put you in, it forwards your question to somebody likely to answer. If you ask a question about cameras, it forwards your question to some local camera experts who have been helpful in the past.

Sweet...

I'm impressed with the technology in general... also the participation rates are amazing. About 88% of questions sent to Aardvark got answered, and 75% of people who asked a question also answered one. Most interesting, is how mobile users were the ones asking the most questions. Sure, if they were sitting at their computer, the might fire up Google, or an IM client, or dig through their email archives... but despite all attempts to make them usable, mobile devices are still terrible at user input. Also, the

When you're out and about, and want to know where the best place to park is, how would you find that out?

If you have a smart phone, You could Google around to find a forum about the best parking spots in your specific city. Then scour through the archives, and find your specific location... or you could just send a text message to Aardvak, and hope somebody answers.

Most enterprises probably would not need something like this... they would probably be better served with a dedicated "help desk" support staff to keep track of common questions and who knows what. However, I could see this being huge for the general public. It could potentially be the revenue stream that Facebook or Twitter have been waiting for. Or, it could be gobbled up by Google as a pre-emptive strike.

I'm just waiting for the bidding wars to begin...

Should You Trust Your Integrator To Pick Your Vendor?

CMS Watch was recently asked should I let my implementation consultants pick my ECM vendor? That's a pretty tough one to answer. On the one hand, your system integrator would have a fairly informed opinion about what software would work best for your problem. On the other hand, they may have a financial incentive to push you towards one vendor over another... so even if the vendor merely guides the process, there could be danger. A biased consultant will generate a biased RFP which may intentionally favor one vendor over another. I've seen it happen many times.

Hopefully I will not alarm anybody when I confess my bias is usually towards Oracle software. I have this bias for a few reasons:

  • they have good products that are easy to install and scale well,
  • I know their products the best, so I'll be able to implement an Oracle-based solution faster than a non-Oracle solution,
  • I have a great working relationship with Oracle

This last point is more important than most people realize... The CMS Watch article focused mainly on the negative aspects of a close relationship... but there are several positive ones as well. The main one being that enterprise software is typically very complex, with all kinds of hidden features and tricky undocumented configuration. If you or your implementation team has a close relationship with the vendor, you'll be able to extract much more value out of the software you purchased.

So, what's the "fair" solution? Kick out anybody with bias? Not quite...

I usually recommend that clients get unbiased feedback to do the initial selection... The biased person should not be involved here, because they may favor products that are a bad fit, simply because it's "what they know best." However, after the initial selection, the problems changes a bit. At this point, any of the top 3 should suffice... so the question now is which one will make your team the most successful? At this point, biases are ok, as long as they exist because your TECHNICAL team knows and loves the product. If they are familiar with it, comfortable with it, and know how to maintain it, then let them go with their gut... even if it seems like "bias."

You shouldn't be afraid of technology biases: they are there for a good reason... you just need to know when to keep them in check to avoid making a costly mistake.

Finally! Oracle Gets Approval for Sun Acquisition!

Well, that took long enough! The European Union finally approved the merger... so now it's official that Oracle owns Sun (and Java!). Oracle is having a press conference about their Sun strategy this Wednesday, January 27, at 9am Pacific Time. They covered a lot of this at Open World 2009... but now I guess it will be official.

They probably won't announce the inevitable layoffs at this talk... although some speculate that 50% of Sun's workforce is redundant after the merger. I'd expect them to talk big about the Exadata V2 hardware... maybe something about pre-packaged Oracle "appliances." It would be cool to have a database in a box, or something akin to the Google Search Appliance for their secure enterprise search.

I'd also expect some talk about virtualization... ever since the BEA acquisition, Oracle has owned a very interesting virtualization solution. I'm not talking about their Linux VM; I'm talking about their Java VM. Instead of making a virtual machine of operating systems running J2EE application servers, BEA had a solution that virtualized just the application server without an operating system. Leaner, meaner, fewer security holes, and much easier to maintain. Oracle has kept pretty quiet about this technology... I'd expect it to be touted a bit more.

What's your feeling? Does anybody out there think Oracle will make an earth-shaking announcement? Does anybody think their strategy will be significantly different than what they have strongly hinted at last year?

AIIM Launches a Request For Proposal (RFP) Template for ECM

Ah, the dreaded RFP... the big giant document that you hope asks all the right questions from an unbiased point of view... difficult to write, and difficult to respond to. I myself prefer proof-of-concepts and bake-offs to RFPs... but RFPs are pretty good at weeding out the people and products you don't want.

Well, good news for folks in the ECM universe! The AIIM organization has drafted a ECM RFP Template that you can use to generate your RFPs. It's $79, but probably worth it if you are new to ECM and need to know what questions to ask. Experienced ECM professionals might not need it, but it's probably still worth checking out to see if the template suggests asking questions that you don't...

If you have feedback, they appear to have a discussion thread on Information Zen to help make it better.

My Latest Podcast on Oracle Technology: ECM, Collaboration, and Enterprise 2.0

Recently Brian Dirking interviewed me for an Oracle Authors Podcast on content management, collaboration, enterprise 2.0, and other topics of interest... You can download the MP3 and listen at your leisure. Questions include:

  • What is "infoglut?"
  • Is it fair to say most people fall short of true enterprise-wide content management?
  • How do you see "Social Media" affecting ECM?
  • What's the difference between content management, collaboration, and enterprise 2.0?
  • What's the difference between a "process worker" and a "knowledge worker?"
  • Where is ECM going in the next 5 years?

If you've read my blog or my books, I'm sure you know that I have a fairly strong opinion on many of those topics... at one point the producer had to interrupt one of my rants because we were running short on studio time. ;-)

Top 10 New Years Resolutions for ECM

A lot of folks are doing end-of-year predictions about what will happen in 2010 in the Enterprise Content Management universe. In general I'm not a huge fan of making predictions on the future of technology... the easiest way to predict the future of technology is to build it. So instead of countering their predictions with mine, I thought I'd share a list of ten new years resolutions for ECM geeks:

1) Test Your Disaster Recovery Strategy!

Yes, you probably have a decent backup strategy... but are you sure??? When was the last time you tested it? If you haven't tested your disaster recovery strategy, then you don't have one. What if your server melts? How long would it take to recover? What if your existing backups are corrupted? What if your database gets hacked and somebody deletes all your tables? Test your existing what-if scenarios... and then add one more to the list!

2) Install Necessary Patches

Are your security patches up to date? Or is there some annoying little bug that's driving you nuts, which might be fixed in a newer version? It's probably a good time to take stock of where you are, and where you'd like to be... Oracle Metalink has some pretty good advice on How To Maintain UCM and How To Maintain Site Studio. After doing the minimum, think a bit about where you'd like it to go next.

3) Learn About At Least One New ECM Feature or Technology

ECM is a fast changing field... do you know as much as you need to know about records management? How about the new features in Site Studio 10gr4? Have any new connectors been released that might make integrating ECM into your systems easier or more useful? How much do you know about Web 2.0 and Enterprise 2.0? Make a commitment to read a book or at least some blogs about something new in the ECM universe, and how it can benefit you.

4) Calculate Return-On-Investment

Some ROI is based on fairly hard-cost numbers that are easy to calculate... How much less printing and shipping did you have to do this year? Did you save money on warehouse space by scanning documents instead of keeping paper copies? Were you able to lower call-center volume with a self-service web site? Were you able to save on legal costs because your system was easier to audit?

Other kinds of ROI are harder to calculate... for example, how much time did you used to spend looking for documents, compared to now? Were you able to more effectively collaborate? Were you able to avoid problems and spot new opportunities because you had more information at your fingertips? These kinds of calculations might have to rely on soft numbers, and some end-user surveys.

5) Retire Outdated Systems

The primary value of ECM is that you can use it as a central repository for all your content... but all that value is wasted if you keep those old systems around. Commit yourself to retiring at least one outdated system. Go for the low-hanging fruit: something with useful information, that is difficult to use, and easy to replace.

6) Determine What Content Is Popular

It is always a good idea to keep statistics on what content is popular... not only does it help you determine what information is useful to your audience, it's also a great way to encourage user adoption. If you knew that your content had a below-average popularity amongst your peers, you might take some more care to make your content easier to understand, and easier to find. In other words... once rankings are public, people use less jargon, and better metadata.

It's also a good way to determine what content needs to be updated... if a one year old document is extremely popular, you might want to kick off a workflow to get the original author to make a new version.

7) Perform a General Audit Of Your Repository

Run a few performance tests on your site... spot check your users to make sue their security credentials are not too generous... see if you can simplify your workflows so they are faster... check your repository to see which metadata fields are always left as the default (a good sign that nobody uses them)... see if you can simplify your security and metadata model a bit...

8) Run Formal Usability Tests

There are a lot of great ideas on usability tests in Don't Make Me Think... but my favorite is also the most simple:

  • Come up with 10 or so common use cases for your system: why would people use it?
  • Collect 10 novice users who have never had any training on your system
  • Ask them to perform these 10 simple tasks, and don't give them any guidance
  • Videotape them
  • Force your developers and administrators to watch every minute of the tape!

Trust me... there are few things more painful to a developer than watching people click the wrong button... it will haunt them in their sleep until they make the system easier to use. Especially if you threaten to make them watch it every day until it's fixed.

9) Documentation!

Admit it: there is a little bit of black magic in your setup. Some customization you wrote, some script you hacked together, some configuration flag that nobody else knows about... Commit yourself to documenting at least three features of your solution that would be difficult for people to figure out n their own. And then -- of course -- check it into your ECM system!

10) Give Back To The Community

Got an idea for an ECM blog post? Maybe a nice presentation topic for local user group? How about some quick tips and tricks that you can share on the Oracle ECM forums and mailing lists? Then please share! At the very least, show up to local user groups and network with your fellow ECM practitioners... ARMA, and IOUG all have local groups worth checking out.

Software is like a lot of creative endeavors: the very best always create more value than they take. Which is a good New Year's Resolution, no matter who you are ;-)

Why CMIS Won't Be A "Real" Standard

As mentioned by pie guy, the Content Management Interoperability Services (CMIS) standard has reached version 1.0 status... and is open for public comment. As I mentioned before, I'm a fan of CMIS, and I think it is a decent start at making content management systems more interoperable... especially for folks creating vertical applications on ECM systems.

For example... Let's say you want to make a killer application for scanned medical records. Your content needs are pretty basic: just a big image with some metadata. You might need external engines for workflow and identity management, but the content problem is simple. In this case, a good idea it to code your application in middleware, and use CMIS as a content storage interface.

However, I'd like to make one point very clear: if you think that CMIS will turn into a "standard," get used to disappointment.

Now... why would I say such a thing?

It could be because the past decade has seen a half dozen Enterprise Content Management standards come and go -- ODMA, SPI, WebDav, JSR170, JSR283, etc... so I might just be a skeptical curmudgeon who won't cut anybody slack and is adopting a "wait and see" attitude.

It could be because ECM is a marketing term; not a specification... so every vendor does something fundamentally differently. Some of the big points can be addressed by a spec... but no matter how hard we try, those fundamental differences can never be included in a standard. All abstractions are leaky, and all attempts to hide complexity ultimately fail when you attempt anything interesting...

Or, it could be because those precise difference are exactly why a customer chooses one ECM vendor over another... They didn't just spend a ton of money on an ECM system just so you could treat it like a big hashtable... Even if a customer demands that their system supports CMIS, that doesn't mean they will actually use it. Support for CMIS more than anything represents a commitment to interoperability... and that you can use it for content migration.

But the real reason I say CMIS will never be a true "standard," is because Microsoft is involved.

Microsoft has a long, long, long history of saying they will follow a standard, when in fact all they are trying to do is force everybody to do it "their way." While true believers try to religiously follow the spec, Microsoft will do whatever makes sense for their product direction... and then say to everybody "you want interoperability? You'd better do it my way. Ha!!!"

Now, this isn't always a bad thing. When Microsoft's Internet Explorer went their own way with HTML, some of their ideas were horrible... but others -- like innerHtml and AJAX -- forced the concepts of dynamic HTML on the public. Likewise, some of the LDAP extensions they put into Active Directory made pretty damn good sense... although their extensions to Kerberos encryption make me skittish, especially since we're not allowed to view the source code.

Well, how should we think about CMIS? If you want to avoid lots of pain and heartache, don't think of CMIS as a standard; think of it as a contract signed by Microsoft, that they might change at any time. When Microsoft pushed the WebDAV standard, they made sure that common Microsoft products -- Word, Excel, Windows -- followed (most) of the specification. This does not mean that you have to follow the specification to the letter... just follow it enough so that you can integrate more easily with Microsoft products.

Naturally... Microsoft will probably find all kinds of limitations to the CMIS spec later on. This could be because there's a gap in the spec, the spec is limited in some real-world situation, or they just flat out don't care anymore. If history is any judge, that means their next move will be to violate the spec. While spec purists at IBM/OpenText/Documentum complain, Microsoft will happily make Word 2012 do something completely different... and break interoperability.

Expect it my friends...

So... for that company making vertical applications on top of ECM, my advice is this:

  • CMIS is a good start, but a true ECM standard will always be a work in progress
  • Expect Microsoft to follow most of the spec
  • Expect Microsoft to break the spec in both wonderful and horrific ways
  • Expect to spend a lot of extra time finding the magic voodoo to make Microsoft work
  • Expect half of your feature requests to be outside of what CMIS can do

This advice is partly mine... and partly the battle wounds from Oracle/Stellent developers who worked on making WebDAV work properly...

No Wonder ECM Confuses People, Part 2

Back in January, I blogged about how the wikipedia entry for Enterprise Content Management was a bit thin... it was tagged as unclear, poor grammar, and in need of expert cleanup. Well, I checked again, and it appears to have gotten worse since I last checked:

Now in addition to being confusing, unclear, and grammatically incorrect... it's also using peacock terms, and is now written like an advertisement.

I'm not sure what to think of this... Is it a turf war between the marketing departments of the big firms? Is it that nobody outside of marketing cares to explain it to a layman, and they can't help speaking in marketing-ese? Personally, I've avoided writing anything there because I know my biases, and was hoping that a neutral expert -- like AIIM -- would take ownership of this page... or maybe some up-and-coming blogger who wants to make a name for himself.

New Oracle UCM Webcasts

I just got word about two new Oracle UCM webcasts next week, and thought I'd share!

The first one is on Paperless Personnel Processes... try saying that 5 times fast! If you are interested in making you HR processes involve less paper, this webcast should have lots of good tips and tricks for those of you with Peoplesoft, and would like to integrate it with Oracle UCM. Its next Tuesday Nov. 17th, 10 a.m. PT/1 p.m. ET.

The second one is on Enterprise Document Management. It will offer tips and tricks for paperless order management, asset management, and accounts payable. If you are an E-Business Suite customer, I would highly recommend this one. Its next Wednesday, Nov. 18th, 10 a.m. PT/1 p.m. ET

These are live webcasts, and I don't know if they will be recorded. So register, watch, and grill the presenters with tough questions ;-)

Oracle UCM Security: Challenges and Best Practices

I recently gave a security talk at the Minnesota Stellent User's Group... Stellent of course being the old name for Oracle Universal Content Management. I uploaded it to Slideshare, and embedded it below:

This talk is a variation on a talk I gave at Crescendo a few years back... it covers the security risks and vulnerabilities inside Oracle UCM, and countermeasures to prevent break-ins. This talk is not a how-to for integrating LDAP, Active Directory or Single Sign On... rather it's intended to be an introduction to cross site scripting, SQL injection, and other common web application attack vectors. It's a bit scary for a while, but then it tells you how to prevent attacks.

Enjoy! And don't be evil...

Free 10gr3 Component: Add Tool Tips to Metadata Fields

I recently got a question from a customer about how to add tool tips to metadata fields. Like if you had a field named "Comments," you could float your mouse over that field, and you'd see a small popup with a description of that field. I said, no problem, just set this flag in your config.cfg, or as a side effect to a profile rule:

xComments:description=Comments about this content item

No different than the isHidden or isInfoOnly flags. Unfortunately, it didn't work...

I thought that was built into the core, because I distinctly remember making that feature myself. Or more correctly, I made a component called ProfileExtras which added a whole bunch of useful features to the 7.5 Profiles functionality... including this. I thought I rolled that into the core for the 10gr3 release, but I left Stellent before Oracle released UCM 10gr3...

I thought about telling the customer how to do it... but I realized it would take about as much time to do it myself, as it would to describe to somebody else how to do it... So I whipped it out, and put it in the Bezzotech Library:

  • Tool Tips : A simple component that adds tool tips to metadata fields, so contributors know what to put in the fields.

Hopefully others find this useful as well...

Garnter Sued for $132 Million for Saying Mean Things

OK, this is just nutty...

A tiny Silicon Valley software vendor is taking on mighty Gartner, one of the technology industry's largest and most influential market research and consulting companies. The battle is playing out in a San Jose federal courtroom, where ZL Technologies is asking for $132 million in damages (plus even more in a punitive judgment), saying the research outfit damaged its prospects by ranking it in the bottom segment of its closely watched Magic Quadrant report. The MQ divides technology providers into different classes, with the bottom segment essentially forming a "do not buy" recommendation.

Blogger reactions are varied... but I agree that this is a pretty silly lawsuit.

ZL Technologies makes an email archiving product, and Gartner is not impressed with it... so in their opinion they call it a "niche" market player. Since in the US we have a little thing called the first amendment, this suit should be just thrown out. Unless Gartner is guilty of some kind of fraud... but I'd doubt it. They're too big of a firm to take that risk.

Besides... calling a product "niche" is hardly an insult. Stellent was once "niche", then "visionary," and after many many years it made it to "leader". "Niche" hardly means "do not buy," it simply means that the product might not be suitable for some industries, or some uses. In order to be a "leader", you need an innovative product with a good strategy, and a large enough organization to ensure the product will be around for a while (and not gobbled up and shut down by Open Text). Even if you have the best technology in the world, if you don't have a future vision, and the ability to grow your business, you're going to be called "niche."

I disagree with Gartner frequently -- mainly because they focus a bit too much on the "ability to execute" angle, and they do tend to ignore open source a lot... but this lawsuit is just ridiculous.

Recent comments