I feel sorry for developers today. They've got a tough job ahead of them, what with service-oriented architecture, Web 2.0 technology, the demands for various types of integration and, very soon, multi-core processors.
As an IT leader, you need to understand the new challenges your development team faces. Recently, I've identified three challenges developers face with SOA and Web 2.0 technologies.
Challenge Number 1: Managing the IT Culture and Development Cycle Eric Newcomer, the CTO of Iona Technologies, recently wrote about SOA trends for 2008. The very first trend he mentioned: addressing cultural issues within IT, specifically when it comes to the development cycle.
Developing services is very different from application development. Consider your typical IT development department. In a good situation, you have teams that build an application, usually developed for a specific business unit or two. The development cycle has deadlines, with a clear client, a clear budget, and a well-established testing phase for correcting errors.
With services, you might have a development team working on one service, but you probably won't have a single business unit as a client, a strict deadline or budget. The service could be used for many different purposes and, even if it's not reused, it still needs to be developed with reuse in mind. And testing services is much more complicated and, frankly, less systematic than application testing.
Iona's customer advisory board said SOA required companies to address cultural issues such as architectural governance programs, cross-departmental budgeting, and shielding service developers from application deadlines:
"The right IT environment needs to be cultivated for SOA success. This is virtually the opposite of the environment found in a typical IT shop that focuses on bespoke application development and maintenance. In a successful SOA environment, resources, tasks, budgets and skills need to be shared across projects instead of dedicated solely to a single one of them."
I'd like a show of hands for how many of you have prepared for SOA by making these cultural changes. Uh-huh. That's what I thought.
Challenge Number 2: The Learning Curve Developers have always been under the gun to learn new languages as they're created and evolve. It's no small task, but now the trend is toward software abstractions, which will bring its own challenges.
For instance, Newcomer predicts there will be more interest in enterprise integration patterns and SOA patterns in 2008. He also discusses how new development platforms -- specifically, OSGi -- and domain-specific languages will become more popular, which, again, add to the list of new skills your developers will have to cultivate.
Challenge Number 3: Integration in Uncharted Lands In some cases, developers are straying into uncharted territory -- yet in this increasingly virtual and co-dependent IT landscape, they still must get applications and data to integrate with everything else.
As this piece from SOA World points out, there's still a lot of custom code needed to integrate third-party widgets. Also, there isn't a platform that integrates rich internet applications with SOA. So, developers must piece together applications, which means they must spend time "finding, integrating and versioning the various pieces of their RIA development platform."
As a side note, one side effect of this challenging development climate is that it's easy to let code ramble like kudzu along a Georgia interstate. John Crupi of JackBe, an enterprise mashup software company, pointed this problem out after reading that the Future Combat System (FCS) would have have more lines of code than Windows XP
"Unfortunately, once we've gotten the SOA part right, we're falling back on old habits by building big apps right on top of our nicely layered, business-granular services! Some of us are even creating these big apps using fancy new RIA (Rich Internet Apps) tools like Silverlight, Flex or Ajax. But these are still fat apps!"
There are probably more challenges I haven't listed - the confusion over when, where and how to use SOA springs to mind - but you get the idea.
Personally, I suspect programmers love these type of challenges -- but they still need the right development environment (ahem) to succeed.
Unfortunately, what tends to happen during a weak economy is that companies add demands and pressure without the resources needed to do the job. Hence, we have Dilbert's pointy-haired boss.
Don't be the pointy-haired boss. Find ways to mitigate these challenges so your developers can deliver.