Given: business software developers are people finding a better way* – we’re writing software to help improve the business.

a straight ascending line approaching infinity with a curved descending line approaching zero

A cost center improves by spending less. Therefore, the impact of our software development effort approaches a limit of zero. The law of diminishing returns kicks in, and effectiveness decreases logarithmically over time.

A profit center improves by earning more. Therefore, the impact of our software development¬†effort approaches a limit of … infinity (theoretically, at least).

This is a gross over-simplification, but the dynamics are real.

* Apologies to Dana Corporation. My dad always said the slogan on their trucks reminded him of me.

how do you spell success?

Saturday, 27 March 2010

The Amway salesman had a simple answer: “$-U-C-C-E-$-$”. We took issue on a meaning-of-life level, but I digress.

The software developer says the system is running as specified. The Enlightened software developer says the system is running as the business owner and domain experts say it needs to.

But leave it to the business analyst to point out that a crucial group of users still have no idea how to use the system. Should circumstances beyond our sphere of control affect how we rate our status?

Eric Evans woke me to this with his discussion of upstream/downstream relationships between bounded contexts. Using his criteria, a system/project/team is upstream from another if (and only if) it can provide real value independent of the related system/project/team. If my application is up and running, and all of its run-time and batch-process dependencies are fully functional, but it exists solely to provide data or behavior to an application that has been canned, nobody cares about my success.

Or putting it another way…

If an application is running in the forest, but there’s nobody there to use it, does it really make its SLA?