September 2, 2010

So it's been a while since I've last posted. A long while. It's been intentional.

As some of you may know, I've been working on an app, tentatively called Ticket Agent. I'm hoping to make this a widely available SAAS (software as a service) application for work management.

I'm quite aware that the work/project management space is a crowded one in the SAAS area. The most dominant player is probably 37signals' BaseCamp. It's an excellent product. Ironically, listening to their audio version of their book Rework inspired me to build my application. It's been an application in my head since maybe 1998, and I never got around to building it.

Some history: Many, many years ago, I worked on a Web 1.0 product like Basecamp but a little too far ahead of its time. We released it as a free and rentable multi-tenant product, but this was in 1998, and the idea of SAAS barely had any traction. Needless to say, the product got killed, and that was the end of it.

So I've been fleshing together Ticket Agent over the past few months, and of course, there have been bumps along the road. It started off as a LAMP stack app (Linux/Apache/MySQL/PHP for those not in the know) and has evolved into a Ruby on Rails / NoSQL (MongoDB) app along the way.

The major platform pivot resulted in me wanting to take advantage of the cloud services available, and the change to a NoSQL database was driven by the idea that I didn't want to be saddled with database schema migrations every time the data model changed. Perhaps I'll talk in more detail about my database decision in a future blog post.

In any case, back to the app. The application is a "ticket" based application (hence the name). While most people will associate tickets with an issue or bug tracking app, I took the philosophical view that a ticket is the best way to assign a unit of work to a team member.

I mean what's the real difference between a ticket and a task other than the ticket number? Not much, really.

Being a ticket-based system, however, isn't the differentiator for the application. This application is designed to scratch an itch I've had working on and running projects. The primary problem I've had is status.

I hate compiling team member status reports into client status reports. I've used various systems, including BI tools like Cognos, but there was always just a little too much work involved with that. Add to the fact that most consultants hate doing status reports themselves. So then as a manager, you're stuck cracking that whip chasing people down for status reports and then spending time compiling them into reports that your clients can consume. Not fun at all.

But it's not just project status that's an issue. Here are some of the time consuming status items that a typical project manager needs to keep up on (in no particular order):

  • Where are my team members today?
  • What are my team members working on today?
  • What is the progress of what my team members are working on?
  • What are the upcoming deadlines (or milestones) for my company?
  • What is the status of all of my active client projects?
  • Which of my team members are best using the Ticket Agent application?

The last point is a little interesting. As with any application, end user adoption is an issue. You could have the most usable system, but people may still not use the system. I have a solution to help address this, but it's a "secret sauce" idea that I'll hold back until closer to release.

From a design perspective, my goal is to make the application feel more like a GTD (Getting Things Done) application than your typical project/task management solution.

Well that's all I have for now, but I'll finally start posting more regularly to let you know how development is going.

April 14, 2010

So things have been quiet on the blogging and tweeting front lately, but it's actually related to me being very busy. I've shifted from consulting mode to software development mode for 2010.

Without getting too vaporware-ish right now, I can tell you that I'm working on a hosted, rich internet application (RIA) that scratches a work management itch experienced by every company I've worked at over my decade+ in the tech industry. It's a "go-big-or-go-home" project for me. I've talked about it for eons, but never had time to develop it. No more excuses.

I'm dedicating serious effort on this project. It's my full time job right now. Success or failure, it will be out of my system soon. No more wistful thinking about "things that could have been".

The product code name is currently "Braintapper Engine", and I'm not going to say much in terms of functionality right now, except that it's designed to solve work management pain points commonly experienced by small services companies.

The app definitely has what I think are some compelling (and cool) features, but more later.

There are a lot of things to work out, and not just on the development side. I've got to tighten the elevator pitch, figure out the pricing model, and of course the infrastructure issues related to deploying a multi-tenant hosted solution.

The product development came out of the beta of the Braintapper Exchange functionality of the site, which was soft launched in March and visible here. A lightbulb went off in my head, with a voice saying "this engine can drive that project management app you've dreamed about for eons!". The codebase for Braintapper Exchange has evolved beyond recognition (probably worthy of a few blog posts in itself), although the data back-end is fundamentally the same, if not simpler.

On a side note, for reasons I can't talk about yet, "Braintapper Exchange" as a concept of a BI community may be going away and be replaced by something bigger and better. On the other hand, the Braintapper Exchange codebase will continue to evolve. At the very least, the codebase will be turned into the engine that drives the Braintapper blog. Once the "engine" project is completed, I'll decide whether to productize the Exchange code base or whether to release it as an open source project.

More news to come in the near future.

Just a housekeeping note, I'll be migrating any code samples to Bitbucket.

Bitbucket is a Mercurial-based public source code repository.

Migrating the source code will make it easier for people to get the latest versions of any demos or samples that I create.

The Braintapper repo is located here. There are three public repos, one for Cognos, one for Pentaho and the other for miscellaneous BI efforts.

keyword bitbucket  keyword mercurial  
March 17, 2010

After reading a couple of reviews (notably by Stephen Few and Nathan Yau) of The Wall Street Journal Guide to Information Graphics, I picked up a copy myself out of curiosity.

For the most part, I agree with Stephen Few's critique of the book, but his vantage point is as an expert in the field. In author Dona Wong's defense, it's hard to write a book for newbies and present do's and don'ts that won't ruffle the feathers of anyone who knows better.

Being in BI, I see a lot of crappy reports with poorly chosen graphics. And many of these are coming from "seasoned veterans" in report writing. The problem is that "seasoned veterans" in report writing only means you really know how to use the tool, not necessarily how to communicate quantitative data visually.

I think that this book, despite its many flaws (Wong almost had me in a tizzy by referring to "sans serif" fonts as "sanserif" - that's as heinous as a Freedom Fry), is ideal for one particular audience. And that is people who have no knowledge of visualization, and who do not have the will or the patience to learn.

The book has two key strengths for newbies:

  1. Everything is in bullet points (ideal for the attention challenged)
  2. Wong's rules-of-thumbs are pretty black and white (ideal for the critically thinking challenged)

One glaring weakness, however, is that while the images in the book are lovely, they weren't really created by real world BI tools. You're not going to be easily able to reproduce these charts and graphs in Cognos Report Studio or any other tool to match Wong's aesthetic.

Stephen Few's books are easy reads, but only a small percentage of the people to whom I recommend his books actually read them (sadly, I think the reason behind this is that too many people just don't seem to care enough about their "craft" to improve). Edward Tufte's books contain prose that requires a significant amount of patience, and are much more appropriate for true believers than newbies.

Bullet points and "black and white" rules be damned, I think this book should be read by anyone who designs reports in Cognos or any other other BI tool. It's about 100 times better than what is usually described as "the most popular seminar each year" at Cognos Forum, where the presenter talks about Few and Tufte, and then goes ahead and presents the one of the most horrible PowerPoint decks I've ever seen.

If we're lucky, people who start with this book will develop an interest in visualization and then actually read something meatier like Information Dashboard Design or Beautiful Evidence.

keyword stephen_few  keyword nathan_yau  keyword edward_tufte  keyword dona_wong  keyword cognos  keyword wsj  
February 26, 2010

Purchasing decisions based on feature checklists alone is dangerous when the stakes are high (i.e., big dollars on big enterprise software).

But feature checklist obsession isn't limited to big purchases, it's ubiquitous among all things technological.

Marco Arment has a nice little article about the obsession of tech press with the feature checklists of gadgets.

His post highlights two common feature excellence failures on product evaluation based on feature checklists as the key criteria: assumed equality, and miscomparison.

Definitely a worthwhile read.

February 25, 2010

Dan Frommer, of Business Insider, summarizes Tim Cook's talk at the Goldman Sachs Technology Conference:

We are the most focused company that I know of or have read of or have any knowledge of. We say no to good ideas every day. We say no to great ideas in order to keep the amount of things we focus on very small in number so that we can put enormous energy behind the ones we do choose. The table each of you are sitting at today, you could probably put every product on it that Apple makes, yet Apple's revenue last year was $40 billion. I think any other company that could say that is an oil company. That's not just saying yes to the right products, it's saying no to many products that are good ideas, but just not nearly as good as the other ones. I think this is so ingrained in our company that this hubris you talk about that happens to companies that are successful and sole role in life is to get bigger, I can tell you the management team at Apple would never let that happen. That's not what we're about. Small list of things to focus on.

So what's the moral of this quote?

If you look at the excerpt above that is in bold (emphasis was mine), Apple chooses to be better, not bigger.

This relates to my frequent rant about the absence of feature excellence in constantly growing feature checklists, especially in the BI realm.

Updated: Here's the audio recording of the discussion.

February 24, 2010

After a little hand wringing caused by differences between my development environment and my hosted environment, the new site and blog are finally up!

While the most visible changes are in the template, this 2.0 upgrade actually involved significant changes behind the scenes.

The Blog upgrade was necessitated by an impending closure of the Blogger FTP service, which is what I was using to publish content to the blog. This meant that a migration to another system was inevitable. That the service was being dropped presented a major challenge, because all existing links would break, because of the naming and folder structure used by the Blogger publishing system.

Examples of the types of URLs that had to remain intact:

  • atom.xml
  • 2010_01_01_archive.html
  • labels/labelname.html
  • 2010/01/permalink.html

There were a couple of ways I could address this:

  1. Leave the published files intact while integrating a new content management system.
  2. Roll my own content management system.

Customizing an existing CMS (Wordpress, Movable Type, Textpattern) to what I needed would have taken more time than it would have to roll my own simple content management system in CodeIgniter.

That doesn't sound realistic, since writing a CMS can get quite involved. Because I use MarsEdit as my blogging tool, however, I didn't need to write an administration module. All I needed to do was build two things:

  1. An output mechanism for dumping content
  2. An input mechanism (XML/RPC) to interface with MarsEdit

The first part was easy. I moved my old content using Blogger's export system and used Pentaho Data Integration to move them into a super simple, 4 table database schema.

The second part was a little involved, maybe a day of work. I had to implement the Metaweblog API. CodeIgniter offers a core XML/RPC server library. I used that as a starting point, and then cheated by using the Template Parser library in CodeIgniter to spit out the XML that MarsEdit needed. If I had to use the XML/RPC server "properly", it probably would have doubled the effort.

Finally, to ensure that the old URLs continued to work (a lot of my hits come from Google Searches and Bit.ly), I used the routing functionality of CodeIgniter to mimic the old directory structure.

Ironically, for the full braintapper.com web site, I dropped the existing CodeIgniter code base and moved to RapidWeaver instead. I had already purchased a license for it, and figured I may as well use it, since the main site content is much more static than the blog.

February 11, 2010

Overview

A good date dimension is essential for any data warehouse or reporting database. If you don't have the right tools, you'll often find yourself generating this date dimension in Excel, which can be tedious.

I've created a reusable Pentaho Data Integration transformation that lets you create a date dimension with a user-defined start date and number of days.

Feel free to tweak to your heart's content. The download link is at the bottom of the blog entry.

Caveats

  • The first date of this date dimension starts in October 2009, which coincidentally (grin) matches up with the day Braintapper came into existence. You can change this date as indicated in the transformation instructions.
  • This transformation is for educational purposes only. It's up to you to make sure it's debugged if you're thinking of putting it into a production system.
  • This transformation is based on a standard calendar year. It doesn't factor anything like lunar dates, 4-5-4 calendars or fiscal years that don't start on January 1.

How it Works

A quick view of the transformation is here:

There are 5 basic steps used in this transformation.

  1. Using a "Generate Rows" step, I set the first day of the dimension to iterate an arbitrary number of times. In the sample, I create 10,000 lines, which means there are 10,000 days in the dimension.

  2. Next, I use an "Add Sequence" step to create a counter for each row.

  3. I use a "Formula" step to create each date in the dimension, using the counter from the previous step.
  4. I create the rest of the date dimension elements using another "Formula" step.
  5. Finally, I output the dimension table to an Excel file. You can change this to any other output type that you would like.

Date Dimension

In the date dimension, I like to create "In Dimension Counters". These are basically running counts of the Year, Quarter, Month and Day in the dimension. I also like to include Month and Weekday names and abbreviations.

I like to include these added elements because some database/reporting engines do not have fully fleshed date functions, so these added elements allow you to use plain old SQL to do conversions and calculations.

Elements

  • DimensionDate - The date, as a date type.
  • DateSid - The date, as an integer representation of YYYYMMDD.
  • Year - The year, as an integer.
  • Quarter - The quarter, as an integer.
  • Month - The month in the year, as an integer.
  • Day - The day in the month, as an integer.
  • DayInYear - The day in the year, as an integer between 1 and 366.
  • Weekday - The day of the week, starting on Sunday indexed at 1.
  • MonthName - The name of the month, in English.
  • MonthAbbreviation - Three letter abbreviation of the month, in English.
  • DayName - The weekday name, in English.
  • DayAbbreviation - Three letter abbreviation of the weekday, in English.
  • YearInDimension - The year counter for the entire dimension, starting at 1.
  • QuartersInDimension - The quarter counter for the entire dimension, starting at 1.
  • MonthInDimension - The month counter for the entire dimension, starting at 1.
  • DayInDimension - The day counter for the entire dimension, starting at 1.

Notable Formulas and Gotchas

Calculating Month/Weekday Names and Abbreviations

Since the Pentaho Formula step doesn't have month or weekday name date functions, I used a variant of the tip that I blogged about last November to generate these.

DateDifs and In Dimension Counters

Pentaho's DateDif function in the "Formula" step appeared to be a little buggy, so many of the "In Dimension" element calculations are a little more complicated than they needed to be.

Because my first year start date is not January 1 (which appears to be the cause of the bug), I had to create an exception for the first year counters. For example, the month in dimension calculation is as follows.

if
(
  // calculations for the first year
  year([FirstDate])=year([DimensionDate]);
  
  datedif([FirstDate];[DimensionDate];"m")+1;
  datedif([FirstDate];date(year([FirstDate]);12;31);"m")+1) 
  +
  // calculated from second year forward
  if(year([FirstDate])=year([DimensionDate]);0;
  datedif(date(year([FirstDate])+1;1;1) ;
  [DimensionDate];
  
  "m")+1
)

If the DateDif worked properly (I was getting something like 21 months between 2009/10 and 2010/1 - what???) then I'd be able to drop the first part of the formula above.

In any case, the formula now only suffers from a little redundancy, but it can accommodate any date dimension that doesn't start on New Year's day.

Transformation File

DateDimensionGenerator.ktr

keyword dimension  keyword date  
February 10, 2010

Introduction

So here's an edge case for you. How do you use JDBC to connect to an instance of Filemaker Pro or Filemaker Server?

Note: These instructions are for Mac users, not Windows users.

First, you're probably wondering who on earth would want to do this? While Filemaker does exist in the Windows world, Filemaker is the de facto equivalent of Microsoft Access for Mac users. It's pervasive, and it's quite good. By enabling JDBC connectivity to Filemaker, you can now use some more powerful tools, such as Pentaho Data Integration to pull in data from all sorts of data sources. Now I wouldn't recommend using Filemaker as a data warehouse, but you can definitely use Pentaho to pull in data from any REST API enabled service you might subscribe to, such as Freshbooks, Basecamp, etc.

Sidebar: For me, the concept of a JDBC driver for Filemaker is quite bizarre, since I haven't really used Filemaker since the early nineties, before it became a quasi-relational database. Filemaker is a nice little database. For some things, like creating a data-driven front end, it's significantly better than Access. For those who yearn for the simpler days of Filemaker, however, Filemaker does offer a nice little database app called Bento.

Before trying to connect to your Filemaker database(s), make sure you turn on sharing from within Filemaker.

Installing the Driver

When you get Filemaker, you should find a folder called xDBC on the installation media (whether it's a CD or DMG disk image). Within that folder is an installation folder for the JDBC drivers. In that folder is a file called

sljcInstaller.jar.

screenshot

Just run it by double clicking it. Jump through the wizard until you get to this screen.

screenshot

Click on the "..." button and navigate to a folder where you want to install the drivers. The installer will work its magic.

Within the destination folder, you'll find a folder called "drivers". Within that folder, you'll find another subfolder called "lib". In this folder, you'll find the driver you need: sljc.jar.

screenshot

OK, so now you have the driver, what can you do with it? I've provided samples for DBVisualizer and Pentaho Data Integration.

DBVisualizer

  1. Launch DBVisualizer.
  2. Go to Tools > Driver Manager.
  3. Create a new driver and call it "Filemaker Pro".
  4. In the URL format, enter: "jdbc:sequelink://localhost:2399" (without the quotes). That's the default URL for Filemaker.
  5. In the Driver File Paths section, click "User Specified".
  6. Click on the open icon (the folder).
  7. Browse to the sljc.jar file you just installed. This should populate the drop down list for the Driver Class field in the Driver Setting section above.
  8. Select "com.ddtek.jdbc.sequelink.SequeLinkDriver".
  9. Close out the dialog. You're done. You should be able to create a connection without the wizard. Make sure your Database Type is Generic. The default User Id is "Admin" with a blank password.

Pentaho Data Integration (Kettle)

  1. Open the Kettle application package by right clicking the icon and selecting "Show Package Contents". Navigate to Contents.
  2. In a text editor, edit the file info.plist. Add an entry as shown below:

    $JAVAROOT/libext/JDBC/sljc.jar 

    screenshot

  3. Next, copy the sljc.jar file from your installation folder into Contents/Java/libext/JDBC/

  4. Launch Kettle. You can create a connection using the parameters shown below.

    screenshot

keyword pentaho  keyword jdbc  keyword filemaker  keyword dbvisualizer  
February 3, 2010

Why Would I Do This?

Screen resolution is a big deal for me. My last Windows laptop (Asus Z71V) had a fanastic resolution of 1680x1050. These days, such high resolution screens are becoming rarer on a 15" screen. Apple's 15" screen provides a measly 1440x900 resolution. Given the price of the 15" Macbook Pro, I'd rather settle with the 1280x800 of a Macbook if I'm always going to be frustrated with the screen res. And that's what I did.

Until a week ago, I was going to ease the pain by grabbing a Mimo USB monitor, but it's a unitasker, and the currently available devices only have a cheapish screen with 800x480 resolution. That was until I discovered ScreenRecycler and turned my old ASUS Z71V laptop into a second display for my Macbook. Of course, I don't want to be carrying 2 laptops with me when doing on-site client work, so the iPad does make things interesting.

The iPad has been eviscerated by pundits for being a solution without a problem. For me, it's a different scenario. The iPad has an LED backlit XGA IPS LCD screen in a 1.5 pound form factor. This makes it a highly portable display with excellent viewing angles. In portrait mode, it becomes handy for report developers and web designers for previewing their work. So now, for the weight of, um, a fat Windows laptop, you can carry a Macbook and an iPad in your briefcase.

Vaporware?

Yes, I do know that the iPad isn't released yet, but I'm pretty confident it will work since there are plenty of VNC clients out there for the iPhone. For these VNC clients to support XGA portrait and landscape resolutions should not be a huge deal.

Worth noting is that the author of ScreenRecycler, the software used in this trick, is also the author of JollysFastVNC, which I would argue is the best/fastest VNC client for the Mac. I can only hope that we'll see a version of JollysFastVNC for the iPad in the near future.

Caveat Emptor

This solution is not without costs. The iPad itself starts at $500 (but unlike a $150 MIMO monitor, the iPad is not a unitasker). Your software costs could easily hit $40. For me, that's not a big deal, because I already own the software to convert my old Z71V into a second monitor for my Macbook, and I'm going to be getting an iPad anyways. I want to get the most out of software and hardware I will already own. As such, your mileage will definitely vary.

Requirements

  • Mac laptop
  • iPad with a stand
  • ScreenRecycler
  • iPad Friendly VNC client
  • Network connection between your iPad and Macbook, preferably N. I have tested XGA resolution over G with my Z71V, and it is more than usable for previews and dashboards.

Setup

  1. Purchase and install the ScreenRecycler software on your Mac.
  2. Purchase and install a VNC client for the iPad.
  3. Run the ScreenRecycler app on your Mac.

    screenshot

  4. Run the VNC client on your iPad. Connect to the IP address of your Mac. Make sure you set the port to 6900. You may need to mess with the connection settings to get optimal performance.

  5. The ScreenRecycler app will recognize that there is a connection, and start broadcasting the second screen.
  6. Open your system preferences and set your display settings. First, set the resolution to match the orientation of your ipad.

    screenshot

  7. Second, go into the arrangement segment of your Display settings and pick the arrangement of the monitors you'd like.

    screenshot

  8. You're done! Enjoy the extra real estate!

Final Notes

Depending on the quality of your connection, and the quality of your VNC client, you may experience some shearing on the second window when performing certain activities. As such, the second screen is better suited for proofing, dashboards and tool palettes.

keyword trick  keyword tip  keyword tablet  keyword macbook  keyword mac  keyword iPad  
January 27, 2010
While the iPad is generally seen as a great media device for consumers, I'm going to put forth the argument that it's a fantastic business device.

First and foremost, any IT manager who has had to deal with, um, salespeople, should have some appreciation for the iPad to replace laptops issued to salespeople. Why? Many salespeople only need a few applications - e-mail, word processor and presentation software. Well, those are all available in the iPad, and you get the added benefit that some sales guy won't be responsible for spreading the latest virus at the office because his beer buddy sent him a naughty attachment.

My understanding is that the iPad supports XGA out, so presentations can be easily output to a projector. Moreover, any "application" demos can be simply recorded in XGA resolution using Camtasia. Well, I probably don't need to go further, but there are tons of reasons why removing full-blown laptops from sales types (and executives, for that matter) would result in fewer headaches for IT departments.

As mentioned in a prior post, I also see opportunities in the business intelligence realm. The iPad would be a great mobile dashboard. This area is fertile ground for some innovative developers.
keyword iPad  keyword apple  
January 25, 2010
Outside of the typical BI gigs, I do provide some consulting on the capture of non-numeric knowledge.

The products I normally recommend are Fogbugz (if the client is looking for a comprehensive solution that includes case management) and Mediawiki, which is the engine behind Wikipedia.

Sometimes, however, you don't need a heavy duty wiki. For that, I suggest looking into WikkaWiki. It's PHP/MySQL based, and it's pretty easy to set up (although if you're doing URL rewriting, it's a little more involved). I have tried DokuWiki in the past, but WikkaWiki looks great out of the box. DokuWiki still has that "programmer's interface" that so many open source projects have.

Jumping into my high horse... Companies need to remember that their most valuable intellectual property usually rests inside the heads and inboxes of their employees. Wikis, especially those that are open, are essential to any business capturing, retaining and sharing knowledge throughout their organization. Granted, it's tough to create a culture of sharing, but it's an important step to take.

Off the high horse now... Check out WikkaWiki!
keyword wikkawiki  keyword wiki  
January 24, 2010
In light of the imminent release of a new Apple computing device, which the pundits believe to be a tablet, there's been a lot of discussion about what its primary uses will be. E-book reader? Music Player? Movie player? Bathroom surfboard?

Those are all great, but the thing I'd just love to see on this device would be a live, interactive enterprise dashboard. I'm sure, however, that they'll demo a dashboard. It'll probably be a consumer dashboard made up of weather and stock widgets, but wow, can you imagine the potential?

Speaking of whizzy dashboard gadgets, Sony recently announced the Dash, an implementation of the nerdy Chumby. It's being marketed as a clock-radio like dashboard, but I think it would be great to repurpose as a desktop conduit to an enterprise dashboard.

There is really something to be said about a live dashboard that doesn't live on your primary computer's screen. A dashboard that has its own discrete screen gets more attention, and has more potential value to those who use dashboards.

Food for thought.
keyword tablet  keyword sony  keyword dashboard  keyword dash  keyword chumby  keyword apple  
January 22, 2010

I first heard about Palo last year after finding a thread on OLAP Forums in a Google search for open source Cognos TM1 alternatives.

While I did download the software last year, I didn't get around to installing it. Jedox recently released version 3.0 of the software, and I've just started looking at it.

I really have to say that I'm impressed, and I've only scratched the surface. The documentation is professionally written, complete, and best of all, free. Palo also offers a web-based spreadsheet interface that is super-polished (to me, it's significantly nicer than TM1), and offers a nice selection of charting features, including microcharts and analog gauges (which I'm not a fan of, but there's no accounting for taste).

The Excel plugin has a similar feel to the one provided by TM1 as well.

I haven't been able to dig deeper, because I'd like to use a different data set from the provided sample, but I'll get there soon.

While I'm not ready to give this product a thumbs up, based on my cursory experience with the tool, I do strongly suggest that prospective TM1 buyers take a close look at this tool. At the very least, you can use it as a negotiating chip when you start talking about the pricing on TM1.

keyword tm1  keyword palo  keyword jedox  keyword cognos  

Lately, when talking to my fellow business intelligence compadres, I've been talking a lot about Feature Checklists and Feature Excellence, and the lack of the latter in enterprise software.

Feature Checklists

Feature checklists are self-explanatory. At the core, they're just lists of features. In the enterprise software space, software buyers are rarely subject matter experts. An IT manager is told to buy some business intelligence software by some business stakeholder, and in the absence of any business intelligence expertise, goes about researching the competitive landscape by using Google searches and creating a spreadsheet with a feature comparison grid. You can't blame buyers for that approach. We all do it.

The problem lies in the fact that product managers know about this behaviour. And more often than not, the difference between a won or lost deal is a few checkmarks in prospect's feature grid. It doesn't matter that the feature is poorly implemented or not, it just matters that the feature exists.

So it shouldn't be surprising that in many enterprise software companies, some guru in Marketing who scans the "blogosphere", "twitterverse" and God forbid, analyst publications, tells product management that the next release absolutely needs to include Feature X, Y and Z. The Product Development Manager will jump on some web sites to see how the competitors are doing it, and then get his or her team coding away. In the final release, you get the functionality that Marketing asked for, but more often than not, none of the new functionality is best in class, which leads to my next buzzword, feature excellence.

Feature Excellence

Feature excellence is exactly that. Excellence at delivering a particular software feature.

Feature excellence is easy to talk about, but hard to deliver. It often requires some deep thought, and consideration of users in the field. Excellence isn't only about technical efficiency, but also usability. Software with programmer's interfaces often fail on the usability criteria.

Feature checklists and feature excellence do not necessarily go hand in hand, especially in the world of enterprise software. In the consumer software world, money is made off of volume, so usability for the Joe Sixpacks of the world is critical. Even Microsoft, a company known to compete on feature checklists (the evolution of Office is a great example), can manage more than a few wins in the feature excellence column.

Feature excellence is much more elusive in the enterprise software market. Buyer emphasis on feature checklists definitely has more than a little to do with it.

Feature Checklists for Business Intelligence

Jumping back to the battle between feature checklists and feature excellence in the business intelligence world, a great example of this happened this past November, when visualization expert Stephen Few politely (and objectively) eviscerated an analyst article that provided a visualization "feature checklist" for potential business intelligence customers. The whole exchange was entertaining to me, because I'm known for my love of analysts (grin).

In any case, Stephen Few followed up recently with his own criteria for vendor selection. When you compare his list to the original analyst article, you can see that his list is steering buyers towards feature excellence, rather than feature checklists.

If more prospective buyers paid attention to the real subject matter experts and less to the opinion-mills that are analyst firms, then you'll see a shift in the industry towards providing feature excellence. Let's hope that happens.