During last 20 odd years I have came across various software project implementation/management methods such as Unified Process (UP), AIM, CDMFT, Data Warehouse Method Fast Track (DWM FT) and Dynamic Systems Development Method (DSDM) , Oracle Unified Method ( OUM) which is derived from UP seems to be a way forward for software projects in general and oracle software/application projects in particular.
This blog is an attempt to provide an overview of Oracle Unified Method (OUM), which can support the entire Enterprise IT lifecycle, including support for the successful implementation of all most every Oracle product applications, middleware and database. I don’t see any reason why this method can’t be used for non-oracle product sets.
I would recommend that one should use OUM as a guideline for performing technology projects, but keep in mind that every project is different and one need to adjust project activities according to each situation. Feel free to add, remove, or rearrange tasks by keeping in mind that these changes should be reflected in overall estimates and risk management planning.
OUM …?
OUM provides support for Application Implementation projects, Software Upgrade projects, and the complete range of technology projects including initial support for Business Intelligence and Enterprise Performance Management and deep support for Service-Oriented Architecture (SOA), Enterprise Integration, and Custom Software.
OUM includes following three focus area
Manage Focus Area provides a framework in which all types of projects can be planned, estimated, controlled, and completed in a consistent manner.
Envision Focus Area deals with development and maintenance of enterprise level IT strategy, architecture, and governance. Envision also assists in the transition from enterprise-level planning and strategy activities to the identification and initiation of specific projects.
Implement Focus Area provides a framework to develop and implement Oracle-based business solutions with precise development and rapid deployment.
The diagram below shows how the Envision, Manage, and Implement focus areas fit together to form OUM:
OUM Properties
OUM provides collection of best practices organized as a series of processes or workflows that can be assembled and scaled to achieve various information technology related business objectives. OUM also leverages Oracle’s intellectual capital by reusing processes, tasks, and templates from Oracle's complete portfolio of existing methods.
OUM possesses the following properties:
- Focuses on the business to assure stakeholder acceptance and delivery of the development effort's values, goals, and objectives
- Centers on architecture to provide a clear perspective of the whole system.
- During Inception and Elaboration, the objective is to define an executable architecture before committing resources to a full-scale development and implementation effort.
- Encourages adaptability and balance for scalable delivery across small and large projects possessing disparate resources and skill levels while assuring repeatable results.
- Provides rapid implementation techniques that enable building business solutions in short time frames.
- Uses non-proprietary and referential standards, such as the Unified Modeling Language (UML) and de facto standards like the Unified Software Development Process
OUM Approaches
OUM is built on five main principles derived from the Unified Process, the Dynamic Systems Development Method,8 and Oracle's existing methods. Those are:
- Iterative and Incremental
- Business Process and Use Case-Driven
- Architecture-Centric
- Fit-for-Purpose
- Risk-Focused
Iterative and Incremental
OUM, like the Unified Process (UP) from which it has been derived, employs an iterative and incremental approach to implementing software systems.
- An increment is the difference between the release of one iteration and the release of the next iteration.
- An iteration is a distinct set of activities conducted according to a devoted (iteration) plan and evaluation criteria that results in a release, either internal or external.
Rather than breaking the software implementation process into steps such as requirements, analysis, design, implement, and test; the OUM Implement focus area breaks the process into major milestones called the Lifecycle milestones.
Each OUM Implement phase may also be broken down into several iterations. These iterations represent the minor milestones of the project. OUM suggests nominal iteration counts for each phase, but the project team must develop the actual iteration plan based upon the project's characteristics. The total number of iterations in a project may range from as few as 4 to more than 12, but are generally in the range of 4 to 10.
Business Process and Use Case-Driven
Business processes and use cases are used as the primary artifacts for establishing the desired behavior of the system and for communicating this behavior among the stakeholders. Business processes modeling helps stakeholders and implementers to understand the business processes of an organization, and look at the business requirements that are satisfied by a particular business process.
Use cases models and use cases may be used to complement business processes to
- Provide a consistent mechanism to link system requirements to design and test tasks
- Bridge the gap between business modeling, business processes, and software system functionality
- Provide a consistent thread through OUM – use cases help amplify and consolidate the many other benefits of the method
- Identify implicit or unstated requirements
- Manage traceability of requirements through testing
Architecture-centric means that the system’s architecture is used as a primary artifact for conceptualizing, constructing, managing and evolving the system that is being implemented.
The architecture is the collection of models that describe the system. It contains the most significant static and dynamic aspects, and an executable architecture is the product of successive refinements. This is usually accomplished in the form of a models and prototypes, and is developed before full-scale development starts. It contains the organization of the software system to build with structural elements and interfaces, and their behavior.
OUM is architecture-centric from the beginning of the project. An architectural baseline is defined in the initial phases and expanded in the subsequent phases to produce high quality software systems in a cost effective way. The architectural baseline provides an infrastructure, often a framework that supports continuously adding or replacing components through the iterations to minimize the effect on the rest of the application.
It refers to the focus on delivering necessary functionality within a required timebox. The solution can be more rigorously engineered later, if such an approach is acceptable. Traditionally, projects have been focused on satisfying the contents of a requirements document or rigorously conforming to an existing set of work products. Often, especially where iterative and incremental techniques have not been employed, these requirements may be inaccurate, the previous deliverables may be flawed, or the business needs may have changed since the start of the project. Our collective experience shows that applying fit-for-purpose criteria, rather than tight adherence to requirements specifications, results in an information system that more closely meets the needs of the business.
A key focus of each iteration in OUM is to attack and reduce the most significant project risks. This helps ensure that the project team addresses the most critical risks as early as possible in the project lifecycle.
OUM Key Concepts
Iterations/Increments/Releases - Projects based on OUM are carried out in an iterative fashion. Each iteration is concluded by the release of an executable product which is no necessarily a complete product but can be one step along the way
Activities - Tasks are grouped into Activities. An activity groups “cross view” tasks together. Generally, activities do not cross phases.
Work Products – The output of a task or activity is called a work product to eliminate the risk of having method deliverables confused with contractual deliverables. Contractual deliverables are specifically referenced in the contract and often have a payment schedule associated with their acceptance.
Why Use OUM …?
More Focused Effort – OUM enables projects to clearly define business scope as well as the need to create enterprise business process models. This planning results in tighter scope control, more accurate business understanding, and a firm foundation for client acceptance.
Built-In Flexibility -By combining activities and tasks in different ways, OUM can be applied to many types of information technology software development and implementation projects.
Saves Time -Seasoned information technology practitioners representing years of experience have contributed their knowledge to OUM. Project teams can take advantage of this experience by leveraging these leading practices along with industry standards.
Higher Quality -OUM subscribes to an iterative approach that incorporates testing and validation throughout the lifecycle, rather than testing for quality only at the end of the project.
More Cost Effective -OUM facilitates improved control of project expenses by using a flexible work breakdown structure that allows you to perform only necessary tasks.
Reduce Project Risk - Implementing an iterative, broadly applicable method mitigates requirements mismatch. A key focus of each iteration in OUM is to identify and reduce the most significant project risks. This ensures that the most critical risks are addressed as early as possible in the project lifecycle, which results in a measurable reduction of schedule and budget risks.
Critical Success Factors
Critical success factors may affect the selection of a project service. The following are typical critical success factors and their impact on the success of the implementation
Project Size: OUM projects are most ideal for projects of less than 900 man-days. It is not a problem that the project is larger, but then you should consider partitioning the project into smaller projects each of less than 900 man-days.
Project Duration: OUM is built for rapid delivery of business benefits. Therefore, it is recommended that OUM projects have duration of less than nine months. Ideally, projects that initially need a longer duration for completion should be partitioned into a sequence of projects each of less than nine months duration.
Type of Organization: The organization culture can be of vital importance to the success of the project. Organizations with a lot of bureaucratic procedures and work methods may not be able to participate and work using a OUM approach.
Time-Critical Development: OUM is well suited for time critical development. However, if the end date easily can change, then many of the benefits of OUM will be lost, in short time bound end date project option is more beneficial.
Baseline High-Level Requirements: OUM recognizes that requirements will change throughout the process, however, to be able to determine a well-defined scope for the project, you need to be able to baseline the requirements on a high-level.
Prioritizing of Requirements: To be able to deliver the most critical requirements first and to steer the development effort throughout the project, you need to prioritize the requirements.
Availability and Commitment of Ambassador Users: OUM uses iterations as a basic principle of development and implementation; the ambassador users provide input for determining the requirements as well as for verifying the end result of each iteration. Well-skilled ambassador users availability is the key.
Skilled Development Team: OUM is an approach with short delivery timescales where there is little time for learning on the job. Therefore, the project is more dependent on the current skills of the team. If there is a lack of appropriate skills in the development team, at least one skilled resource should be included to support the team. This resource time and effort must then be planned and estimated accordingly.
Visible User Interface: It is easier for the users to validate the result from the iterations through a user interface like a page or a screen. If the system being developed does not have a visible user interface that covers a large portion of the software system, if will be necessary to find other means to validate the system (for example, by showing flow diagrams, creating simulations of integration, etc.).
OUM is evolving … more to come.
The vision is to support the entire Enterprise IT lifecycle, including support for the successful implementation of every Oracle product – applications, middleware, and database.Upcoming releases of OUM will provide enhanced support for Oracle's full complement of Enterprise Application suites including: product-suite specific materials and guidance for tailoring OUM to support various engagement types. Watch this space for more..