System preparation is an optional, potentially beneficial, but often risky step that occurs before architectural transformation. In system preparation, we try to evolve the legacy system to a point where it will be much easier to perform the desired architectural transformation. The benefit is a reduction in overall modernization costs. The risk is that the system preparation does not go as planned and that the development team gets mired in the legacy code. Before deciding on system preparation possibilities, it is critical to perform an analysis of the available alternatives and to consider the strengths and weaknesses of each. The analysis of alternatives is primarily a brainstorming exercise. The architect may ask three or four of the design engineers to develop and present alternative system preparation approaches. At this point, the feasibility of these approaches is unlikely to have been demonstrated unless a member of the design team has recently completed a similar, successful modernization project. Even so, it is unlikely that the same plan will survive intact, as technologies will have evolved since the previous project was conceived. Feasibility, then, is something that must be established in more detail later. The analysis of alternatives establishes some potential approaches and provides a starting point for evaluating trade-offs and for understanding system requirements. In this chapter, we analyze several alternatives for system preparation work in RSS. Only then can we agree on a plan. |