Of all the revolutions that have promised to speed business application development over the past 30 years, the one that has made the most intuitive sense is the object-oriented (OO), or reuse, paradigm. How could this not make sense? You can build an entire solution by assembling a set of prebuilt components that your company has already developed or from free (or cheap) component libraries. Development time is faster and less expensive. The solution is also of higher quality, since the components have already been tested in other applications.
It’s a great idea! Then why isn’t your company doing it? Why isn’t every company doing it?
In this article, I'll introduce the reuse model and discuss some of the reasons many organizations have avoided—or abandoned—this approach.
It takes a holistic approach to be successful
First of all, I know that many companies have successfully implemented a reuse development model. Many others started to move down that path but abandoned the effort somewhere along the way. Others were never sure where to begin. The biggest barrier to success is that it is hard work to implement a reuse environment. Technology is almost the least of the problems. The switch to reuse development has to be seen in the context of a culture-change initiative. In other words, it requires people to fundamentally change how they do their jobs. Implementing culture change is rarely easy and requires a holistic approach.
Sure, the development staff needs to be trained and the appropriate tools need to be purchased. But what are the other incentives for and barriers to culture change? A number of questions must be considered:
- Is there an incentive for developers to build components for reuse, even though it may take longer and be more expensive? Remember that the value of this approach is being able to reuse the components the second and third time, not the first time.
- Are project managers and functional managers compensated based on how much reuse they are able to employ in their solutions?
- Are developers rewarded for reusing components in their solution?
- Has a central body taken ownership of reusable components so that they can be available and leveraged by other groups?
It also costs money to make the reuse environment a reality. Unfortunately, the value obtained long-term with reuse requires cost and effort in the short-term. Many companies thought that if they trained people and had the right tools in place, the environment and culture would blossom on its own. This is not going to happen.
Management commitment is key
I once worked on a project to set up the initial infrastructure to implement a reuse environment for an entire development organization. We set up processes, roles, and responsibilities. We decided on training and tools. We successfully completed a couple of pilot projects. We set up a prototype component repository. Unfortunately, when we put forth a proposal for future funding, it was turned down. Other needs always seemed to have a higher priority. We did not have the management commitment and focus to succeed.
If your development organization has any size at all, you need executive commitment and sponsorship for at least three years to establish the infrastructure and to develop a reuse culture. In a reuse culture, the first step in solving any problem—big or small—is to ask yourself, “Has this problem been solved before?” When you've determined that the problem or a similar one was solved previously, you can apply that solution to your current situation.
Has the reuse ship sailed?
It’s not too late to start building a reuse environment. For instance, Web development lends itself to reuse. But if you are going to try a reuse approach, be smart. Recognize that all cultural change lives and dies in middle management. Use the management hierarchy to force change and hold people accountable. But also make sure the organization has the appropriate people, process, and technology infrastructure aligned to ensure success.
This article is the first in a series on how organizations can establish a reuse environment and a reuse culture. Next time, I'll provide an overview of the components required to make the reuse paradigm work. The remaining articles in the series will explore some of those components in more detail.
Until then, remember these positive points, and warnings, about a reuse environment:
- Reusing objects that have already been built can dramatically reduce development time. Your solution will also be of higher quality, since the components have already been tested in other applications.
- Implementing a reuse culture is rarely easy and requires a holistic approach, including looking at processes, technology, and people motivators.
- If your development organization has any size at all, you need executive commitment and sponsorship for at least three years to establish the infrastructure and to develop a reuse culture.
Project management veteran Tom Mochal is director of internal development at a software company in Atlanta. Most recently, he worked for the Coca-Cola Company, where he was responsible for deploying, training, and coaching the IS division on project management and life-cycle skills. He's also worked for Eastman Kodak and Cap Gemini America and has developed a project management methodology called TenStep.