by Jim Johnson & Han Mulder
The Standish Group plans to release a report on Modernization in Place very soon. The Modernization in Place paper includes a section on what we shall call “Crapola”—code that is rusting away and preventing progress on lifeblood advancements. Even brand-new applications have plenty of Crapola or unused features and functions. During the agile development process refactoring or pruning is a best practice. Refactoring improves the understandability of the code and changes its internal structure and design. The quickest way to reduce software errors is to eliminate software. A regular schedule for refactoring existing code in small increments preserves the investment and reduces maintenance costs.
Clean code greatly aids in the development of new features and functions. Refactoring prior to and during modernization projects can reduce cost and improve quality. In general, refactoring or merciless pruning saves time and money, improves quality, enhances user training, and reduces operating costs. Remember, when in doubt cut it out.
You get rid of Crapola by making a steady investment in refactoring and utilizing an optimization process. The Standish Group recommends that an organization set up a modernization team or teams with a staff of four permanent technology members, two application or system floaters, and a product owner. We suggest using the Scrum methodology. We also suggest that this is not a one-time event but a constant and consistent effort.
Normalized Systems takes Modernization in Place to the next level, creating a constant and consistent effort. This means you should never have to modernize again. Normalized Systems theory is a rational way to evolve applications and systems to reduce complexity and maintain quality. University of Antwerp department of Management Information Systems has been researching how to design applications and systems using Normalized Systems theory. Normalized Systems uses extremely fine-grained modular structure. The Standish Group would call this a steppingstone or microproject approach. The fine-grained modular approach allows for fine-grained, wholesale refactoring by just removing Crapola modules or components that no longer are needed or used.
Normalized Systems provides for applications and systems to be able to evolve over time; they are designed not only to accommodate change but to promote change. Normalized Systems, in combination with Modernization in Place, the iterative process, and merciless pruning, allows for dynamic, stable applications and systems. The problem with the Normalized Systems approach is that it spawns hundreds or even thousands of microprojects. Having this many projects causes collisions, conflicts, and duplications. Optimizing and prioritizing these microprojects is a monumental task to do by hand or with any other system other than our Optimix. We can optimize and prioritize up to10,000 projects over seven different constraints. Don’t know how to optimize and prioritize microprojects? Call us. The Standish Group can help to move your organization in this direction with our Value Portfolio Optimization and Management Service.