The Rational Unified Process, or RUP, is a software engineering process framework developed and marketed by Rational Software. It comprises many software development best practices, harvested by many contributors, over many years of experience, in a wide variety of situations. It provides a disciplined approach to assigning and managing tasks and responsibilities in a software development organization. By applying this process, software development teams can produce high-quality software that meets the needs of its end users, and do so within a predictable schedule and budget.
The RUP guides software practitioners in effectively applying modern software best practices, such as developing iteratively, taking an architecture-centric approach, mitigating risk at every stage in the process, and continuously verifying the quality of the software. Although thousands of projects today are using the RUP effectively, many teams are intimidated by the thought of implementing a new process that they perceive as large and complex. The RUP does not have to be large, and it is not complex.
The goal of this book is to show you how simple the RUP actually is. It explains the underlying software development principles behind the RUP and guides you in the application of the process in your development organization. It will also show you the way to carve a RUP Process Configuration of the right size for your organization or project.
Why We Wrote This Book
During more than a decade of assisting companies in adopting the RUP and its predecessors and six years of leading the development of the RUP product, we have had the opportunity to see what works and what does not. We have seen the rewards of successful adoption of the RUP, and we have seen the challenges that projects and team members may encounter along the way. We have also been privileged to work with many leading software practitioners and have learned from them through daily interaction and practical experience in actual projects.
We felt there was a need for a book on the RUP that not only tells you what to do, but also what not to do.
Lately, we have seen a number of companies adopt too much of the RUP. Yes, there is such a thing as "too much of the RUP." We felt there was a need for a book on the RUP that not only tells you what to do, and what artifacts to produce, but also tells you how to streamline your process and what not to do. We wanted to explain how to adopt the RUP in practice, and when to apply what parts of the RUP in a given project. We wanted to help you understand how to apply the RUP to projects of different sizes or of different types.
Through this book, we want to share some of the insights we and our colleagues have gained over the years: Our intent is to provide Project Managers, Analysts, Architects, Developers, Testers, Process Engineers, and other team members and stakeholders with an easy-to-understand guide to the RUP. We have done this by extracting, from our practical experiences with the RUP, the essence of what each role needs to know about the RUP and explaining their role within it.
This book is not a substitute for the RUP product itself. While the book provides a couple of hundred pages of practical guidance, the RUP product provides thousands of pages of direction for a wide array of roles and activities, as well as templates for accelerating your work. It also provides tight integration with desktop tools, a search engine, graphical navigation, and other features you expect from a Web-based knowledge base. Unlike this book, the RUP is continuously evolving, bringing you up-to-date guidance to apply to your projects. Finally, this book will also guide you in customizing the RUP framework to suit your specific needs.
What You Will Learn from This Book
By reading this book, you will learn
- The RUP's underlying principles, which have been validated by hundreds of successful software projects
- How these principles are applied in practice, by walking through each phase of a RUP project
- The roles and responsibilities of Project Managers, Analysts, Architects, Developers, Testers, and Process Engineers in a RUP project
- How to incrementally adopt and configure the RUP with minimal risk
- How to identify common patterns for failure, and how to avoid them
Who Should Read This Book?
This book is targeted specifically to
- All members of a team using, or about to use, the RUP, including Managers who need an introduction and overview of the RUP and who would like to understand its practical application
- Practitioners on a software project: those Project Managers, Analysts, Architects, Developers, Testers, and Process Engineers who want a detailed understanding of the RUP and their specific role within a RUP project
- Managers, Process Engineers, and others who want to understand how the RUP can be adopted in their organization
Structure and Contents of This Book
This book is divided into four parts: introduction, walkthrough, adoption, and role-specific guidelines.
Part I introduces the RUP. Chapter 1 explains what the RUP is and the motivation behind its development and its application. Chapter 2, "The Spirit of the RUP," describes the underlying principles behind the RUP--these are based on the experiences gleaned from a number of successful projects and distilled into a few simple guidelines. Understanding these principles will help you better apply the RUP to your own projects. Chapter 3 provides a method for comparing processes, and we use it to compare the RUP to other agile processes, to more conventional processes, and to process assessment frameworks such as SEI CMM and SPICE. These comparisons will help you understand which project type should use what type of RUP configuration. Chapter 4 provides an example that applies the RUP to a very small project: one person for one week. By peeling away the ceremony needed for larger projects, you can focus on the essential elements of the RUP.
Part II presents the RUP by walking through each of the four phases in a RUP project: Inception, Elaboration, Construction, and Transition. Chapter 5 addresses some common misconceptions of the four phases by explaining how the iterative approach applies to them. Chapters 6- 9 describe each of the four phases in detail. We focus on what is to be achieved--that is, the objectives of each phase--and guide you in reaching those objectives. This will help you to stay focused on the most essential activities in an actual project. Additionally, we present the RUP activities in a time-based perspective--that is, in the order they are applied in a real project--to give you a reference to understand when to do the activities as you work through a project.
Adopting the RUP requires some preparation and some preliminary knowledge on the part of the adopting organization. Part III provides basic knowledge in key areas to support a streamlined implementation. Chapter 10 walks you through the RUP product, detailing how it can be extended and configured to meet project- and organization- specific needs. Chapter 11 briefly outlines some strategies that may be useful for implementing the process including incremental rollout, pilot projects, and training curricula. Our experience shows that moving from a waterfall approach to iterative development can be a difficult transition for Project Managers, and Chapter 12 provides guidelines for planning a RUP project. Over the years, we have seen patterns of success and patterns of failure in RUP adoptions. Chapter 13 discusses the patterns of failure and how to avoid them, guarding you from repeating the mistakes of others.
The RUP product provides comprehensive guidelines for a wide array of software development activities. Part IV, Chapters 14-18, presents guides for each of the five key roles in any software project: Project Manager, Analyst, Architect, Developer, and Tester. For each role, we present the RUP from that role's perspective, and we describe the mission, the desired qualifications, and the key activities, as well as recommended reading and training. Note that there is no separate chapter for the Process Engineer: Most of this role is described in Chapters 10 and 11.
How to Read This Book
Based on your role in your software organization and what you want to learn from this book, we recommend the following readings:
- If you are looking for a brief overview of the RUP, read Chapters 1, 2, and 4.
- If you are looking for a detailed overview of the RUP, read Chapters 1-9.
- If you are looking for a detailed understanding of the RUP, including specific role responsibilities:
- - For Project Managers, read Chapters 1-14.
- - For Analysts, read Chapters 1-9, 13, and 15 (optionally, browse through Chapters 8 and 9).
- - For Architects, read Chapters 1-9, 13, and 16.
- - For Developers, read Chapters 1-9, 13, and 17 (optionally, browse through Chapter 6).
- - For Testers, read Chapters 1-9, 13, and 18.
- - For Process Engineers, read Chapters 1-11 and 13.
- If you are an executive looking for a brief overview of the RUP and what it takes to adopt the RUP, read Chapters 1, 2, 4, and 11.
For More Information
Latest information related to this book, including updates, relevant articles, discussion forums, and author speaking schedules can be found on http://www.rupmadeeasy.com.
Additional information about the RUP product, including a data sheet and a product demo, can be obtained from Rational Software at http://www.rational.com/products/rup.
If you are already using the RUP product, additional resources are available from the RUP Knowledge Center on the Rational Developer Network (RDN) at http://www.rational.net.
Academic institutions can contact Rational Software for information on a special program for including the RUP in a software engineering curriculum: http://www.rational.com/corpinfo/college_relations/seed/index.jsp.
0321166094P03252003