I’ve been working consulting/contracting for awhile now. A very nice break from the string of technical executive jobs I’ve held for the previous 20 years or so. I get a lot more time to work on software design and actual coding — which I still love doing far more than managing people or companies. For much of this recent period I’ve been spearheading the development of a new Web application ecosystem named DECK DecisionWare here at Spieker Point.
I have watched in disbelief through my career as time and again we missed on contracts or refused to engage because of the risk associated with developing “complex” Internet facing applications. Why are we continuously redeveloping the same software solutions over and over again in slightly variant versions? Features like authentication, user enrolment, online help, document management, contact management, process management, dashboards, business intelligence, business rules, payment processing. Surely by now we have these under control. There are hundreds of examples. Why as an industry are we so inefficient at reusing our software investment? When I left my last CTO position I was determined to do something about this. And have a little fun for a change.
The idea originated while I was the CTO of Aquiring Systems at ACI Worldwide and later at Planet Group. I wanted a toolbox for Web applications that I could just reach into and assemble powerful applications from. Something like a buffet where I walk down the aisle and put the already finished dishes onto my plate in a matter of minutes instead of hours or days.
Of course, this idea is neither revolutionary or new. Its not even all that inspired. Its just really hard to implement in practice. Why? Because it takes time, effort, discipline and most importantly expertise to do the necessary abstraction and generalization of software implemented for a specific purpose into something that is general purpose. Development is driven by specific product requirements or by a particular customer who is paying the bills. It takes real commitment to extract the useful bits of specific functionality and generalize it into a module/component that is applicable in the general case. There is a lot of good subsystems around, but their packaging and integration support sucks. You have to be a domain expert to use them efficiently.
Happily, a rare situation happened with Spieker Point and the DECK DecisionWare project. I had the time, inclination and ability to develop on my own dime in an environment that was a perfect test bed and source of a variety of custom software development projects. I could invest in the technology while SpiekerPoint tracked down customer requirements and delivered custom solutions based on that technology. It really couldn’t have worked out better.
We started with Grails. It is a JEE framework implemented in the Groovy language and using the Rails “code by convention” pattern. Most importantly it provides a robust, flexible mechanism for incorporating software plugins. As it turns out, these are the perfect vehicle for a delivering a set of integrated modular functionality components. There is a community of plugins that are available for use, but as is often the case, the community provided versions just aren’t good enough. They tend to be poorly supported and there is little to no thought on integration with other plugins. Ironically there is a strong culture against integration because it reduces their generality. Nobody thinks to do a collection of components that work together and depend on each other.
The result is surprising even to me. We can produce ground up applications for small/medium applications in a month. We can have functional prototypes in a week. We spend > 80% of our time on customer specific functionality and the remainder split on provisioning/deployment and necessary extensions to the ecosystem. DECK DecisionWare has evolved to the point where we spend most of our time integrating some truly leading edge technology like knowledge systems, workflow management, policy management and business intelligence engines for an ever increasing number and size of customer.
At this point, I’m willing to make some aggressive claims about DECK DecisionWare:
- If you have a product idea that is Internet or Cloud visible, then we can do it for you faster and better than anything else. We have 10+ happy customers who will verify this.
- If you have a hard problem that needs things like business rules, workflow / business processes, business intelligence, we can do that for you faster than anybody else.
- If you want to integration with mobile, Web and desktop interfaces, we can do that for you right out of the box.
- If you want access to your existing data, produced by your existing applications, without interruption, replacement or extension, we can do that for you right away.
Want to learn more? visit www.deckdecisionware.com or drop us a line – we’d love to hear from you!