A Money-Saving Software Pivot
Joshua Kerievsky ????
Helping organizations deliver better software sooner | Dad | CEO | Entrepreneur | Author | International Speaker | Software Designer | Tennis Player
One week before going into production with a web-based system created by a fledgling dot com in San Francisco, a manager discovered that the production license cost for WebSphere, an off-the-shelf component, was extremely expensive. The company had been using a WebSphere development license, which didn't cost very much and they were shocked when they learned how much a production license would cost. They called several developers into the boardroom and asked if anything could be done.
I was one of those developers. I had no particular affection for WebSphere. Before I'd arrived on the team, they had chosen WebSphere as a key component of the system, since it was sold as something that could handle many difficult tasks. Over several months it became apparent that WebSphere wasn't very good at many of the tasks for which it was chosen. Eventually the team was only using it for something called Object-Relational Mapping (ORM), a way for object-oriented software to get data in and out of a database.
The question we debated in the boardroom was whether we could get rid of WebSphere altogether and thereby save lots of money when our system went into production. The trouble was, we were days away from our production release.
Several people said it was too late to make a change. Yet a majority of us felt we could safely remove WebSphere entirely by using a different ORM (the year was 2000, so we had limited options) or rolling our own. The majority vote won the day and we got to work.
Three days later our system was running perfectly without WebSphere and a few days later we went into production without a problem.
What enabled such agility?
Tests and talent.
We had a boatload of automated microtests (a.k.a. micro-focused unit tests that run in microseconds) thanks to our rigorous practice of Test-Driven Development. We also regularly produced automated acceptance tests. All of those tests were an invaluable safety net, giving us the confidence to work faster.
We also had a talented and fearless team. As we dug into the problem, it turned out that our ORM needs were not very sophisticated. This meant that rolling our own ORM solution wasn't so hard.
Quickly pivoting from WebSphere to our own ORM solution, a few days before going into production, remains one of my favorite memories of being truly agile (defined as "moving with quick, easy grace"). We had saved the fledgling dot com gobs of money, we'd simplified the software stack and we'd gained new confidence in our ability to make safe changes thanks to a process based on extreme programming.
Genuine agility lets you pivot quickly. Pivoting quickly can be good for your finances.
That's truly beautiful Joshua. Hope to be able to tell a story such as that one, someday.
Senior IT Leader
7 年Nice story. TDD done all along the journey made an "impossible" last minute vendor change possible, and safe.