
White paper on the Agile process : RUP and Scrum Version : V1.0 Company : CoMakeIT Date : 10/10/2007 1 Copyright© 2007 Oct , 2007 The Agile Process: RUP and Scrum Table of Contents Introduction………………………………………………………………………............3 What is Rational Unified Process or RUP ?....................................................................3 Characteristics……………………………………………………………………………3 What is Scrum? .................................................................................................................4 Best practices of the RUP and how Scrum is integrated…………………....................5 RUP disciplines……………………………………………………………………….….7 Life cycle of the RUP…………………………………………………………………….8 Two Dimensions process…………..…………………………………………………….9 Tools for tailoring RUP in context of Scrum……………………………………….…10 Conclusion………………………………………………………………………………10 References………………………………………………………………………………11 2 Copyright© 2007 Introduction In order to mitigate problems faced in the proprietary software development processes, base your process framework on open, published, supported standards, iterative and incremental approach. Two software development stand out as strong candidates for consideration: The Rational processes Unified Process(Unified Process) Scrum Methodology These processes are well documented and publicly available. In this paper, we will briefly describe The Rational Unified Process and highlight why it is so important and how it addresses specific shortcomings of proprietary development processes and how scrum is integrated with in it. What is Rational Unified Process or RUP ? The Rational Unified Process is a Software Engineering Process. It provides a disciplined approach to assigning tasks and responsibilities within a development organization. Its goal is to ensure the production of high-quality software that meets the needs of its end-users, within a predictable schedule and budget. The Rational Unified Process is a process product, developed and maintained by Rational Software. It enhances team productivity, by providing every team member with easy access to a knowledge base with guidelines, templates and tool mentors for all critical development activities. By having all team members accessing the same knowledge base, no matter if you work with requirements, design, test, project management, or configuration management, we ensure that all team members share a common language, process and view of how to develop software. Its activities create and maintain models. Rather than focusing on the production of large amount of paper documents, the Unified Process emphasizes the development and maintenance of models—semantically rich representations of the software system under development. The Rational Unified Process is a guide for how to effectively use the Unified Modeling Language (UML). The Rational Unified Process is supported by tools, which automate large parts of the process. They are used to create and maintain the various artifacts—models in particular—of the software engineering process: visual modeling, programming, testing, etc. They are invaluable in supporting all the bookkeeping associated with the change management as well as the configuration management that accompanies each iteration. The Rational Unified Process is a configurable process. No single process is suitable for all software development. The Unified Process fits small development teams as well as large development organizations. The Unified Process is founded on a simple and clear process architecture that provides commonality across a family of processes. Characteristics The Unified Process has three distinguishing characteristics. These characteristics are Use-Case Driven - The process employs Use Cases to drive the development process from inception to deployment. 3 Copyright© 2007 Oct , 2007 The Agile Process: RUP and Scrum Architecture-Centric - The process seeks to understand the most significant static and dynamic aspects in terms of software architecture. The architecture is a function of the needs of the users and is captured in the core Use Cases. Iterative and Incremental -The process recognizes that it is practical to divide large projects into smaller projects or mini-projects. Each mini-project comprises an iteration that results in an increment. An iteration may encompass all of the workflows in the process. The iterations are planned using Use Cases. What is Scrum? Scrum is an agile software-management process that can help you navigate your project through iterative, incremental software development. Scrum achieved more popularity after the formation of the Agile Alliance. This lightweight process can function as a wrapper, which allows you to combine Scrum with other agile process frameworks, for example, the Rational Unified Process, or RUP. Scrum offers an empirical approach, which allows team members to work independently and cohesively in a creative environment. It recognizes the importance of the social aspect in software engineering: the name derives from the game of rugby. The process is quick, adaptive, and self-organizing, and it represents a significant change from sequential development processes. Scrum believes that software should not be developed according to the processes used in typical manufacturing -- that is, in a repeating fashion. This repetition makes the input and output parameters more predictive and descriptive, but this is not a helpful goal in today's software engineering. Time to market, return on investment, and the need to build a vision alongside the customer are among the major challenges in modern software engineering. The RUP and other agile software engineering processes are capable of addressing these challenges. Figure 1. The SCRUM work flow diagram 4 Copyright© 2007 Oct , 2007 The Agile Process: RUP and Scrum Best practices of the RUP and how Scrum is integrated The Rational Unified Process describes how to effectively deploy commercially proven approaches to software development for software development teams. These are called “best practices” not so much because you can precisely quantify their value, but rather, because they are observed to be commonly used in industry by successful organizations. The Rational Unified Process provides each team member with the guidelines, templates and tool mentors necessary for the entire team to take full advantage of among others the following best practices: 1. Develop software iteratively 2. Manage requirements 3. Use component-based architectures 4. Visually model software 5. Verify software quality 6. Control changes to software Develop software iteratively - Given today’s sophisticated software systems, it is not possible to sequentially first define the entire problem, design the entire solution, build the software and then test the product at the end. An iterative approach is required that allows an increasing understanding of the problem through successive refinements, and to incrementally grow an effective solution over multiple iterations. The Rational Unified Process supports an iterative approach to development that addresses the highest risk items at every stage in the lifecycle, significantly reducing a project’s risk profile. This iterative approach helps you attack risk through demonstrable progress frequent, executable releases that enable continuous end user involvement and feedback. Because each iteration ends with an executable release, the development team stays focused on producing results, and frequent status checks help ensure that the project stays on schedule. An iterative approach also makes it easier to accommodate tactical changes in requirements, features or schedule. A Scrum project enforces iterative development; the rhythm is defined as 30 days fixed in length. Even though RUP is more flexible in the definition of an iteration, the 30-day window is often used in RUP and determined to be a useful size in length. Instead of defining the length of an iteration in a RUP project, the workload is always aligned with the 30-day length sprint. Manage requirements - The Rational Unified Process describes how to elicit, organize, and document required functionality and constraints; track and document tradeoffs and decisions; and easily capture and communicate business requirements. The notions of use case and scenarios prescribed in the process has proven to be an excellent way to capture functional requirements and to ensure that these drive the design, implementation and testing of software, making it more likely that the final system fulfills the end user needs. They provide coherent and traceable threads through both the development and the delivered system. Requirements are managed by the entire team but are under the control of the product owner. In RUP, requirements engineers own the requirements, but this responsibility in Scrum belongs to the product owner, which is often represented by business stakeholders. Requirements management, as in RUP, requires a collaborative effort. 5 Copyright© 2007 Oct , 2007 The Agile Process: RUP and Scrum Use component-based architectures - The process focuses on early development and base lining of a robust executable architecture, prior to committing resources for full- scale development. It describes how to design a resilient architecture that is flexible, accommodates change, is intuitively understandable, and promotes more effective software reuse. The Rational Unified Process supports component-based software development. Components are non-trivial modules, subsystems that fulfill
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages11 Page
-
File Size-