I am trying to regain some perspective after splitting my days between startups charging along at a break-neck pace and corporate IT chugging along well-worn rails.
The startup IT world is compelling in its creative fecundity – new features and functions pouring forth from the latest open-source tools, operated by young, intelligent, energetic workers that slough off disappointments and set-backs with a shot of Red Bull.
But so much of the startup world’s data today is, frankly, trivial and disposable: Children’s games, reservoirs of transient messages, amusements and eye candy; “nice to have” information of all sorts, but very little of primary importance. In part, this is because very few enterprise software firms remain after a decade of consolidation, and those firms are so large, little enterprise software gets built at startups anymore. Even when a startup’s data is important (such as personal finances), web data is usually redundant to a “real” system of record in an enterprise somewhere. So much web data is therefore, ultimately, disposable. No wonder startup’s view testing as a troubling annoyance, and really love the idea that customers can and will test for them.
The corporate IT world is also compelling -- in its devotion to robust solutions. New feature requests are pored-over as carefully as the welds that hold a fighter plane together. More often than not, the workforce consists of graying baby-boomers devoted to finding a solution will hold fast even in a hundred-year storm, deeply fearful of failure, for the security of their jobs, if not for their customers.
The essence of corporate IT today is integration, the endless gluing of one application with another extant application. And all this plumbing is ceaselessly stressed by business process changes that test the limits of human adaptability. There is usually no practical alternative to endless cross-functional meetings where a dozen people grope for a common language and understanding, and too often end up with a fairly trivial application no matter how important the data, perhaps because that’s all they can find so few shared words to agree upon.
All this could mean nothing more than:
Delivered function points = Feature Requirements / Data significance.
If the data’s not important, then features flow into the code like water over