I recently traveled by trains across the great Indian plains, from Pune to Kolkata (erstwhile Calcutta), a journey of nearly 1400 miles. I had procured the train ticket sitting in my bedroom in Tallahassee FL, printed it out, and on producing it to the ticket examiner on board the train along with a picture ID, all was hunky-dory.
This was not always like this.
I mean, if you produced the right ticket at the right time things are bound to be hunky-dory; but earlier the procuring part had more challenges than sitting in a bedroom and printing things out. All through my childhood and early youth, we had regular family vacations traveling by train to distant parts of a very diverse India. The excitement of the vacation hit us early; two months prior to the travel date we had to queue up at the railway reservation counters around four in the morning. The counters opened at ten. Arriving at quarter past four could have cost us the vacation.
In the late 1980s and early 1990s, my brother was involved in the project that built the online passenger reservation system for the Indian Railways. Indian Railways mimics India in its size and diversity, carrying more than a million ton of freight traffic and about 14 million passengers daily across 6,856 stations (http://www.indianrail.gov.in/). No computerized system for reservation existed before, all bookings were done across the counter, manually. This was a greenfield projects in a very true sense of the term – projects do not get that green any more. This was also an enterprise software project of the most gigantic proportions: involving not just one enterprise (Indian Railways is quite an enterprise in its own right, a separate government department presenting its own annual budget to Parliament), but touching the lives of millions of people in a direct way. The software framework built by this project was later enhanced with a Web interface, which allowed me the facility of getting Pune-Kolkata train tickets from my bedroom in Tallahassee.
But the online passenger reservation system did something more than providing an online passenger reservation system. (Interestingly, when the system was commissioned, online did not necessarily mean Web based -- it merely referred to something that was available in a way time and place were of no constraint to the user.) It brought in a radical change in legacy thinking -- the Indian Railways was no longer a bumbling behemoth of public transport system, it was seen more as a modern and flexible mass transit infrastructure. This is the kind of change great enterprise software systems usher in. They not merely change the way of doing, they also change the way of thinking.
To change ways of doing and thinking, we need to understand what needs to be changed, and be able to measure the change when it is taking place. Metrics play a vital role here; people who build successful enterprise software know this for sure. The book Metrics-Driven Enterprise Software Development: Effectively Meeting Evolving Business Needs shows us how we can build and play with this kind of metrics, and get something useful out of them on the way.
Enterprise software is about people, more often than not, enterprising people.