Video Spotlight
Agile Sponsors
Featured Whitepapers
- Learn Ways to Keep Schedules and Costs in Line With Requirements Change Management
- Java Deployments in an Enterprise Environment
- Challenges & Characteristics of Enterprise Continuous Integration
- Build Release Plans That Deliver Customer Value!
- Improving Traceability and Auditability Across the Development Lifecycle
Upcoming and Recent WebCasts
|
Introduction The Rational Unified Process (RUP) has become a defacto standard for many organizations as they look to improve their software development processes. Unfortunately, transitioning to RUP is an arduous and risky process as teams struggle with adjusting to an iterative style of development. As a witness to many process improvement efforts utilizing RUP, I've found most are little more than reinventions of an organization's existing practices. The result is a pseudo-iterative style of development that favors excessive documentation manifest as RUP artifacts, a predictive and plan-driven approach providing no clear barometer to gauge success, and a tendency to revert to traditionally flawed practices as teams succumb to the pressures of project deadlines. Certainly, RUP should not be blamed for the failure, but often times that's the case, casting a dark shadow on iterative development and making teams ever more leary to consider agile development. RUP's Beauty I must admit that RUP is a beautiful piece of work. Use Case Driven. Architecture Centric. Iterative and Incremental. To the unsuspecting development team, it offers the wonderful promise of traceability. Develop a Use Case Specification. Realize each use case scenario with sequence diagrams through analysis and design. Analyze sequence diagrams for common flows (reuse). Create a view of participating classes for each use case. Allocate classes to components. Architectural analysis and design. And so on. Traceability throughout the development lifecycle. There are even tools available that support the process. Yet in all its glorious wonder, it is RUP's ceremonial beauty that is also it's downfall. We can unneccessarily argue that it's not an inherent flaw of RUP, but more so due to manifestations of RUP. Teams attempt to stabilize architecture early. They tend to avoid construction until requirements are stable. They create iteration plans but do not deliver after each iteration. But a process with infinite variability and implementation baggage is destined to fail. Herein lies the problems with many manifestations of RUP.
Software Matters If you've read any of my blogs or articles, you'll know I stand firm on a few key points.
A Better RUP RUP and agility are not mutually exclusive. RUP has the potential to increase agility by improving a team's ability to deliver software iterative and incrementally. To do so however requires teams to avoid the common problems when adopting RUP, and focus on that which is truly important - software delivery. Using RUP as a process framework, while complementing it with agile practices such as test driven development, continuous integration, and a strategy for tracking running tested features will yield higher degrees of success. Teams will generate the constant feedback, increase the collaboration, and develop the engaging relationship with business stakeholders that are important to any successful software development effort. Adopting practices to address the pain points on a project will help avoid the problem caused by sudden and radical shifts in development philosophy. Considering the dynamics and strengths of the team throughout the process improvement initiative is imperative. Eliminating waste created by artifacts that don't directly contribute to creating high quality source code will speed software delivery. Improving a team's development process is good, so long as the folks pushing the process recognize that the goal of the process improvement effort must be delivering quality software over implementing ceremonial processes. RUP is one way to begin. As your team or organization works to improve process, don't be constrained to only RUP. Consider alternatives. The first step in improving your ability to deliver software is recognizing that a problem exists. Begin by understanding the problem. Are you having software quality issues? Are development efforts simply taking too long? Constantly exceeding your budget? Aren't able to meet business objectives? Constrained by resources? Something else? Or everything? Quite simply, you must recognize your pain, identify it's cause, and eliminate it. Then...do it again.
Set as favorite
Bookmark
Email this
Hits: 9772 Comments (0)
|
| Next > |
|---|
Agile Marketplace - Announcements and Special Offers
Webcast: Moving Build and Code Quality Upstream
This interactive panel discussion moderated by Bob Aiello, Editor-in-Chief fo the CM Journal brings industry experts Anders Wallgren, CTO of Electric Cloud and Gwyn Fisher, CTO of Klocwork together for a candid discussion of the cost savings, productivity and quality benefits that can be achieved by stabilizing builds and code quality as early in the development cycle as possible.
Register Now!
Collabnet -TeamForge 5.3
CollabNet TeamForge 5.3 includes Dynamic Planning—providing flexibility to model release scope and timeline in a single view. Now, you can easily manipulate/adjust release data.
Download Your Free Trial
Requirements-based testing (RBT) can help to ensure comprehensive test coverage, reducing the risk of failure and improving software quality. This white paper details how application lifecycle management can be used to more effectively implement RBT processes, offering greater collaboration, traceability and control.can help you increase efficiency, reduce project risk, and improve overall software quality. Learn how MKS Integrity for application lifecycle management enables RBT, delivering full lifecycle traceability to help ensure that project requirements have complete test planning and execution coverage.
Download the Requirements-Based Testing whitepaper
PureCM –SCM for Agile Teams
PureCM helps you to manage development in short iterations: keeping track of changes, supporting automated builds and preserving frequent snapshots of your projects.
Get the free trial now


