The power of the process of analyzing and selecting the project development strategy, in conjunction with your team and stakeholders, is best understood when we examine the various factors that you need to consider when partitioning your system or product. There are three key perspectives to consider, as discussed in the following sections.
By Function or Data
This is the most obvious and, in general, the perspective most favored by technical experts. Using the well-understood guidelines of coupling (interfaces of data or technology) and cohesion (the logical or functional complexity of subunits ), this partitioning perspective breaks the system or product into subcomponents with minimum coupling and maximum cohesion. In our example, the partitioning into Release 1 and 2 leaves no interfaces and would be an ideal partition from this perspective.
This perspective is more radical but, in some cases, it can be very powerful and, in the new client-focused environment, it is increasingly important. Instead of partitioning by function or data, you discuss with each critical stakeholder which project objectives are critical to them. Then, you partition the system by the stakeholders and the functions that meet their requirements. In our example, Stakeholders A and C are critical stakeholders so you would partition the system (using the concurrent release strategy) to deliver Processes A and C with the relevant data from Data A and Data B. The downside of this strategy is that, in many cases, complex technical work will be required to build temporary data and interface functions to support subcomponents with messy interfaces.
This is a variation of partitioning by stakeholder (remember that objectives and benefits are related ). The key perspective here is that you focus on which objectives or functions provide the highest benefits and, by using sequential, or concurrent, or fast track release strategies, you partition the system or product to deliver benefits earlier. The same concerns regarding the need to build interim interfaces and so on apply to this partitioning approach as well.