using business-driven development to bridge the business ...€¦ · using business-driven...

57
พงศธรณ สุขุม 6 มีนาคม 2551 Certified Rational Instructor – OOAD/UML, RUP Certified Rational Consultant - RMUC SPIN Advisory Committee Using Business-Driven Development to Bridge the Business/IT Gap with Rational Unified Process

Upload: vonhan

Post on 17-Apr-2018

218 views

Category:

Documents


2 download

TRANSCRIPT

พงศธรณ สุขุม6 มีนาคม 2551

Certified Rational Instructor – OOAD/UML, RUPCertified Rational Consultant - RMUC

SPIN Advisory Committee

Using Business-Driven Development to Bridge the Business/IT Gap with

Rational Unified Process

Topics

• Business-Driven Development– Early Phase

• Rational Unified Process– Business Modeling– Requirements Management

• Best Practices

Standish Group CHAOS Report

• 1994 Report• 8380 Applications• Resolution Type 1

– Project Success

• Resolution Type 2– Project Challenged

• Over Budget, Less Features

• Resolution Type 3– Impaired

• Cancelled

Resolution

Project Resolution by Type

Type 252.7%

Type 331.1%

Type 116.2%

Analysis

• Project Success Factors1. User Involvement2. Executive Management Support3. Clear Statement of Requirements

• Project Challenged Factors1. Lack of User Input2. Incomplete Requirements & Specifications3. Changing Requirements & Specifications

• Project Impaired Factors1. Incomplete Requirements2. Lack of User Involvement3. Lack of Resources

Why Business-Driven Development ?

• IT departments must move away from creating IT-centric solutions

• Move toward creating solutions that realize one or more business process

• Business-driven development (BDD) is a methodologyfor developing IT solutions that directly satisfy business requirements and needs

What is Business-Driven Development ?

• Methodology for developing IT solutions that directly satisfy business requirements and needs. – This is achieved by adopting a model-driven approach that

starts with the business strategy, requirements and goalsand then transforms them into an IT solution.

– The transformation is typically achieved by applying modeltransformations. Due to the alignment of the business layer and the IT layer, it is possible to propagate changes of the business (semi-)automatically to the IT systems.

– This leads to increased flexibility and shorter turnaround times when changing the business and adapting the IT systems.

BDD Phases

• Model• Develop• Deploy• Monitor• Analyze & Adapt

Rational Unified Process

• Software Engineering Process– Architecture Centric– Use Case Driven– Iterative Organization along Time

Organization

along

Content

Unified Process - Hump Chart

Unified Process - Hump Chart

Unified Process - Hump Chart

Unified Process - Hump Chart

Unified Process - Hump Chart

Business Modeling Workflow

Business Modeling Workflow

Describe Current Business

Describe Current Business

Understanding the Business

• Business Vision• Business Goals• High-level business requirements• Problems with existing business processes

– customer pain points, high costs, schedule issues

Business Modeling Workflow

Identify Business Processes

Issues

• Natural language is probably the primary mechanism for communicating requirements

• Programmers who do not understand the business– encoding misunderstood requirements into low level

machine code

• Business experts who do not understand how to write specifications

• Natural language can often be ambiguous or incomplete

Success

• Closing the gap between business and IT depends on improved communication between business analystsand software architects.

• Solutions are built based on the needs of the business, but are flexible, enabling the business to rapidly understand the impact of changing business needs and to respond to them appropriately.

Model

• Creation of Business Process Models (BPMs)– model the business processes that need IT enablement

• Communicate the business needs to the IT realm – Measurements through ROI, KPI, etc.

• Bridge the communication chasm by using well-articulated BPMs– Create a link between what the business needs and what IT

implements and delivers

Business Process Modeling Notation

Business Actors

• Business users• Interact with the Business

Customer

Business Workers

• Showing roles and responsibilities• A role or set of roles in the business• A business worker interacts with other workers and

manipulates business entities to participate in the realization of a business use-case

Sales Person Product SpecialistSolution Owner

Business Entities

• Showing products, deliverables, events• A "thing" handled or used by business workers

Product

Customer Profile

Service

Order Delivery Schedule

BM-RM

• Outputs of the models can be used as inputs to the requirement gathering phase

• The activities or process steps that make up a given business process model can be analyzed to form the basis of use case modeling

• Based on the use cases, the application architectureis structured and the enterprise services are identified, designed, developed, and subsequently wired together as service composites that realize the business processes

ExampleBusiness Use-

Case Model

Business Object Model

Use-Case Model Step 1

Use-Case Model Step 2

Analysis Model

Unified Process - Hump Chart

Requirements Management

Making sure you– solve the right problem– build the right system

by taking a systematic approach to– eliciting – organizing – documenting – managing

the changing requirements of a software application.

Requirements Management

Problem

Solution Space

Problem Space

Needs

Features25-99

SoftwareRequirements

Test Procedures Design User

Docs

The The Product Product To Be To Be BuiltBuilt

Traceability

ความตองการในระดับสูง

คุณลกัษณะ

Requirements Workflow

Requirements Workflow

Understanding Stakeholder Needs

เอกสารวสิัยทศัน

Problem Statement

[describe the problem]

[the stakeholders affected by the problem]

[what is the impact of the problem?]

[list some key benefits of a successful solution]

A successful solution would beทางเลือกที่นาจะนํามาใชอยางไดผล

The impact of which isผลกระทบ

affectsมีผลตอ

The problem ofปญหาเกีย่วกับ

Product Position Statement

[target customer]

[statement of the need or opportunity]

is a [product category]

[statement of key benefit; that is, the compelling reason to buy]

Thatที่มีคุณลักษณะสําคัญ

The (product name)ชื่อของระบบที่ตองการ

Whoผูซึ่ง

Forสําหรับ

[primary competitive alternative]

[statement of primary differentiation]

Our productจุดแตกตางสาํคัญ

Unlikeไมเหมือนกับ

SOA Implementation

• Enterprise solutions as federations of services connected by well-specified contracts that define their service interfaces

• Systems are composed of collections of servicesinvoking operations defined through their service interfaces

Deploy / Monitor

• After development, the project moves to the deployment stage during which the developed components are exposed as publishable, location-transparent, and discoverable services. These software services are deployed to an execution runtime, such as an application server.

• Business processes can be monitored for real-time performance and data capture, reporting, and analysis

Analyze

• The steps in the business process (as modeled in the first step) need to be assigned various business metrics (for example, ROI and KPI) against which run-time performance, latency, and other factors can be measured.

• Measurement is essential to validate whether the IT solution meets the needs of the business as defined by a service level agreement (SLA).

Best Practices for BDD

• Adapt the Process• Balance competing stakeholder priorities• Collaborate across teams• Demonstrate value iteratively• Elevate the level of abstraction• Focus continuously on quality

Adapt the Process

• Right-size the process to project needs • Adapt process ceremony to lifecycle phase • Continuously improve the process • Balance project plans and associated estimates with

the uncertainty of a project

Balance competing stakeholder priorities

• Understand and prioritize business and stakeholder needs

• Center development activities around stakeholder needs

• Balance asset reuse with stakeholder needs

Problem Space

Solution Space

Needs

Features

Software Requirements

Collaborate across teams

• Motivate individuals on the team to perform at their best

• Encourage cross-functional collaboration• Provide effective collaborative environments• Integrated collaboration across business, software,

and operation teams

Demonstrate value iteratively

• Deliver incremental value to enable early and continuous feedback

• Leverage demonstrations and feedback to adapt your plans

• Embrace and manage change • Drive out key risks early in the lifecycle

Elevate the level of abstraction

• Reusing existing assets • Leverage higher-level tools, frameworks, and

languages • Focus on architecture

Focus continuously on quality

• The entire team owns quality • Test early and continuously• Incrementally build test automation

Benefits of BDD

• Increase the agility of the business • Helps prioritize and align IT initiatives with

business imperatives • Simplifies the process of cost justification for IT

budgets within an enterprise

Additional Information

• Business Process Modeling Notation– http://www.bpmn.org/– http://www.bpmi.org/

• Unified Modeling Language– http://www.uml.org/

• Books:– Managing Software Requirements: A Use Case Approach

(2nd Edition) - Dean Leffingwell– Writing Effective Use Cases - Alistair Cockburn – Applying Use Cases: A Practical Guide (2nd Edition) - Geri

Schneider

Questions & Answers

?

www.waveman.com

Thank You...

Extra Slides...

Using Business Driven Development to Bridge the Business/IT Gap with Rational Unified Process

Application development and software engineering have been substantially influenced in the past by evolving platform technologies. However, the software industry has to some extent reinvented itself a number of times without adding appreciable new value to companies trying to leverage computer technology to run their business.

Business Driven Development is an attempt to refocus software engineering onto the problem domain first so that the right problems are solved the right way. It is a development process that starts with business goals and objectives, and ends with verifying that deployed systems meet them. Along the way BDD helps clarify the roles and responsibilities involved in systems development, the artifacts they produce and consume, and the tools they use to create them.

Six Best Practices

• Develop Iteratively• Manage Requirements• Use Component Architectures• Model Visually (UML)• Continuously Verify Quality • Manage Change

Business Models As Inputs

• Responsibilities of actors supported by the system• Business processes to automate in the system• Types of information to manage

TraceabilityBusiness

Use-Case ModelBusiness

Object Model

Business Modeling

System Development

Design Model

Use-CaseModel

ImplementationModel

Design Model

Guidelines to Map Business to System Use-Case Models

Application System or Subsystem

Business Workers

Business Use Cases

Business Actor

System Actor

Business System

Use Cases

Subsystem