Bad RFPs lead to bad responses to RFPs!

In my last article, I discussed the sins committed by companies responding to RFP’s.  Now let me talk about the other side of the equation.  For associations, or any company, writing an RFP, you can make it easier on yourself when it comes time to read the resulting RFP’s and easier on the vendors who are investing time and money to pursue your contract.

Reputable vendors want to do a good job (as well as make a profit on the project) and will spend time with your RFP especially if they see that you have spent time and care in preparing it and you clearly describe exactly what you want.  Yes, there are vendors that will go after anything and worry about fulfilling it later but you will probably recognize them when you read the responses and check references.

  1. Before you expect the vendor to understand your business and your processes, you need to understand them yourself.  Don’t make the assumption that “everyone does it my way”.  Map out the processes to be managed by the software and the specifics associated with those processes.  The vendor should have a complete view of each process they need to automate.
  2. Be concise.  The size of the RFP doesn’t necessarily match its value.  If you hire a consultant to write the RFP, the consultant should be paid for the quality of the RFP and not the size.  You need to review it carefully before it is sent out to vendors just to verify the quality.  Eliminate what doesn’t apply to you.
  3. Don’t just go out and buy a pre-written RFP even when it is not advertised as such.  When I was in the business, I saw this all the time as I reviewed one RFP after another from the same consultant with almost the same verbiage and checklists.  Make sure that your RFP actually reflects what you yourself need and not detail irrelevant to you.  Consultants think they can save time by starting with a previous RFP but this leads to a lot of extraneous “requirements” that just confuse the effort of the vendors and obscure your real intent.
  4. If you are including a checklist of requirements, organize them into specific processes that describe how you do business.  Include enough in each item to make it specific to the process.  For instance, “Send group email” automatically gets a “yes” from the vendor but “Send group email to everyone who has renewed their subscription but has not donated to the foundation” will get a much more specific response.  Checklist items should require a specific response and not a generality.
  5. Long requirements checklists are deadly unless organized very well and thought out very carefully.  As a vendor, we know there will be competitors who will just say they have or can do anything so the urge to bend the truth is very strong.  When the requirement is to general, they have no way to answer it honestly.
  6. A short checklist item is not necessarily a good thing.  The vendor may answer “yes” to just that one point without associating it with the rest of a process.  As a vendor, I would much rather see a checklist item that covers a more complete issue or process and that puts it into context.
  7. Avoid ambiguous questions and the questions that can’t be answered.  “Please give me a fixed price for an interface to something that hasn’t been defined yet.”  You laugh, but I’ve seen it.
  8. Organize the RFP in such a way that the vendor doesn’t have to copy the same boilerplate into multiple sections that ask for the same information.  On top of that, specifically request that the same boiler plate not be included in multiple sections of the response.  If the RFP is organized well, it can be answered efficiently and concisely and you will get responses easier to analyze.
  9. Avoid the unrealistic request.  If you don’t know some of these, ask an independent vendor or consultant that knows. For instance, only a company on the rocks and desperate for work will agree to an unlimited liability clause in a contract.  No single contract is worth risking the entire company.
  10. Don’t insist on a timeframe for delivery that absolutely can’t be met.  You may find a company that will agree to try but the only companies that will agree will be those that don’t have other profitable work to do or who don’t plan to actually do everything you asked for in that time frame.  Some companies will promise anything with the belief that by the time they get to crunch time, you will either give in on some requirements or will have become so invested in the project, you can’t cancel it.
  11. Be specific about how you want the prices organized so you can better compare multiple responses.  Separate fixed from variable costs.  Separate software from hardware from labor costs. Be sure to specify that the quote must contain all costs for the project.  I have seen companies leave out such things a software maintenance that can be very expensive later if not originally understood.
  12. Expect questions from the vendors, especially those vendors who are trying to answer honestly.  Welcome those questions and be complete in your answers.  If a vendor doesn’t ask questions, chances are they are answering your checklists without adequate thought.

Finally, when you read the responses, be open to the fact that the vendor may have a better approach to some business process than you do.  Don’t be married to doing everything the same way you always have.  In fact, if what the vendor already has comes close to what you want, you will find it vastly cheaper to adopt their process than customize something for yourself.

I complain a lot about bad proposals.  Then again, when I used to write proposals, I complained a lot about poorly written RFPs.  A lot can be accomplished when both sides are careful with what they write.

What do you think?  Am I way off base?

Simple Database Structures Lead to Complex Reporting

It is interesting to look under the covers of WordPress to the database architecture see how people are creating plug-ins to deal with so many different functions.  Take a look at the table wp_usermeta that stores information about users.  The structure is simple but perhaps too simple.  Ultimate flexibility often leads to ultimate complexity in reporting.  Looking at the structure and how some plug-ins use it will reveal another major reason why the WordPress approach would not work for large organizations.  The structure of wp_usermeta:

  • umeta_id
  • user_id
  • meta_key
  • meta_value

This is the ultimate in versatile database structure.  You have a unique key (umeta_id) for the table and then a field to link to a specific user (user_id).  Beyond that, you can define anything you want as a meta_key and then provide one or many values within meta_value.  This can be as simple as:

meta_key=’lastname’ and meta_value = ‘Brantigan’

In a typical relational database structure, you would define a “customer” table with specific fields for first name, last name, and other demographics.  For data elements that are less specific to every customer or one to many relationships like specific product orders for a given customer you might create a separate child table.  When this is the case, you have relatively easy reporting – but not with wp_usermeta.

What happens in WordPress for some plugins, the vendors use the wp_usermeta table for everything and then structure their data within the one meta_value field.  Here is a rather complex example used by Magic Members plugin:

meta_key = ‘mgm_member_options’ and meta_value = ‘a:2333:{s:2:”id”;s:1:”6″;s:13:”custom_fields”;a:14:{s:8:”username”;s:0:””;s:8:”password”;s:10:””;s:10:”password_conf”;s:1:””;s:10:”first_name”;s:3:”Tom”;s:9:”last_name”;s:9:”Brantigan”;s:5:”email”;s:25:””;s:9:”boat_name”;s:14:”Toccata in Sea”;s:10:”boat_model”;s:4:”C387″;s:11:”hull_number”;s:2:”96″;s:9:”home_port”;s:16:”Middle River, MD”;s:12:”display_name”;s:13:”idealuser”;s:8:”jib_size”;s:0:””;s:23:”sail_configuration_main”;s:3:”Std”;s:9:”keel_type”;s:3:”Fin”;}s:22:”other_membership_types”;a:0:{}s:12:”payment_info”;a:0:{}s:6:”coupon”;a:0:{}s:7:”upgrade”;a:0:{}s:6:”extend”;a:0:{}s:4:”code”;s:10:”mgm_member”;s:4:”name”;s:10:”Member Lib”;s:11:”description”;s:10:”Member Lib”;s:7:”setting”;a:0:{}s:6:”saving”;s:1:”1″;s:8:”trial_on”;s:1:”0″;s:10:”trial_cost”;s:1:”0″;s:14:”trial_duration”;s:1:”0″;s:19:”trial_duration_type”;s:1:”d”;s:16:”trial_num_cycles”;s:1:”0″;s:8:”duration”;s:1:”1″;s:13:”duration_type”;s:1:”l”;s:6:”amount”;s:1:”0″;s:8:”currency”;s:3:”USD”;s:9:”join_date”;s:10:”1327096345″;s:13:”last_pay_date”;s:10:”2012-01-27″;s:11:”expire_date”;s:0:””;s:15:”membership_type”;s:6:”member”;s:6:”status”;s:6:”Active”;s:12:”payment_type”;s:0:””;s:13:”user_password”;s:16:”6cf89Y9K8AX3W8TNT”;s:7:”pack_id”;s:1:”3″;s:17:”active_num_cycles”;s:0:””;s:12:”account_desc”;s:12:”Free Account”;s:10:”status_str”;s:27:”Last payment was successful”;s:16:”hide_old_content”;s:0:””;}’

Though you can do almost anything with such a generic table structure, trying to do a simple SQL query against it to create analytic reports is really tough!

Why not WordPress instead of a commercial AMS?

I’ve spent a number of posts discussing how WordPress could be used in place of an association management system for small associations but when you get right down to it, I don’t believe for a minute that the approach would work for a large association.  In the past, I have discussed how I think future software could be written for the large association but for now I think they are stuck with the commercial options.

Here are a few reasons:

  1. Large associations want what they want and they have the money to pay for it. Lip service is paid to keeping customization costs down but seldom have I seen the large association follow through with this and not cave in to the powerful membership or marketing director who is dead sure that their complex approach is what holds the entire organization together.  No one wants to abandon their complex pricing and discounting schemes.
  2. Software support is vital to a large organization. Depending on a mix of software from small independent vendors is a dangerous thing when you are protecting the crown jewels of the organization.  Though I have found support for many plugins to be good, I have also seen some where it is not so good.  What’s more, once you commit to a specific plugin, it is difficult to swap it out for something else if something no longer works. Then again, support from the large AMS vendors isn’t as responsive as we would like but at least you have somewhere to go to exert pressure where necessary.
  3. Commercial association management software for large associations is not something that small companies can effectively deal with.  Large associations understand this.  Creating the software is expensive and requires a large install base and large staff just to make the ROI work.
  4. Association staff may pay with their job if their decision on what software to buy is not correct.  Remember when companies bought IBM machines and software because they could never be criticized if they did so?  The same is still true today.  Large associations buy software from well-known established companies.  That doesn’t necessarily mean that the implementation will run smoothly but makes it easier to justify later.
  5. Reporting is vital to large associations.  There are a number of aspects to this.  Not only do the large associations need a large set of “standard reports”, to be successful, they need the ability to do effective ad hoc queries and reporting to adequately analyze the business particularly trends in membership and sales.  Database structures that support good ad hoc reporting are by nature complex and the tools must be able to deal and hide (where possible) that complexity.  Next week I’ll do a post on complex reporting from simple database structures.  There is no free lunch!

So…though I have been impressed with what you can do with open source software for smaller associations.   I just can’t believe that it will work for the large group.

Is the AMS dead? (Part Two)

Association Management Software (AMS) has been around as a specific genre since the 70’s.  In fact, my original company, Resources, Inc., in Chicago, created some of the first commercial software for associations first as something accessible through our service bureau and later as software to be installed on-site in the association’s offices – a new thing given the cost of computers.  They were “mini-computers” defined as something about the size of a refrigerator requiring enough air conditioning to prevent Chernobyl with about the power of a modern-day watch!   The American Academy of Orthopedic Surgeons was one of the first organizations to install this commercial “generic” association management system – though totally generic lasted only until the second client.

Over the years, the technology has changed and has gotten more and more flexible to deal with the many variations in the association world.  These variations are what currently prevents, or at least postpones, the death of the AMS (association management software).   The real question is whether or not the variations and complexity are worth the cost.

Association software is very expensive to purchase, install, and maintain.  If you understand the association software industry you can understand why this absolutely has to be so.  This is a small niche market where customized capability is the norm.  Given how small the market is and how fast the technology is evolving, the cost of creating the software in the first place can barely be made back in software sales.  This is why most association software companies are really services companies rather than software companies.  They make their money on providing the staff to implement, modify, and maintain the software – and that’s expensive.

This is not to say that association software has so specific to the association world.  In fact, if associations really calculated the cost of what they are doing, I suspect more and more of them could move in the direction of a best-of-breed approach unified by a company providing just the integration strategy, software, and support.  Were I to start a new company – and no, this isn’t my current intention – this is the approach I would take.  I would look for the best software to deal with accounting, meeting management, product sales, transcripts, etc. and simply create ways to integrate it all into a unified view centered on the member.  What current vendors call “partner programs” becomes the primary source of software functionality for associations.

What would it take for this to be successful?  The most important thing is that the associations need to be less complex in terms of pricing and discounts.  They will never get away from the idea of member versus non-member pricing and perhaps will never get away from inventive bundles of memberships with meeting registrations and other products.  Then again, perhaps rebates of the member benefit may be a cheaper way to accomplish discounts through pricing and accomplish it outside of the order system itself.  There are lots of possible options to all of the complexity issues if you only think about it and are open to change.

What associations need to do is rethink what a “product” is.  Essentially, a product can be anything with a name, description and price.  Beyond that, why not handle the contents of that product externally to the product sales system itself.  If a customer buys a membership that includes a meeting registration, the integration would be created to interface with the membership system and registration system but the sales system would be simple and independent of the rest.  Yes, there are still issues to be resolved, e.g. restrictions on the number of spaces available at the meeting, but these can be worked around if you think carefully about it.

Much of the complexity – and slowness – of association management order systems results from having to check everything at the time of placing the order.  For instance, the system may have to see if the customer is a member and if so, what kind of member.  Is the product a defined bundle and if so is everything in the bundle available?  Is the product involved in some discount structure whereby if you buy this widget and that widget you get 50% off each?  Should the system optimize price in favor of the customer or in favor of the association.  (I’ve seen both – even in the same association!) If there is a meeting registration involved, the system needs to check to see if there is space in the meeting and potentially space just for a specific type of member.  If there are problems, then the system needs to notify the customer immediately.  There is simply too much complexity just to purchase a “product” and even then, it may not work.

In reality, modern systems are “disconnected” meaning that requests are sent to the database and answers are returned to the customer’s browser and in between requests, one really doesn’t know about the other.  This provides the most efficiency for the central system but also provides a catch-22 in terms of accurately telling the customer whether or not there is space in the meeting.   In truth, between the time the system tells the customer that there is space, someone else may commit that space and the original customer will still be told on committing the order that there isn’t space and their order will fail.  Note that to do this, the system first has to calculate everything to see if there is space and then has to do it all again to commit the order and even then may not succeed in placing the order.

So, let’s go back to the complexity issue.  If the association could simplify the process, it could eliminate the need for the complexity in the software and eventually get to where the “best-of-breed” approach would be well worth while.  Instead of checking for everything real-time, an asynchronous process could make response time almost instantaneous.  Then, for those few situations where a problem exists, the customer can be notified that there was an issue.  Rather than checking for real-time inventory or meeting registration space every time, the assumption could be made that space was available until it wasn’t at which time the product itself would be flagged as unavailable so future checking wouldn’t be necessary.

This has gotten a little long-winded but perhaps you get the point.  A few things to think about:

  1. Association management software is expensive since it has to be to cover all the exceptions and pricing schemes.  Is the complexity necessary?
  2. Association management software is slow because of the complexity.  Should we really inflict that slowness on our valued members?
  3. A generic order system could handle almost anything assuming there was good integration between the order system and the “best-of-breed” components.  Designers just have to think differently.
  4. An asynchronous approach would eliminate time-consuming repetitive and still inaccurate processing and make the integration approach possible.
  5. Simplification of pricing structures would allow “best-of-breed” order systems work.  Being creative could even get past the issue of member versus non-member.

Sounds like an interesting approach to a new company…

Think about it.  What do you think?

Is Integrated Association Software Dead?

Many of my posts have looked at what is essentially free catching up with software costing many thousands of dollars.  The past is important in the understanding of where I am going with this post.

In years past, the key to selling association management software was that it was fully integrated.    This approach was golden given that various software packages wouldn’t talk to each other.  The only way to accomplish the objective was to integrate everything.  Back in the 80’s when we first released RAMS (Resources Association Management System), we covered all the standard association modules of membership, meetings, subscriptions, order entry, etc. plus GL, AR, AP, and Fixed Assets!

At one point, there was a movement toward “best-of-breed” software packages but the failure of it was that integration was a bear.

The first area that this model broke down was in terms of financial packages.  Twenty years ago, our association management system included a full accounting system.  Fifteen years ago, we realized that there were financial software packages with large user bases that were much more comprehensive than anything we could create for a small user base of associations.  Consequently, the model became integration with outside packages like Lawson and Great Plains.

One area after another is being affected by this approach.   Political action software, social networking software, mass marketing software, and even meeting registration software is nipping at the heels of commercial association software systems because each of these can concentrate on a specific area of expertise.  Association software systems sold by independent software companies simply can’t afford to do this for their smaller customer base across all types of subsystems.

AMS software companies have come to realize that the size and scope of their partner programs are extremely important to their sales pitch.  How long will it take before the partner program actually becomes the product?

So why don’t associations simply contract with Amazon to sell their products?  When you ask the associations, you get the reason that Amazon sells products while associations sell lots of different types of products with incredibly creative combination packages and creative discounts.  Buy a meeting registration and get a free membership and baseball cap.

But the real question will ultimately be, “Does it make financial sense for associations to continue doing business in this way?”  If they can come to understand the real costs of customized systems to handle their creative approaches, they may well push the AMS market into simply being an interface market where a company creates a set of interfaces to best-of-breed smaller systems.

I’ll explore that next…

Setting up your own blog based website

This post is for people who want to set up a website for a small association and need to do it inexpensively. Commercial association software is expensive but often very comprehensive. To create a website inexpensively for the Catalina380 International Association, I did this using WordPress as a foundation just as I have described in previous posts.

I’m sure there are lots of articles about how to get started with a WordPress website but I thought it might be interesting to people to have an abbreviated summary of what I found beneficial when starting from scratch up to having a live site at a hosting facility. Though you can easily get the application running at, here is what I suggest if you want to do more than just get it started. In fact, I will assume that you already have the basic application running.

Background Knowledge

First, you need to know at least a little about IIS if you are working with Windows. If you don’t already have IIS started, you will need to start it by checking the check box for IIS through Control Panel->Programs and Features->Turn Windows Features On and Off. Internet Information Services Manager that comes with Windows makes it simple to create a new website for your testing. If you do everything through the hosting facility, they will take care of most of this for you. I liked having a local site to play with as well as the hosted site.

It is very helpful to have a basic knowledge of PHP and of CSS (cascading style sheets). I found a web site that provides this background very efficiently and the information and tutorial is free:

What I found was that I needed basic knowledge in these areas to figure out how WordPress works and to make changes to the various available themes. For instance, I found that the theme TwentyEleven was closest to what I wanted but I didn’t like the wide space at the top of the page. To change this, you need to find the correct php file in the themes folder, find the controlling section and make the changes. Other changes I wanted needed to be made through the style.css within the theme folder. For instance, I wanted a bolder horizontal line than provided in the theme and this can be changed easily in the style sheet.

Useful Software

There are a couple of free applications that will make your life easier:

MySql:   Again, I set everything up locally before moving things to the hosting facility so I needed a local installation of the database. It’s free. There are multiple levels of MySql but the community edition (free) is all you need. Installation is simple. Installation of WordPress itself will create the needed database so you don’t even need to worry about this.

FilZilla: This is a very easy to use FTP file transfer program that is a must if you are going to transfer files from your local machine to a hosted server and later when you want to edit a file on the hosted site by first pulling it to your own machine, making the changes, and then pushing it back up. For my project, I first developed everything on my local machine and then transferred files to the hosting site to make sure things worked there and ultimately to bring the site live. Your hosting site will provide the connection information you need and once that is resolved, the rest is a simple drag-and-drop from your machine to the hosting machine.

MySQL Workbench:  When you install MySql, particularly if you come from a SQL Server or Oracle environment, you find that you can get to a command line (CMD => MySql) and from there you can work using Sql but still only through command line syntax. What MySql Workbench does is provide a Windows interface through which you can work with your database as you would through SqlServer Management Studio if you were working with SqlServer. Furthermore, this gives you a very easy way to back up the database and restore it if needed.

Though WordPress has the ability to back up and restore, doing this directly with the database with MySql Workbench gave me an easier and cleaner way to do this. The script created would do everything from create the database to drop and recreate the needed tables and finally to load them with data.

Microsoft Visual Studio: (This one isn’t free!) Though you can certainly modify .sql files with any text editor (not Word or something that buries its own information in the file), Visual Studio provides a way to load the backup file generated by MySql Workbench and do global search and replaces. Why is this useful? When you develop on your local machine and want to transfer everything to the hosting site including the database, you can change the URLs easily from “http://localhost/mysite” to “http:/”. This is particularly important since WordPress ties itself together in many ways through URL’s.

So there you have it. If anyone has other recommendations, please add them as comments!


Shopping Carts in Blogging Software

Shopping Carts in Blogging Software versus Association Software

Let’s continue with my small site for the Catalina380 International Association.  Though the association’s officers didn’t want to sell anything just yet through the site, I wanted to make sure this would be easy to do later – when they see the light.  Just as with membership plugins, various shopping carts are available as WordPress plugins.  Even the MagicMembers plugin provides links to various payment gateways to take credit cards for membership.

The important thing to understand is that you don’t want to deal with credit cards on your own.  The credit card rules are simply too complex for anyone to keep track of.  Even the larger commercial packages are – or should – give up on dealing with credit cards and just outsource the headaches.  It used to be that large associations wanted their own control of credit cards so they could have a “credit card of record” to make it easier for the member to purchase things later using the same credit card.  In fact, they wanted to store the credit card numbers for automatic renewal of memberships.

All of this is well and good but companies like Verisign have worked out strategies to allow all of this to happen without your association having to store credit card numbers at all.  Taking advantage of this is the way to go.  For the small site, PayPal is probably the best solution to sales.  They are used to dealing with both large and small associations.  Vendors of commercial association software and using these same companies to handle credit card transactions.

If you sell just one type of thing, you may well purchase an inexpensive plugin to deal with simple order entry and payment processing.  Where I see the real issue for large associations is that a large association typically sells a lot of different types of “products” from inventoried products to meeting registrations to exhibition booth space to transcripts to memberships.  What’s more, these are all highly interrelated in terms of packages and pricing models.

I have yet to see this kind of ability from the simple open-source software providers and especially from blogging software being used as an association website.  It is difficult enough for a commercial association management software system to provide this.

Then again, consider what you could do five years ago versus what you can do now for little expense.  “Websites for the Masses” is a concept that is coming.

In my next post I’d like to take a look at a more radical view of association software.  Stay tuned….

Oh no! I’m an Association Software “User”!

How often have I heard software developers say “Software development would be much more fun without users!”  Now, in my new life “on the other side”, I find myself a user – a user of association software!

In my career, I was once the manager of a customer support department for a company that was a distributor of financial software written by a different company.  When it didn’t work, it was frustrating to both me and the customer.  The customer didn’t care if I was frustrated; he just wanted it fixed.  After all, why did we sell something that didn’t work.

At another time, I was the president of my own software company and, perhaps to the detriment of our bottom line, we cared a lot about customer support and went out of our way to try to do it right.  Yes, there were problems that had to be addressed, but I felt good about the way we responded.  Once, when a client told me he wanted to see me in person to discuss the installation process, I took the next flight out to accommodate him.  That was a good experience.  That person, though retired now, has remained my friend for over 25 years.

I have heard of companies where software is released even when developers say it isn’t ready but for various reasons the company feels it necessary either to meet competitive issues or sales promises.   Well, imagine that level of frustration for both the client and the developer much less the support personnel.

Someone I respect once commented that he couldn’t understand why software companies didn’t compete on the basis of quality and service.  Quality matters.  Service matters.  When it is bad, people remember.

Now, as I work with this new website, I find myself working with other people’s software and find myself in the position of a “user”.  I have seen both good and bad support through this process.  I got very little help from the WordPress organization and some of the plugin creators.  From MagicMembers, the plugin that handles all of our membership issues, the support was tremendous.  It was responsive and always helpful.  Thank you, Angela!

From all of this, here are my thoughts directed toward software companies trying to be successful:

  • Without clients, your business doesn’t exist.  Treat them even better than you treat prospects.  Don’t assume that a signed contract means you don’t have to go out of your way to please the client.
  • Be responsive to your clients particularly during implementation.  Nothing is more frustrating when needing to get your software working than the inability to get help from someone who knows how things are supposed to work.  Don’t assume users are stupid because they don’t know the internal intricacies of your architecture.  Never have the attitude that whatever is wrong is user error – even if it is!
  • Personalize your support.  In a paragraph above, I thanked Angela for good support.  When she first began to help me, she identified herself and she personally followed my progress and ironed out issues I was finding.  I felt she was personally committed to my success.  All of this was from a company who sold their product for $97!  Just imagine the support you should get from a company whose software was priced in the hundreds of thousands!
  • Still along the lines of personalized service, go beyond the basic facts if you can.  Try to get to know the client personally so that not all conversations will be about problems.  It is amazing what a good relationship can do to smooth the rough places in an implementation.  Personality counts.
  • As a user, I would rather wait for something to be fixed than be given something to do that you know doesn’t solve the problem.   I don’t want to be told to load the latest version if you know that the problem still exists there.  Fixing one important thing to break something equally as important doesn’t help me much.
  • Honesty is better than anything.  Nothing is more frustrating than feeling like someone is blowing smoke up your …..  If something isn’t working and you know it, admit it so the client doesn’t waste time trying to figure out if it is their own lack of knowledge.  If you know it can’t be fixed for a month, say so, so the client can make appropriate plans.
  • Users, on the other hand, should try to understand their support person who may not have much influence on getting something fixed but should be responsible for helping you with their knowledge of how things work.  Be nice and they will go to bat for you.

Downside of Plugin Technologies

Before you think that plugin technology in the open-source world is a panacea to expensive commercial software, particularly association software, you should consider the importance of today’s decisions on tomorrow’s operation.

For instance, in the site, I wanted to provide a photo album capability so that users could create their own albums and upload their own photos.  Each user would own their own albums and photos so others couldn’t mess up something someone else had done.

There are several WordPress plugins for this purpose that their descriptions look great.  I won’t say exactly which they were but think about this.  Once you decide on a plugin for photo albums, you essentially have to stick with it forever!  Even if it works now, will it work later?  What are the consequences of it not working?  It is unreasonable to assume that all the albums already created can be recreated under a new configuration.  Yikes.

In my case, the first plugin I tried wouldn’t run either on my own local site or the hosting facility.  Once I worked out UTF8 issues with the database, I could get it to run on my local system but not the hosting site.  The second one I tried, wouldn’t even load without fatal errors.  The third one really looked like a winner and I figured out how to configure the interface such that it would make sense – but then I found that though users controlled their own galleries, there wasn’t ownership of albums.  At that level, anyone could do anything.

Ultimately, I found a photo-album plugin that would do almost everything I wanted it to do so the site is off and flying with everyone’s personal albums as well as links to albums from their own sites.  Cool.

Support for these open-source plugins is spotty at best.

Now, from a professional developer’s standpoint, I like the concept of plugin technologies for large systems as long as you are dealing with discrete activities.  In my previous life designing commercial association software, we considered doing this but found that what we were trying to accomplish was so integrated – everything had to talk to everything else – that the approach had less appeal.

So…..not everything is roses in terms of open-source plugin technology.  Keep your eyes open and consider the future as you commit to a specific technology.

Good, Fast, or Cheap – Pick any two!

Those in the IT business understand the relationship of “Good, Fast, or Cheap – Pick any two!”  This is not something you hear from sales folks, but you hear it often from developers either when discussing internal projects or contracted developments.  I was reminded of this by one of my readers who thought I had lost my roots in serious software development!

I realize that what I have been describing in this blog is underscoring what you can do for relatively little money and expertise as you implement association software.  My intention has been to emphasize how different the world is now than it was five or ten years ago.

On the other hand, “Good, Fast, or Cheap” is still an important concept to understand particularly when you are purchasing commercial software and even more so when you request customized versions of that software or even when you just consider the implementation phase of that software.

Naturally, associations want to keep the cost down while vendors want to keep the profit up.  Unfortunately, the trade-offs are not well-known up front leading to surprised associations when the actual cost and actual time frame evolves.  What makes it particularly difficult is that you don’t necessarily know this until you are so far into the implementation that you will feel it too difficult, perhaps embarrassing, to turn back the clock and do something else.  Buyer beware!

  • “Fast and Cheap” loses “Good”.  “Fast” means you will lose on the care of design, programming, testing, and implementation.  “Cheap” means that the job is done with as little vendor effort as possible.  Everyone loses with this combination.
  •  “Fast and Good” loses “Cheap”.   “Good” can only be achieved by an army of vendor staff at premium prices.   The problem is that “Fast” has the same issues as before.  Costly doesn’t always lead to the best implementation.  “Fast” also puts the most pressure on your own staff.
  •  “Good and Cheap” loses “Fast”.  This doesn’t sound too bad except it means that you are at the bottom of the list of a vendor’s priorities and will get time when they have it available which then translates to a very late go-live date and potentially uncoordinated work by ever-changing vendor staffing.Vendors never have sufficient staff to do what they need to do by a specific time.  It just isn’t cost effective to staff for the busy times and leave them idle when times are slow.  If the pressure isn’t on to complete a contract, the vendor will favor the contract that needs to go live next.  The time frame of your implementation will slip.

None of these sound good, do they?  Seems like you lose no matter what you do.  What you need to achieve is good informed balance.

So, how do you successfully implement a large association software system?  This is where consultants, particularly those with development backgrounds, can be helpful.  Think about the following recommendations:

  1. Know exactly what you are paying for before you sign a contract.  Unknowns become very expensive.  Time-and-materials is exactly what every vendor wants and in many cases needs just to ensure a profitable implementation.  At the same time, it is cheaper than their quoted “fixed price”.  If you can be comfortable with time-and-materials it will cost you less but to do this you need to know exactly what is being done.  The more detail you have on what you need to do and how, the easier it is for the vendor to price your needs and for you to get the best overall price.If you are purchasing modifications or entirely new functionality, insist on at least high level design documents for these changes so you know what is going to be done.  Don’t sign time-and-materials contracts without this.
  2. Plan, plan, plan in excruciating detail from contract signing to final go live date.  Who is going to do what and when both for the vendor and client?  What will the deliverables be and when?  What are the criteria for acceptance?  What should happen if either party doesn’t perform according to the contract?
  3. To the extent possible, use the base software rather than modify it to match your own processes.  Yes, I know, everyone says they are going to do this but I have seldom found it to play out in reality.  Change-orders after the contract mean higher cost at a time you can’t easily negotiate.Most associations don’t need to do everything they currently do in the way they do it.  Their processes have been established and tweaked for years in ways that may be more influenced by their old software than what they really need to do with new software.  Get you staff’s buy-in to new processes prior to contract signing.
  4. Understand what the base software will actually do before you sign a contract.  Don’t just accept what the sales people say.  You need to try an entire process from start to finish before you accept that something is real.Sales people don’t want to raise issues during demonstrations even if they recognize that they exist.  Issues raise doubts.  Doubts are bad for sales.  A screen may look good but is there any real logic processing behind it?  Do not assume anything.  It is easy to provide a screen that says something that looks familiar to you but doesn’t actually do anything.  Your responsibility needs to include teasing out all the details involved in your own processes.  Then you need to compare them to the actual software.  Don’t just accept “Yes, it will do that.”  You need to actually see the process from start to finish!
  5. Plan adequate staff time for the implementation especially for training, testing, and final implementation.  Few associations have the staff to do both their full-time jobs and what needs to be done to implement a new enterprise system.  It takes a lot of your staff’s time to be successful and support for this needs to come from the top.  Don’t just make assumptions that you can just work this in.
  6. Be realistic during negotiations.  Try to understand the amount of time you are contracting for and use your consultants to do a sanity check on this.  Understand that it always takes more time than you expect but consultants often have a good sense of what is reasonable.Understand that if you force a negotiation to reduce the price, you are apt to get less vendor time and effort.  After all, though you will be told you are the most important client they have, the vendor will still need to make a profit on your business.
  7. Finally, do as much as you can prior to contract signing.  Once the contract is signed, you will have lots less influence and power than before the contract is signed.  Sad but true!

So, what do you think?  Does anyone have good examples to share?