Guest Column: Application development in a services-based world
- By Steve Garone
With all the recent noise about Web services, one would think that every enterprise, and every developer, is frenetically writing services and wrapping every IT asset they can identify in XML. This might be a glimpse of the future, but it is not today’s reality.
Still, trends that affect the IT world have a significant impact on development methodologies, and IT roles and careers. The resulting changes follow the evolution of IT’s role in the enterprise. In the early days, when resources were centralized and management wielded a heavy hand, it was all IT could do to keep assets running and available while it labored to create and maintain apps focused on supporting operations. The subsequent path -- from client/server computing to the advent of objects and components, through the paradigm of distributed, network-based computing -- saw IT managers scrambling to find those with the skills to support their development requirements.
Today, networks, including the Internet, play a bigger role than they did in the past. More intense cost and “time to implementation” constraints have finally accelerated the adoption of reuse methodologies and technologies. Centralization of management is back from its client/server abyss, but this time business and competitive advantage, not operational control, is the key motivator. The notion that IT can be a source and an enabler of business value is rapidly becoming the primary change agent for how applications are built. Why? Technology is behind the creation of business opportunity (just look at the Web), but now that IT is seen as a source of competitive advantage, and the business side of the house dreams of what is possible, technology and those who implement it are being pushed to catch up. IT department metrics are in flux and may quickly change from a focus on cost and meeting delivery schedules, to a contribution to profit and meeting quality goals.
As we move toward a world in which functionality takes the form of services distributed across networks and the dynamic assembly of applications, development organizations are finding themselves facing such new challenges as:
* The infrastructure that services will be built upon will take the form of an integrated “stack,” with an application server at its core. App servers aren’t new, but enterprises today seek vendors that can deliver a platform that includes other elements such as a portal, integration server, directory, identity server and, of course, development tools.
Today, the technology choice is between Java and .NET but, in either case, developers will less often be called on to make individual stack elements work together. Instead, they will be required to build on their existing skills in either environment to accomplish their goals. (Yes, there is more to .NET than traditional VB or C++.) A recent survey by The AlignIT Group (Application Servers: Studies of User Experience and Future Plans, Parts 1 and 2) shows that among those who develop applications for J2EE-based app servers, only about 17% exhibit the skills that allow them to create architectures and have a good understanding of Java design patterns.
* Web services is about integration, but the integration challenge goes much deeper. Optimizing leverage of existing IT assets in an environment where apps know no boundaries of organization or personnel, and doing so in a secure, targeted way, won’t be easy.
* IT’s new focus on business value means a stronger connection between those who require apps that add value and those who build them. While the CIO will set strategy in conjunction with the business contingency, developers will need to play that role on the implementation level. Collaboration will be demanded at all levels, from strategy and management to coding, testing and deployment.
* Scale and complexity will continue to grow; as they do, the pressures associated with delivering on quality and service levels will translate to more stringent development requirements. Adherence to standards, change management and testability, as well as overall app and service management, will have to be built in from the start, forcing developers to pay attention to these issues at all stages of the life cycle.
Long-term success will depend in part on developer reaction to these changes. How will they react to new job performance metrics? Will they be prepared to collaborate with business-focused personnel? Will they embrace automated tools that lessen the requirement for specific programming skills, or will they see these as a threat and leave them on the shelf?
The answers have been elusive to date, but they will play a major role in determining an enterprise’s success. The rules will change as applications become services and as the true business promise of distributed, network-based computing strives to become a reality.
Steve Garone is chief analyst and managing partner at The AlignIT Group, a Boston-area market research and IT analyst firm focused on helping organizations make better IT purchase decisions faster. He can be reached via e-mail at firstname.lastname@example.org.