This post is the first in a series of best practices gleaned from leading StreamBase customers who have effectively deployed "real-time" business systems.
During our recent customer tour, I was concerned to hear that one of our customers had recently decommissioned several of the 30 applications they built with StreamBase. It turned out that this was by design and a virtue, not a sign of a lack of success.
What I found leads me to the first in a series of "Business Best Practices" around real-time application development: Build Applications So Quickly You Won’t Mind Throwing Some Away.
THE SITUATION: IT IS OVERWHELMED; FAILURE IS NOT AN OPTION
Most technology groups are overwhelmed with requests for new features and capabilities from the business. At the same time, they need to innovate. And worse, some cultures actively discourage failure. These conditions lead IT to play it safe, and a conservative culture can be born that leads to safe technology choices, and an acceptance of long, expensive software development cycles.
THE SOLUTION: THE FOUR TENETS OF RAPID APP DEVELOPMENT WITH CEP
The StreamBase customer I visited changed their thinking about engineering several years ago. They changed IT leadership to one that favors speed and experimentation over control and safety. They adopted StreamBase as a key enterprise development platform because they can build apps in 2-4 weeks, rather than 6-9 months. This rapid speed of development means IT can experiment with new ideas and simply throw away those that don’t work out in the end.
In his words, there are four tenets of StreamBase responsible for this:
1) Visual programming. Event-based applications are expressed in StreamBase EventFlow™, our visual programming language designed to implement event-based systems just as you would describe them on a white board, with event-driven inputs, such as streaming financial market data, and event outputs, like messages published to a message bus.
2) Polyglot programming. Very few organizations develop applications in just one language; they use several languages depending on the job. For event-based, real-time applications, the programming language of choice is often StreamBase. But we also encourage the use of other programming environments with CEP, like Java, .NET, MATLAB, R, Python, HTML5, JavaScript, and more. StreamBase has integrated support for these environments in Studio, which makes it easier for developers to learn, but also easier to integrate existing code in an event-driven application. Polyglots (a developer who knows and uses several programming languages) can more easily adopt StreamBase and build applications more quickly because they can connect to any code on any platform quickly and easily.
3) Pre-built connectivity. The StreamBase catalog of over 150 connectivity points turns integration - usually a development task that is completed only after months of intricate coding with sockets or other messaging APIs - into a drag-and-drop experience, in some cases cutting integration time down to minutes.
4) Complete event container. Projects that use databases and traditional app servers for event-driven applications have to build custom container logic. Event-based containers require low-level socket programming, delicate threading design, event management, and more. As our customer said “it’s a whole other project just to manage and connect to event streams.” StreamBase, by contrast, comes pre-built with connectivity, monitoring, threading, management, and testing tools. You just start using them, building business logic.
THE IMPLICATION: APPS TAKE WEEKS TO DEPLOY; NOT MONTHS
This head of IT technology at a major bank told me that the combination of these four elements allows him and his team to take on new ideas more aggressively:
"The cost of doing something in StreamBase is so low that even when we envision a project that we aren't sure is going to fly, we're able to take it on because it's not a big investment of time. It's a few weeks or a month, not 6-9 months on a development roadmap. This radically shorter development cycle helps us build apps more quickly, experiment with new ideas, and throw away ideas that don't work. StreamBase helps us do this because it's visual and takes care of all the event-based plumbing for us, so we can focus on the business logic rather than how to get apps up and running."
THE LESSON: BUILD APPLICATIONS SO QUICKLY YOU WON’T MIND THROWING SOME AWAY
It's refreshing to find organizations that embrace experimentation and failure, and unique tools to make it happen. So the best practice of applying rapid development techniques can help IT departments take on more, experiment more, and innovate more is our first best practice for real-time enterprise applications: Build Applications So Quickly You Won’t Mind Throwing Some Away.