Thursday, April 25, 2013

Software Extensibility Manifesto

The Extensibility Manifesto:

What users and customers should demand--what IT and vendors should deliver:

Extensibility should provide the ability for a non-programmer to adapt software to meet evolving business requirements through user interface configuration.

Extensibility Shalt:
  1. Be done at runtime through product’s UI
  2. Require no Redeployment
  3. Require no Downtime
  4. Require no consultants or coders
  5. Work after upgrades
  6. Be only done by privileged “users”
  7. Be version-able (promote/rollback)
  8. Be holistic (applies throughout: security; API, etc)
  9. Be share-able (think app store)   
  10. Be isolated if multitenant
Small print:
Also support all other typical personalization and customization that would be expected; don’t impact other “-ilities”--especially scalability or reliability.


By applying adaptive architecture techniques, the points in the manifesto are achievable;  users are starting to expect it, as they've had a taste from the likes of Salesforce.com, Intuit's Quickbase, and Citrix's Podio.

Moreover, users/customers are tired of being told "NO" by IT; for that matter, they're tired of being promised that something will be done once it reaches the top of the priority list.  Software vendors and IT need to enable the customer, operations, or other system specialist to adapt to the business needs in real-time.

No comments:

Post a Comment