Is it just me or is life moving at a faster pace? OK, that was a facetious question. Let's get right to it: the pace of life, or at least the pace of business, is accelerating every day. The rate of change around business strategy, business processes, requirements…it's all ramped up by orders of magnitude just over the past few years.
This increased rate of change has carried right through to technology, which is just an enabling tool for strategy and processes when you get right down to it. If the rate of change for business has picked up, the lifecycle has shortened even more so for technology. I can remember a few years ago when I realized that any computer I purchased would be obsolete within a few weeks. Now I can't even keep up with the leading edge on my smart phone!
The impact has also rippled into enterprise applications development. Business is moving so quickly that there's just no time to write new solutions entirely from scratch…those days are gone. What I'm seeing more of these days is solutions being assembled rather than written from scratch…it's faster. Enterprise apps developers are assembling pre-existing components and services together in new and creative ways. And, once again...the assembly is faster.
Assembling enterprise apps is similar to building a mashup web app: it's based on creating what already exists in new and creative ways in order to meet a perceived need. And, in the enterprise apps world, we're seeing solution architects turn their focus from "what can we build to meet the need at hand" to "what can we assemble or stitch together to meet the need at hand".
The gist of enterprise applications solution design is moving from "what do we build" to "what do we reuse and connect". Think about that the next time you're performing or watching development work: how much is about the build and how much is about the assembly? I'll wager that you'll see the shift for yourself.
This is one of the big upshots underlying Fusion Applications. The apps were created, to a great degree, using this assembly method of development. And because of this, extending the apps is based on this assembly approach to development (connect pre-existing services and components in new ways). It's a quicker way to develop.