Over the last three years, we've built out a kick-ass platform for data management and analytics.
Early on, it was a lot of new technology. We were integrating and deploying technologies at a rapid rate, almost one per month: dropwizard, spring, extjs then angular, cassandra, solr then elastic search, kafka, zookeeper, storm, titan, github, puppet, etc. It was a whirlwind.
The new technologies substantially increased productivity and agility. The platform was working. Product development became capabilities composition.
But recently, it occurred to me that the people we hired along the way and the processes we implemented to support that rapid technical evolution are more powerful than the platform itself. To support that platform approach, we adopted open-source dynamics internally. Anyone can contribute to any module, just submit a pull request. Teams are accountable for their products, but they are free to enhance and contribute to any module in the platform. Those dynamics have allowed us to keep the innovative/collaborative spirit as we grow the company.
And oh my, are we growing...
We now have half-a-dozen product development teams. Each is a cross-discipline (dev, qa, ba, pm) mix of onshore and offshore resources. The product development teams are enabled by another half-dozen teams that provide infrastructure and support services (ux/ui design, data/information architecture, infrastructure, maintenance, and devops). The support teams pave the way for the product development teams, so they can rock out features and functionality at warp speed. For the most part, the product teams use Scrum while the support teams use Kanban so they can react quickly to changing priorities and urgent needs.
Each month we have sprint reviews that mimic a science fair. Teams have started dressing up and wearing costumes. It is fun. Plain and simple. But at this last sprint review, something happened to me that has never happened in my career.
I've spent my years at two different types of companies: startups and large enterprises. At the startups, every innovation (and all of the code) was generated by hands at keyboards within a single room (or two). You knew everything that was going into the product, every second of the day. At large enterprises, innovation was stifled by process. You knew everything that was happening because things happened at a turtle's pace. At HMS, we've got something special, a balance between those worlds.
At the last sprint review, I was surprised... for the first time in my career. The teams presented innovations that I didn't know about and never would have come up with on my own. There were beautiful re-factorings, and enabling technical integrations. But honestly, I was uncomfortable. I thought maybe I was losing my edge. I questioned whether I reached a point where I could no longer keep up with everything. It was disconcerting.
I spent a couple hours moping. Then in a moment of clarity, I realized that I was a member of an Innovative Organization: an organization at an optimal balance point between process and productivity, where the reigns of innovation were in everyone's hands -- with a platform and processes that supported them.
Yeah, this sound sounds corny. But I kid you not, it is amazing. We've gone from a situation where a few champions were moving boulders up mountains, to a state where entire teams are leaning forward and pulling the organization along. I'm now happy to enjoy the ride. (but you can bet your ass, I'm going to try to race ahead and meet them at the pass =)
(Kudos to @acollautt, @irieksts,@jmosco, @pabrahamsson, @bflad for giving me this uncomfortable wedgie-like feeling)