lundi 23 janvier 2006

Easy JavaScript development with FireBug

Anybody that does a significant about of browser-based development knows it lags far behind traditional tools regarding debugging and productivity. Firefox and Mozilla have made some nice steps over the years, with a decent bundled JavaScript Console and DOM Inspector, the high-powered (and sluggish) Venkman debugger, and various 3rd party extensions like the Web Developer Toolbar.

In the latter camp we get a new entry: FireBug. I just installed it (but haven't yet tested it.) It advertises some features that are clearly inspired by someone who has the same annoyances I seem to have. [wink] I really like the idea of the "XMLHttpRequest Spy".

Why, oh why, can't big mammoth MS devote 0.0001% of their tools budget to improving the web developer experience? The script debugger is 3 years old, still on version 1.0, and the JS engine in IE is prone to giving useless error messages. I don't necessarily mind developing for IE, as it has some nice features, such as blazingly fast XML componentry. But the debugging facilities flat out suck.
11:45:30 AM   comment []   

CMS, Content Delivery, and product positioning

Summary: The CMS market is organized into segments. Products that think they can cover multiple segments are asking for trouble.

Tony Byrne from CMSWatch is one of the leading analysts for the CMS industry. He recently wrote a blog entry on .NET CMS packages with a tangent in the middle:

Sure, in the Web CMS space there are some mid-market products built on .NET, but they all require the CMS to run in the delivery tier -- something most large enterprises don't want to do (often for good reason, I've argued).

The link goes to an essay entitled "Is There a Gremlin in Your Website?" which discusses "GRUPA": Gratuitous Runtime Page Assembly.

Regardless of the bake vs. fry argument he discusses, it appears that the CMS market has, for a number of years, organized itself into market segments. Tony has argued for years (as he notes above) that content management/production and content delivery are logically distinct. EContent Magazine structured its recent awards categories along similar lines.

I always chuckle when I see open source CMS products that position themselves in all-enompassing ways. For example, "suited for small projects to mega-projects". It's a natural tendency to want to cover every base. But by doing so, you wind up covering no base.

In my opinion, when evaluators survey the CMS market, they have little slots pre-defined in their brains. When they pick up your package and scan the front, you win by clearly portraying yourself in one slot, which happens to be the slot they are currently looking to fill.

Again in my opinion, you have multiple ways to lose. The front of your cereal box can try to claim multiple slots, hoping to increase the chances of filling the slot they are looking for. I don't think that works. You can also lose by simply not caring to do positioning, in which case you force the evaluator to figure out which slot you go in. They're lazy, and since it's your job to do it anyway, they'll give up and go to the other 399 CMS choices.

Finally, and most egregiously, you can think you are so special, you deserve your own, brand new slot. Not only are you asking the evaluator to figure out what you mean, you're asking them to make space in their crowded brain for another slot. One they weren't looking to fill. This is usually known as the Lotus Notes problem.

For open source CMS products, picking a slot is especially critical. Open source will not go down in history as masters of conventional marketing. Since the resources for creating proper brand awareness are so thin, you have to focus those thin resources on as narrow a target as possible. Otherwise the resources are diluted into futility.

So what's the payback for doing all of this and picking a slot? Alas, the CMS market is so damned overpopulated, you're only halfway there. Let's say that you decide, "We'll adopt the standard industry segmentation, and focus on content management, instead of delivery, search, etc." That, alas, only narrows your field to a trillion competitors. The next step is, IMO, which tier.

The low-end CMS market is, I believe, traditionally thought of as community publishing, most often associated with the Nukes. Lots of choices there.

The mid-tier, which Tony has said in the past is flourishing, is web content management. Deal sizes well under $500k (software, hardware, consulting, etc.). You know you're in the mid-tier vs. the low-end if you need workflow and richer security.

The top-tier is where the dreaded "e" word shows up. "Enterprise" content management invariably means strong, well-supported integration beyond the web. You manage content in Office, basically. This isn't simply "I can convert .doc to .html". Usually this means you have a menu option installed into Word, and your product is utterly reliable when used that way. In fact, you yourself (speaking to Mr. CMS Author) actually use the product this way.

It also means, though, that your web artifacts can be used in non-web ways. Increasingly, it means that a full, Sarbanes-Oxley anal-retentive workflow can be applied to all assets, web or not.

Few products can do this level of enterprise application integration without applying copious amounts of consultingware. Few customers can really withstand the consequences of getting what they claim they want. These two points explain why the e-word might not be the hot spot of the CMS market.

To summarize where we're at, CMS products should choose which market segments they are NOT in, which one (singlular) they ARE in, and then which tier within that one segment. At this stage, you're probably down to 10 competitors. If you're open source, all 10 of those competitors have more marketing resources than you, at least in the traditional sense of marketing which is effective beyond the early market.

Crossing the Chasm discusses the different vectors for differentiation and ways to choose a niche. Most traditionally, products choose vertical industries of customers. "We're the leading mid-tier CMS for pharmaceutical" is an example. This works if your sales force has a Rolodex labeled "Pharmaceutical" and your board of directors has 2 ex-CEOs from that industry. Meaning, you have credibility and repuation in the industry and a reasonable likelihood of finding prospects.

You can also, though, choose a thematic niche (pp. 78-79 in the first edition). For example, Oracle chose the thematic niche of portability and Sun chose the thematic niche of "open systems". The upside is that you can get first mover by creating awareness of for that theme. The downside is that you have to have enough cash in the bank to create awareness for that theme, or some non-traditional way to attract attention.

Apple has positioned itself with a thematic niche that is paying dividends. I saw a nice expression of this recently, regarding the upcoming competition for digital consumer stuff: "With its DNA wrapped around simplicity, Apple[base ']s represents a far better bet to succeed in its effort."

DNA wrapped around simplicity. The CMS industry is fairly mature, but remains very fractured. After all this time, customers are still dissatisfied. Why? Is the reason that customers really, really want expensive, ever-more complicated "enterprise" products?

Maybe they want less. I suspect an important segment of the the mid-tier would be willing to dial back on heavy artillery in features/architecture, in return for something that is cuddly for civilians and works, out-of-the-box, without any surprises whatsoever. Emphasis on the "cuddly for civilians", as many CMS products seem written by people that don't use the software they write.

Hundreds of CMS products out there. What to do with your product? You can avoid hard choices and simply expect your divine superiority to be apparent to all. Another choice: pick a segment, a tier, and a niche with a unique key selling point. After doing so, ignore (on strategy) everything else until you dominate that sweet spot.
10:04:17 AM   comment []