using business-driven development to bridge the business ...€¦ · using business-driven...
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
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.
Rational Unified Process
• Software Engineering Process– Architecture Centric– Use Case Driven– Iterative Organization along Time
Organization
along
Content
Understanding the Business
• Business Vision• Business Goals• High-level business requirements• Problems with existing business processes
– customer pain points, high costs, schedule issues
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 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
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
ความตองการในระดับสูง
คุณลกัษณะ
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
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