Common Problems RUP and IBM Rational Solutions Solve
There are many problems that this process solution and toolset can solve. I will take you through three of the most common ones that are seen time and time again in the industry. If a company has any process for developing, they usually have many varying processes, have to deal with the complexity of today’s software, and never have enough time with their end users. These three examples also represent that what is best for the organization may be slightly less optimal for a given project; however, for the organization as a whole, it is optimized and the project may have to bear some additional overhead.
Multiple Software Development Processes and Development Tools
Companies often have multiple software development processes and a wide range of tools from varying vendors. Processes are rarely followed the same way from department to department, as well as within department’s sub-departments (or projects). This causes multiple problems, such as the following:
- Team members are not easily interchangeable when matrixed to another department’s project team.
- It is hard for team members to transfer to a new area, as they have to learn the new area’s process.
- The interaction with the business users is so varied that it leads to confusion and frustration due to the lack of consistency in the engagement model and differences in process steps and deliverables.
RUP and Rational tools solve these problems by providing an industry accepted and proven process solution that was created integrally with a set of development tools. The strength of this process and toolset is that it provides the following:
- A tailorable process framework for projects of different types
- Promotes proven industry best practices
- Prescriptive guidance on roles, responsibilities, accountabilities, workflow, and activities
- Provides clarity for team members timing of events
- Guidance on inputs to deliverables, as well as how to use the inputs, templates, examples, and guidance on how to create deliverables
- Guidance on the consumers of deliverables
- Ability to capture your own best practices and easily and seamlessly incorporate them into the underlying framework
Working in a symbiotic fashion with the process is a set of development tools that support the best practices that are fully integrated. This is a solid foundation to propose RUP and Rational tools to solve current efficiency problems that affect your company’s software development initiatives every single day.
Points to articulate when discussing the benefits of RUP and Rational tools as an Enterprise standard process and set of supporting development tools include the following:
Complexity reduction. Process and tools that promote scope management, higher levels of abstraction through visual modeling, and reduction of human-generated artifacts (code, documents, etc.).
Increased efficiency. Enhancing the project team performance, as well as individual contributor’s performance, through guidance on who is responsible for what and when.
Automation with tooling. Tools that improve human productivity through automation of repetitive activities that are time consuming and prone to error.
Reduction of expensive scrap and rework. RUP, combined with utilizing the Rational tools, will attack the architectural risks sooner in the project, pushing rework and scrap to earlier in the project timeline (where it is much less expensive), thus reducing the amount of rework and scrap in later stages of the project (where it is much more expensive).
Software Development Has Never Been So Complex
Take a look at your current software development initiatives. More than likely, they are more robust and feature-rich than ever before, but at what cost? Software has become so complex in terms of getting the scope nailed down and agreed to, along with ensuring that the software has good requirements, solid architecture, and good testing coverage, just to name a few aspects. Looking back at the last 12 to 18 months worth of projects, how many were truly successful in delivering real value to the customer? I am not just referring to giving them what they asked for—many times, project teams can deliver a good portion of what was asked for in an agreed-upon scope statement made 8 to 12 months earlier or, in some cases, 24 to 36 months earlier. But did the newly delivered capabilities actually help the business in some quantifiable way? Did a given project provide increased revenue through new ways to sell a product or accommodate existing customers, open opportunities that were not possible before? Did a project reduce expenses through cost avoidance by increasing efficiency and eliminating redundancy? There are no crystal balls (yet) that can look far into the future and ensure that what is being developed will hit the mark over the course of many, many months of work.
RUP helps to solve this problem by embracing iterative development, which gives the end users the opportunity to see slices of the new capabilities being developed and evaluate them every 4 to 8 weeks, as opposed to a single, massive review at the end of the project timeline, when it is too late to react quickly and within reasonable costs. RUP and the key principle of demonstrating value iteratively (best practice of iterative development) helps project teams and end users determine and understand what needs to be changed much earlier in the project timeline. The earliest iterations address the biggest technical and business risks, looking under the rocks for the really tough things and attacking them instead of putting them off while doing the easy stuff first. Such an approach leads to a false sense of progress. Each iteration produces an executable that is integrated and tested.
Some of the benefits of RUP and iterative-based development that should bring considerable return on investment to your company are the following:
- Risk mitigation guidance. Inclusive of requirements, architecture, testing, management, and technology.
- Assessing status by reviewing working and tested code, as opposed to reviewing specifications.
- Process feedback loop. Learning as the project timeline progresses—each iteration is assessed and captures the lessons learned, allowing midcourse corrections for issues and unexpected opportunities.
- Change management practices. Change will and should happen as more and more is known on a given project, including functional, technical, tactical, and strategic changes.
- Increased precision and predictability in projects. Not only do successful projects come in on time, RUP helps you determine failure earlier, enabling cancellation before all the funding or budget is already spent.
Never Having Enough Time with Your End Users
In most companies, the end users are not available nearly as much as they are needed when it comes to requirements sessions and reviewing functionality. There are many factors that have contributed to this common “arrangement,” but the one that I have seen the most is that end users—the business representatives who are going to have to actually use the software being developed—carry quite a bit of baggage from being misled about what they are going to get and feeling bamboozled by all the “techie” babble they are fed. Over time, this has led to the end users feeling that their time is better spent elsewhere because their input has been rarely taken to heart.
RUP techniques will change the way you interact with your business stakeholders and how they interact with you. They will need to be more involved in Use Case workshops and review sessions, to name just two of the ways things will change. Getting more of their time will be a challenge early on, but once they have gone through an iteration or two, they will begin to see that they are going to be driving the functionality that is actually being delivered in each iteration’s executable and not just being told what they will get.
Early on in the process, where we are from a timeline perspective, you will need to start laying the groundwork with them, in a fashion similar to how you are interacting with your IT leadership members and decision makers. Find a champion, and begin to discuss the benefits of RUP and the Rational tools from a business perspective. Focus in on how they will be able to see results much sooner and have a clear vision of what the ultimate result will be once it goes into production toward the end of the project.