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.

Acceptance criteria:

  • 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.

Acceptance criteria:

  • 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.

Acceptance criteria:

  • 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.

Acceptance criteria:

  •  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.

Acceptance criteria:

  • 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.

Acceptance criteria:

  • 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.

Acceptance criteria:

  • 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.

Acceptance criteria:

  • 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.

Acceptance criteria:

  • 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

Acceptance criteria:

  • 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.

Acceptance criteria:

  • 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.

Acceptance criteria:

  • 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.

Acceptance criteria:

  • 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)

Talks

Wan't to meet me in person to tell me how stupid I am? You can find me at the following events: