If your CIO says that you are going to create a reuse environment, yet everyone still has the same jobs and the same incentives, the initiative will fail. To establish a development culture that supports and encourages reuse, structured and unstructured components must be shared between teams, between departments, and across an entire worldwide organization. This requires a redefinition of job roles and the development of appropriate incentives. Let's look at how to manage these two areas to create and support a reuse environment.
Roles and responsibilities
The roles that are defined within the context of a reuse environment depend on the size of the organization. If your IT staff consists of 10 people, formal reuse roles are not necessary. But if you're trying to establish the environment in a Fortune 500 company, such roles are essential. Depending on the number of components being managed, these positions may or may not be full-time.
The reuse manager is responsible for the entire reuse environment. This person may initially be a project manager assigned to a project that establishes the basic environment processes, training, tools, etc. When this project goes live, the manager may then transition to a role as reuse champion, making sure that there is an ongoing emphasis and focus to make the effort successful.
The reuse librarian manages and runs the reuse library. He or she communicates what is in the library and is responsible for categorizing the components in a logical and easy-to-use way. This becomes especially important when an organization is sharing hundreds (or thousands) of components in the reuse library. The librarian also makes sure that the components are documented adequately and tracks the usage of components, if the library tool does not do that automatically. Tracking usage is important because if a component is changed to include an enhancement or bug fix, the applications that use the old component may need to be modified.
Reuse engineers are the people who can write and support the reusable components. They must be skilled in object-oriented techniques and understand how to build components that may be used by many applications around the company. Draft components may be submitted by the regular development staff, but the reuse engineers make the necessary modifications to produce a true, bulletproof, high-quality OO component.
Depending on your implementation strategy, you may also have instructors and coaches who assist people in using components, reuse business owners who are responsible for understanding and validating that a component accurately reflects business, and perhaps a reuse committee that prioritizes the work of the reuse engineers.
Major initiatives rarely work without the proper incentives. Project managers must look for opportunities for reuse. Developers must feel motivated to look for existing components for the solutions they’re working on rather than develop everything from scratch. Business clients must understand that if an existing component meets 80 percent of their needs, it might be the way to go.
To build the right incentives, managers must consider what the natural motivations will be and then add whatever additional push people need to think of reuse opportunities first. One obvious place to start is to make this a part of the yearly objectives and compensation process for the organization. Developers may have objectives that involve submitting code components as candidates for reuse. They should also have objectives that measure their ability to use components that are already in the reuse library. In the pressure to meet deadlines, developers may not think of reuse opportunities when first considering a problem.
In general, all cultural change initiatives, including establishing a reuse environment, live and die by middle managers. The CIO may want the program to succeed, but it's the midlevel functional and project managers who will make it successful. If the company managers make the initiative a focus, talk about it often, ensure that people have related objectives, and hold developers accountable for reuse, the program has a chance of success. If reuse is the last thing on their minds, the program will fail. Therefore, all the management levels in the organization must make the success of this program one of their yearly objectives. If the program flounders or fails, they should be held accountable.
A culture change
When implementing a reuse environment in large organizations, the care and feeding of that environment will require specific focus by people who take on new roles. Depending on the implementation strategy, roles can be established for reuse manager, reuse librarian, and reuse engineers. Other roles in the IT department may need to be modified to support the reuse concepts.
Finally, the reuse program will fail if it is seen as the responsibility of only a few people in new roles. Everyone must support the initiative in how they work and how they think. With the right incentives in place, an organization can make sure that people have a common motivation for the program to be successful.
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.