Most of the customers I work with are huge companies. When trying to get an application accepted in such an environment some are a real no brainer. Like Websphere Application Server. While others like Jira are really hard to get some resources for. I couldn't help wondering, what the reasons are for this. Let's face it, from the simple examples above it is obviously not related to anything known as quality.
Through careful reengineering I discovered a list of essential features an application must have and compiled it as backlog items ready to use for your product backlog.
As a procurement manager I want the application to be expensive, in order to live of the bonus I guess when I negotiate a 1% reduction in price.
- The price of a minimal installation is at least 5 figures
- The price for a full installation is at least 500.000 Euro
- Bonus points when there is a mandatory support option
As a procurement manager I want the application to scale only by upgraded to an enterprise super deluxe edition, so my daughter can have a horse for Christmas.
- A demo setup needs at least 8GB RAM and 4 cores
- A system for 100 users needs at least 5 such machines, plus the same number of machines as a hot backup which you need at least once a month.
- You need 20 machines when 10 of the 100 users want to use it concurrently.
As an administrator I want the application to have only minimal documentation if at all, so I can claim to be an expert after reading all of it in an hour and charge a higher salary.
- The documentation is preferable non existent.
- Lengthy documentation is acceptable as long as it written so bad that nobody gains any knowledge from reading it.
As an administrator I want the application to be void of any user community, so nobody can provide easy free solutions to problems I claimed to be really hard.
- Â the apropriate tag at stackoverflow has a maximum of 200 followers and less then 1000 questions.
- If you are looking for a real expert (one that actualy understands the product) you have to pay other my monthly salary as an hourly wage or look in a mental asylum.
As an administrator I want the application to rely heavily on as many other products as possible, so the beneficial effects of the application on my workday are multiplied.
- The application needs a database management system installation from a specific vendor. The database itself needs to qualify as an enterprise application according to this criteria
- The application needs at a queuing system, even when it doesn't have any interface to any other system but itself.
As a person responsible for deploying clients I want the application only to run on IE6 or earlier so the people stop asking me for upgrades to Windows 7 or god behold these Apple thingies.
- When the application is run in an IE 7 or above a message appears: "You are not running a compatible browser, please upgrade to IE6"
- When any other browser is used the application should react with a http 500 or it should crash the browser.
As the manager responsible for deployment of the system I want the system to be still in development, so I never have to install anything.
- The application is labeled early beta or preferable with
- "latest build from Toms machine"
As a consultant recommending the application I want the application to be really hard to install and equally hard to keep alive, so my contract stays safe for the next years to come.
- The short installation overview has at least 50 steps
- a skilled person can't install the system in less then 3 days.
As a network administrator I want the application to really hog the network, so I can get a larger budget for new shiny hardware.
- the application uses protocols like http in a way that makes caching completely impossible.
- the application downloads itself completely on every restart.
As a user I want the application to be really slow so I can't blame the application for not getting anything done
- every interaction with the application (like moving the mouse) causes the application to freeze for at least one second.
- every use case requires at least 10 such interactions.
As a user I want the application to start up really slow so I can get some coffee and drink it too in the meantime.
- Startup needs at least 10 minutes
- The application needs to restart at least twice a day.
As a CIO I want the application to use single sign on so I can claim we are doing it without bothering with what it actually means.
- The application contains its own single sign on system
- The applications SSO solution is completely incompatible to anything else (other wise we would get asked to integrate them)
As a person responsible for the security of the system I want the application to have cryptography because it is soooo coool.
- The application contains some cryptography code, preferable with nice acronym like ROT13
- The cryptography is really hard to configure, so something easy like SSL isn't acceptable
- All private keys involved need to get emailed to the support distribution list, along with the password (thats what our processes require)