Abstract:
Service-Oriented Architecture (SOA) has the potential to vastly improve IT's efficiency. But to implement one at an organization, enterprises need more than just technical know-how: the leadership team has to be skilled in management as well. Especially, SOA implies different emphasis of project management. This paper describes in brief the use of system dynamics models for managing large scale SOA projects. System dynamics is a methodology for studying and managing complex feedback systems, such as one finds in business and other social systems. In fact it has been used to address practically every sort of feedback system including project management.
In this paper, we will present a framework of managing SOA projects and show how system dynamics model can be used to enhance the effectiveness and agility of SOA project management. A general SOA project lifecycle is presented and two examples are used to illustrate the needs and effectiveness of adopting quantified simulation method such as system dynamics into large-scale SOA projects.
New Challenges for Managing SOA Projects:
Business and IT value chains today have started to align themselves in the industry. Enterprises now articulate Service-Oriented Architecture (SOA) that are used to address business issues beyond IT implementation. With this change, we also need to adapt the way we structure businesses and IT landscape, define and develop architectures like SOA, and run enterprise-focused client engagements. For all these reasons, project management still plays an important role in today's IT than it ever has before.
Many companies are still in earlier stages of SOA adoption and trying to develop SOA assets for the business benefits. And yet, if companies are to implement any meaningful and long-term success from SOA, then to have a systematic manner of managing SOA projects is a fact of life that enterprises will have to become comfortable with. It has been agreed among industry analysts that lack of systematic mechanism of SOA project execution in midsize-to-large SOA projects will be the most common reason for SOA project failure. [2]
However, project managers are facing great challenge when they try to manage SOA projects. Businesses keep changing, and requests for new functions keep coming. SOA enables reuse to the extreme that they can organize programs for easy reuse, for simple maintenance and support, for coherent, consistent results across their organizations, and for easily sharing their data and resources. In SOA, business applications are composed by using a set of building blocks known as services -- some of which are available “off the shelf,” and some of which have to be built from scratch. Hence, project managers need to balance their activities of managing SOA projects. There are many conflicting forces for an SOA project: reuse vs. performance, quality vs. design speed etc.
An SOA development process can be summarized into six stages [3][4] as follows.
Service Identification
Service Specification
Service Realization
Service Deployment
Service Execution
Service Monitoring and Measurement
Service Evolution and Change
System Dynamics Modeling for Project Management:
System dynamics modeling technique has its root in soft system methodologies of Checkland and system dynamics analysis methods originated by Forrester [Forrester]. System dynamics can usually be properly applied whenever problems can be expressed as variable behaviors along the time dimension. Therefore, system dynamics has been applied in many fields for example, finance, medicine, global studies, environmental studies, information systems etc. This section presents the motivation of using System Dynamics models to represent and simulate project management activities.
Project Management provides an overall structure in order to support the customers' business objectives on strategic, functional, and operational levels. Simultaneously, project managers execute and track the project progress while ensure the managed projects are not over-budget and over-schedule. Project management defines the rules, processes, metrics, and organizational constructs needed for effective planning, decision making, steering, and control of the SOA engagement to achieve customers' business needs and challenging targets.
In general, SOA project management, like normal software development projects, defines (i) What to do.; (ii) How to do it; (iii) Who should do it; and (iv) How it should be measured. Project management has been described as one of the most important and most poorly understood areas of management. It is common to have delays and cost overruns in any projects – construction, software development, power generation etc. Project management suffers from numerous problems of costing and scheduling [6].
Building large scale SOA projects are equivalent to complex dynamic systems, each of which consists of numerous interdependent subsystems, services and components. Such complex systems like are highly dynamic. The relationships among services are usually nonlinear and hard to derive using merely mental models. Changing one part of the system may have unforeseen impacts on other part of the system. It is hard to measure and monitor large scale SOA projects due to the necessity of discovering, formalizing and quantifying both “hard” and “soft” data.
Furthermore, constructing large-scale SOA projects contains multiple interacting feedback processes, which possess the properties of self-correcting or self- reinforcing side effects of project decisions. For example, when a service does not perform well, one possible managerial response is to use of other sources to replace existing malfunctioning service. The new service brings the intended function back to the system. However, such decision may have impact on the quality of service along the other dimensions e.g. data integrity or non-compliance of corporate policies.
Bringing new services on board implies more cost and time delay due to all activities defined by the governance policy e.g. deployment, quality assurance, managerial approval process, skill-set allocation etc. All of the above issues can make the system with new service perform even worse than the original configuration. The system of managing SOA projects is a tightly-coupled system containing large number of critical feedback relationships. Hence, feedback processes are fundamental to the dynamics of the systems for managing large scale SOA projects. System dynamics is a modeling method specifically designed for describing feedback processes [7].
Project execution is a time-sensitive activity, where cause and effect are closely related in time and space. Any changes in such system may cause greater changes in other part of project. Juggling of service developers, who can be either employees or service vendors, to handle service change may then lead to delays on other services which find themselves dependent on readiness of the deferred service implementation.
System dynamics models are well suited to represent such complex relationships. Project management is also highly dynamic. Using the same example, changing services in the production may add capability of an organization in the long run, but the short run, the deployment staff needs to divert more time on learning the configuration of the new service, reducing productivity. Hence, the short term responses may be different than long-term responses. System dynamics was developed for the dynamics in complex system such as project management.
The strength of SOA is its enablement of extreme composition, configuration and customization for business functions. An organization adopting SOA is expecting to change the configuration of its business functions more frequently than those created by non- SOA approaches. However, changes imply impact on business functions which could be unwanted side- effects if not disasters.
The majority of SOA projects fail to deliver their planned objectives, substantially overrunning cost and schedules. One of the major issues for SOA project is change management of underlying services. Changes can be caused by many reasons. For example, business organization may want to increase the service quality for specific domain; or want to decrease the development cost.
A System Dynamics Model for Service Change:
Response to Schedule Pressure:
Response to Re-usability Pressure:
Concluding Remarks:
We advocate using System Dynamics modeling techniques for managing large-scale SOA projects. SOA shows great promise of aligning business goals and IT capabilities in an integrated framework, whereas services are the fundamental building blocks. However, SOA projects suffer the same fate that many software projects have in the past – overrunning their cost and schedule targets because of poor understanding of the structures and dynamics of the project activities and participating parties. SOA projects impose even more daunting tasks for project manager to fulfil the promise.
This paper has described the issues of managing large-scale SOA projects, and the motivation of using System Dynamics modeling techniques to managing such projects. Application of this approach can be used in almost any phase of SOA project lifecycle: service identification, service realization, service deployment, service execution and service change. By using System Dynamics modeling technique, a project manager can run the simulation based on her specific decision parameters before real actions are rendered, thus the decision itself becomes more robust and predictable. We continue to explore the project management issues in SOA domain, formalize them into system dynamics models and run simulation against real work scenarios. Moreover, we would like to investigate how system dynamics models into SOA governance.