Method, system and program product for determining the value of a proposed technology modification6526387Abstract A method, system and program product for determining the value to an enterprise of a proposed technology modification is presented herein. The information technology resources of an enterprise are partitioned into segments along any number of various lines such as business process, geography, etc. The partitioning creates one or more sets of partitioned segments. Within a given segment the resources are profiled in accordance with the information technology priorities of the enterprise and mapped against the complexity of the proposed modification to derive an opportunity score. The opportunity scores for the profiled segments are examined to determine if the partitioning has been effective and if not, the process is repeated. Once an effective partitioning has been effected the opportunity scores of the segments indicate a measure of the respective value of the proposed modification within each segment. Claims Having described our invention herein, that which is considered to be new and for which protection via Letters Patent is desired is specified in the following claims: Description FIELD OF THE INVENTION
TABLE 1
Sample Qualification Questionnaire:
What type of consolidation?
Application/LAN Data/Database/
Hardware/Other
Has the customer decided on a target platform?
Has the customer selected application(s)?
ISV/Custom/Mixed?
Has the customer been briefed on our technologies?
Do outstanding technical issues exist?
Who is the customer's sponsor?
Does the customer have budgetary constraints?
Does the customer have a basic comprehension of the BSA?
Does the customer have a start date for the project?
Has the customer set a production date?
How will charges for the BSA be handled?
Upon successfully qualifying a potential customer, it may be valuable to further incent the customer to participate in the BSA through the provision of an illustration of potential benefits which may be expected based upon participation in the BSA. Accordingly, the use of a software tool 506 such as the savings from consolidation (CONSAVE) tool may offer a potential qualified participant a glimpse at the advantages of undertaking a consolidation BSA. Upon implementation of the incentive-based tool 506, the process continues to further BSA process steps 507. In the event that a customer is determined to lack the requisite qualifications with which to undertake the BSA process, the engagement is ended 508. FIG. 6 provides a closer look at the function of the CONSAVE tool 600 utilized in step 506 of FIG. 5. In step 601 the user inputs the current and planned information regarding their use of different type of servers (i.e., UNIX, Windows NT, or S/390) this information may entail any or all of the numbers of machines for each server type 601a, the number of users per each server type 601b of the cost associated with running each server type 601c. Furthermore, the cost 601c associated with the use of each server type is further divided into the cost associated with the hardware 601c1, software 601c2 and support 601c3 of each server type. The user may choose to enter data for one or more of the number 601a, users 601b, or cost 601c information in any combination. The tool will utilize the user-supplied information and will further provide the remaining (not user-provided) inputs via reference to industry supplied averages for the "blank" input values based upon the user-supplied values in step 602. For example, if a user supplies the number 601a of current and projected machines for each server type, but leaves the users 601b and costs 601c fields blank, the tool will fill in these blanks using available industry averages 602 premised on the number of machines per server type as supplied by the user 601a. The tool further provides an industry average of processing capacity per each server type 603 in terms of transactions per minute (TPM). Upon providing the pertinent server type information (601a-601c and 602) and the capacity information 603, the tool next derives the current processing capacity and cost per server type 604. In an enterprise comprising two server types (for example a UNIX server and an S/390 server), the results may be expressed as C.sub.1 $.sub.1 (current) and C.sub.2 $.sub.2 (current) (604). Wherein the prefix "C" represents the capacity data for each server and the prefix "$" represents the cost data for each server. The addition of these measurements 605 provides the total current capacity 606 as C.sub.tot $.sub.tot (current) The user next makes the assumption (for illustrative purposes) that the server consolidation will proceed from type 1 (i.e., UNIX) servers to type 2 (i.e., S/390) servers which determination will be based upon an examination of the workloads the user is implementing on each server type. The assumption is stated in terms of a percentage (%) of capacity to be migrated from server type 1 to server type 2607. Based upon the proposed conversion percentage the tool will calculate the remaining 608 cost and capacity for server type 1 after this migration as C.sub.1 $.sub.1 *(1-%). These values represent the post-migration capacity and cost for server type 1 expressed as C.sub.1 $.sub.1 (new) 612. Additionally, the capacity of server type 1 is subjected to a sliding scale algorithm for expressing the server type 1 capacity to be migrated in terms of server type 2 capacity 609. The particular techniques implemented by the assignee have been provided at various technical conferences, however they are by no means the only mechanism for providing such a conversion between server type capacities. Those of skill in the art will readily recognize that various algorithms many of which are readily available may be employed to achieve this same conversion. The capacity (i.e., TPM) for the server types are derived from industry averages. Inherent in these industry average TPM metrics is the premise that within a particular server type the TPM metric is a reasonable indicator of relative processing capacity, such that, for example, within a set of distributed UNIX servers, machines with similar TPM numbers exhibit roughly the same processing capacity. It is readily understandable to those skilled in the art, however, that between different server types, the determination of relative processing capacity is largely dependent upon the particular workload environment, since certain types of applications are better suited to UNIX servers while others are more efficiently managed on S/390 servers. Accordingly, to better model a consolidation effort which may require the conversion of processing capacity between different server types, it is required that the TPM metric be subjected to a sliding scale adjustment that better reflects the relative processing capacities of the various platforms. The result of step 609 is the incremental increase to server type 2 capacity based upon the proposed migration of the percentage of server type 1 capacity 610 expressed as (DELTA C.sub.2). This additional type 2 server capacity is added 611 to the value for type 2 capacity C.sub.2 (current) determined in step 602 to derive the resultant new server type 2 capacity C.sub.2 (new) in step 613. Next the new server type 2 capacity C.sub.2 (new) is used to derive 614 the cost associated with the operation of the type 2 server after the migration of the type 1 server capacity. This cost is determined in a manner consistent with the operation that was performed in step 604 to arrive at $.sub.2 (current). The derived values of C.sub.2 $.sub.2 (new) (613 and 614) are combined 615 with the derived value to C.sub.1 $.sub.1 (new) (612) to produce the total capacity and operating costs after the proposed migration C.sub.tot $.sub.tot (new) 616. In a preferred embodiment, additional factors relating to the usage of particular server types may ba factored into the determination. For example, in the cost determination steps 603 and 614, the industry average data on availability per server type may be incorporated into the calculation to achieve a more precise approximation of the true operation costs for each server type. Referring back to the input steps 601a-601c it will be recalled that the user was prompted to provide the current and the projected data related to any of the number 601a, users 601b, or costs 601c per server type. The forward looking portion of this input in a preferred embodiment attempts to discern the changes in each server type over a five year period. The requirement for this information is premised upon the well-known notion that the cost associated with the hardware 601c1, software 601c2 and support 601c3 of a server platform each experience different variations over time. For example, for a given server type after an initial investment of acquisition capitol to purchase the bulk of the hardware, the hardware costs 601c1 can typically be expected to decrease rapidly over time, whereas the costs for personnel to support 601c3 the IT system increases markedly over time and the costs of software required to run the system 601c2 typically marginally increases over time. As the CONSAVE tool use is used by an increasing population of customers, the data provided as industry averages throughout the process is continually refined, making the tool an increasingly precise estimator of the potential benefits of the business solution for the customer. Turning now to FIG. 7 we see an illustrative graphical output from an execution of the CONSAVE tool 506. The graph 700 plots $.sub.2 (current) 701, $.sub.2 (new) 702 and $.sub.tot (current) 704 and $.sub.tot (new) 703. From the graph 700 it can be seen that additional investment in type 2 servers has reduced the total operating cost for the customer's IT system as a result of the efficiencies gleaned from the consolidation effort. Once a qualified participant has agreed to proceed with the BSA the assessment of the business solution needs of the customer begins in earnest 507. Turning now to FIG. 8, the portion of the business solution assessment process relating to profiling the qualified customer 203, and generating the ordered list of potential projects 204 are presented in greater detail via a flow diagram which will be referred to as the project selection process 800. In order to undertake the proposed customer solution, it is necessary, especially in enterprises having sizable IT environments, to partition the IT infrastructure into segments which are recognizable to the customer, and manageable in scope. Accordingly, the first step in the project selection process 800 involves the identification of so-called "islands of IT" 801. An island in the context of this description can be viewed as a group of IT resources which have a logical reason for being viewed and analyzed as a single entity. The objective is to partition the customer's environment into manageable groupings of IT resources so as to facilitate the identification and implementation of solutions, as well as to enable the solution provider to view the customer's IT environment from the customer's perspective. It follows then, that the success or failure of such an solutions undertaking depending largely upon the proper scope and sizing of the islands. Should the islands be defined in a narrow manner, the resulting solution will not produce results which justify the customer's involvement in the undertaking, alternatively, if the islands are defined too broadly, the requisite analysis and development work require to implement a solution becomes formidable and the project duration will not be contained. While there are numerous ways in which to partition the customer's IT environment, the typical partitioning is done along already existing boundaries defined by business process, organizational, geographic or financial lines. For example, it may be expedient to partition a customer's IT infrastructure commensurate with the various business processes undertaken by the customer, such as insurance claim processing, ERP applications, order entry processes etc. Alternatively, an enterprise may lend itself to islands of IT partitioned by geographic boundaries defined by campuses, or by the consolidation of multiple data centers. It is quite typical for an enterprise to present more than one natural boundary along which this type of partitioning may occur, and the present invention would accommodate such multiple partitioning. In such instances, however, great care must be exercised to ensure that the complexity of the groupings do not produce an excess of island partitions which complicates and extends the duration of the project selection process 800. More often, it will be beneficial to choose one boundary for partitioning these islands. After the islands have been identified 801 it is next necessary to gather certain information about the identified islands so as to establish a profile 802 of customer's IT environment along the partitioned island lines. Customer profiling per island is performed in a manner similar to the computer-based question and answer format implemented for the qualification step 505. In fact, the answers obtained during the qualification process 500 including the data gathered in the database 404 from responses to the qualification questions 504 and to data added to the database 404 as a result of the responses to the questions from the CONSAVE tool 506 are combined with responses received as answers to the questions posed as part of the customer profiling step 802 and together these data from updated data space 404 serve as island input to a so-called BSA CORE tool 803. The customer profiling step 802 entails a set of questions which are designed to elicit the type of information which, in addition to the information gleaned from the qualification process 500 will assist in completing the project selection process 800. Typically, this information includes quantitative and qualitative responses to customer specifics characteristics relating to the environment and culture, hardware and software platforms, management and staffing responsibilities, etc. of an enterprise. An exemplary listing of such customer profiling questions follows below:
TABLE 2
Customer Profiling Questions:
Account Related Information
Date
Company Name
Company Sponsor
Account No.
Address
Marketing Rep.
Phone No.
Customer Information
Date
Name
Primary Contact
Title
Address
Phone No.
Business Priorities
Top strategic Priorities over next year
Issues/Challenges with current
IT infrastructure
Trending toward centralization/
decentralization, why?
No. of servers by platform
Server growth rate
Operational Costs
IT budget
Availability requirements
Preferred platform for new apps
Current H/W & S/W environment
S/390 Hardware -
CPUs
DASD
Tape
S/390 Software -
O/S
Database subsystem
Transaction monitors
Security
Storage management
Key apps
UNIX Hardware -
CPUs
DASD
Tape
UNIX Software -
O/S
Database subsystem
Transaction monitors
Security
Storage management
Key apps
Network environment
types
O/S
Database subsystem
Transaction monitors
Security
Storage management
Key apps
The island partitions 801 and the resultant customer profile per island information 802 are added to the database 404 along with data provided during the qualification process 500 and along with the answers to the customer questionnaire and the input from the customer to the CONSAVE tool 506. The combined information is passed as island data to the core tool 803. The BSA core tool 803 utilizes the island data input to create an opportunity score 804a for each island, as well as a related opportunity list for each island and a set of qualitative messages including tool-generated observations regarding each quantitatively scored island 804b. For instance, the core tool 803 may identify an attractive opportunity to implement an S/390 solution within an identified island, however the absence of any S/390 skill within that island would mean that the solution may either entail moving the workload to another island having the requisite hardware (or alternatively out-sourcing the workload), software and skill-base or selling the customer on establishing the required infrastructure within that island. The particular process implemented by the BSA core tool is subsequently addressed in FIG. 9. The core tool will also implement the same process as undertaken for the CONSAVE tool 506, however in this instance the customer will supply all of the required input information rather than relying on the tool to "fill in the blanks" with industry averages. The tool will also generate an industry average profile of the same consolidation effort. The result of this portion of the core tool 803 is a comparison of the savings from the consolidation effort as opposed to what the industry average saving for such an endeavor might be 804c. Based upon the output 804 of the core tool, a determination is made as to whether the scored island includes opportunities for which the customer wishes to pursue solutions 805. The determination is based to a large extent upon whether the islands were properly partitioned and the determination may be an automated observation that the scores do not differ per island to a meaningful degree to permit the selection of a particular island for solution implementation. Alternatively, the determination 805 may be premised upon the qualitative aspects of the core tool output 804 or alternatively may simply be a product of the customer's input that they are not interested in implementing solutions for the identified islands. In these instances, the process loops back to the partitioning step 801 and a new boundary is selected for selecting the islands of IT, thereafter the process 800 is repeated. In step 806 the customer selects one or more scored islands for solution implementation. Finally, in step 807, with the island(s) selected, the process proceeds to the detailed examination of the selected islands(s) which will be subsequently described via reference to FIG. 10. In many instances it may prove useful to define the profile information in step 802 in a manner that facilitates the simple re-partitioning of the islands of IT along several different boundaries. For example, if in profiling step 802 each island is defined by business-related boundaries, the information for each island may include pointers relating that information in each profiled island to known partitions based on geographic-related boundaries, thereafter if it is determined that a re-partitioning is required in step 805, the geographic partitions may be simply assembled and profiled from the existing business-defined island profiles and the process repeated. Alternatively, if the customer did not object to the additional upfront work, the profiles may be initially established 802 to include means for re-partitioning based upon all potential boundaries for island partitioning, and the process 800 could be iteratively repeated until the customer selects a resultant scored island(s) 806 for solution implementation. It will further be appreciated that irrespective of the strategy for defining the islands in step 802, certain aspects of the customer profiling undertaking are global in nature and transcend any pre-defined boundaries along which the profiling may be directed. For example, over-arching customer objectives with regard to such areas as cost reduction, World Wide Web enablement, increased availability etc., are likely to be viewed by the customer as having the same importance irrespective of whether they are being assessed in relation to a defined business boundary or a defined geographic boundary or another boundary. These global objectives are defined in step 802 and are further illustrated in the subsequent detailed discussion of the CORE tool function. Turning now to a more detailed analysis of the function of the CORE tool 803, FIG. 9 illustrates the flow for the performance of the operations previously described with regard to step 803. Step 901 illustrates the assignment of scores to the previously defined global IT objective information which is part of the island data input to the CORE tool and which has been generated as a result of the customer profiling step 802. The additional island-specific information generated as part of the profiling step 802 for each defined island (i.e., islands n-x for example) is scored in step 902n-902x. In this instance the global profile scores relate to customer objectives 901 such as cost reduction, Web enablement etc. whereas the scored island-specific metrics 902n-902x relate to characteristics of the particular defined IT boundary such as a scoring for the number of servers, skills associated with the S/390 platform, skill associated with the UNIX platform, experienced availability etc. In step 903, the scored global objectives 901 are used to weight the scored island-specific IT metrics. The weighing is applied in conjunction with the scoring of the global objectives, so that, for example, with a customer who has cost reduction as his highest ranked global objective metrics such as the number of servers per island and S/390 and UNIX skills could receive a higher weighing factor than less cost-sensitive metrics such as World Wide Web enablement. The weighted island scores can now be used to rank each island. In step 904 the ranked weighted islands are then mapped against offerings from the provider so as to illustrate the type of opportunities associated with each offering. Thus, for example, the provider may notice a grouping of islands that may map to a particular offering such as consolidation whereas far fewer islands are mapped to other offerings. The figure shows an exemplary mapping in tabular form also labelled as 904. In step 905 the resultant ranked weighted island scores having been mapped against provider offerings and are now analyzed for certain "observations" relating to the ultimate implementation of solutions for the customer. These "observations" are undertaken by the computer system and may range from the identification of actions which are required to undertake a particular opportunity, to cautions regarding potential cross-island opportunities. For example, a high score associated with number of servers may suggest a consolidation within the island, however the lack of platform-specific skills may render the consolidation within that island difficult (i.e., it would entail outsourcing or developing the skill), the tool would be implemented so as to recognize the availability of the requisite skills within another island and may provide a text generated observation pointing toward migration of the resource to the appropriate island to achieve the cost reduction goal of the customer. Many analytical implementations may be undertaken in step 905 which are considered to be within the scope of the present invention. For example, the patterns generated by the CORE tool may be compared to the results stored results of previous iterations of the BSA undertaken with other customers or with pre-defined models having their data stored in the database 404. This comparison may be undertaken with the aid of data mining tools such as on-line analytical processing (OLAP) tools to discern commonality among the results and previous identified opportunities. Prior to undertaking the detailed examination 206 portion of the BSA process 200, in step 906 the CORE tool identifies the appropriate questionnaires and tools to utilize for each island in conjunction with the mapping of the weighted scores therefor. An exemplary illustration of this identification is shown as in the figure also labelled 906. This facilitates and initiates the selection 806 of one or more solutions applied to one or more islands enabling the participants in the BSA to proceed to the final portion of the process, the detailed examination process 1000 as depicted in FIG. 10. Turning now to FIG. 10 a high-level process flow for the detailed examination process is illustrated. Upon passing through step 806 and 807 the provider and customer have selected one or more projects for further detailed examination. The CORE tool in step 906 has provided a listing of the requisite processes, questionnaires and tools necessary for such a detailed examination, such that, the process flow through the detailed examination process 1000 may be considered as being defined in step 906. Notwithstanding the selection process 906 for the specific undertaking, the detailed examination process 1000 possesses some general characteristics which exist regardless of the specific solution offering undergoing detailed examination. Beginning with step 1001 the customer is directed to answer detailed questions related to the particular solution(s) that has been selected. The questions comprising the detailed questionnaire presented in step 1001 are cataloged within the computer system and may preferably reside in the database 404. The results of the foregoing CORE tool analysis 906 may be utilized in selecting the appropriate sets of questions to present to a specific customer. For example, a customer for which a consolidation solution is being investigated may be presented with a set of questions specific to the type of consolidation activity undergoing investigation, which set of questions may be cataloged as server consolidation questions. The CORE tool 803 may further indicate that the same customer has significant cost concerns in implementing this consolidation solution or alternatively that the customer does not possess the requisite technical experience to accommodate the consolidation. In such instances, the presentation of questions 1001 in light of this data gleaned from use of the CORE tool 803 would be implemented so as to further investigate these areas by identifying other appropriate sets of questions to present to the customer. The responses to the questions presented to the customer 1001 are stored in the database 404 in step 1002. The database now includes nearly all of the customer-specific information which is required to implement the solution analysis. It will be understood that this is the very information that may be used as input for the modelling tasks undertaken by the CONSAVE and CORE tools in previous stages of the BSA process, and furthermore that as the BSA process is repeatedly performed, the value of the information stored in the data space 404 and its usefulness in modelling IT solutions for other customers will continue to grow. The information stored in the data space 404 is next used as input to a set of tools designed to assess the cost 1003 of implementing the solution. The tools include a sizer 1004 for determining the costs of the hardware and associated licensed software included in the solution implementation, a tools for evaluating the development costs 1005 of implementing the solution and a tool for determining the costs of the administration 1006 required to accomplish the solution. Each of these tools will be described in greater detail below. The hardware cost of the undertaking is assessed by a sizer tool in step 1004. The hardware cost is essentially the cost of any and all additional computing capacity required by the solution. An example would be the number of S/390 capacity measured in millions of instruction per second (MIPs) required to consolidate several servers onto the S/390 platform. In conjunction with this hardware transition cost assessment and additional assessment of associated software licensing expenses, incurred as a function of the hardware implementation is included in this step. In addition to the hardware costs 1004 there are development costs associated with the work involved in implementing or porting of a solution to the customer's IT environment. The development workload assessment tool 1005 determines the costs involved in this process. Finally, there are administrative costs 1006 associated with the solution implementation. Ideally, a customer would seek to minimize the required administrative costs via implementation of a solution, however, even in cases wherein the eventual cost of administration of a solution will be less that current administrative costs, initial expense associated with training and developing administrative procedures must be accounted for. The results of each of the cost assessment tools is provided back to the database 404 in step 1007 as a "raw" cost for implementing the solution. The raw cost is devoid of certain financial modelling information such as the savings to be achieved by depreciation, the expense of inflation, the cost of loan-release financing, the cost of scrapping old equipment, or the income from selling or trading old equipment and environmental impacts. Each of these pieces of information is supplied either from data already stored in the database 404 or by user input into a financial modelling tool 1008 which serves to apply generally accepted accounting principles to the raw cost information so as to present an actual customer cost associated with the solution. The output of the financial modelling tool 1008 and the database 404 serve as inputs to a process step 1009 wherein the architectural model for the particular solution is compared to data models of sample solutions (stored in the database 404). These data models represent the sample solutions or data patterns identified in the analytical processing step described for step 905. The comparison serves to determine whether the actual solution provides the same or substantially the same advantages as the model. The assessment may be based on cost, performance or any other parameters identified in selecting the particular model in 905. Favorable comparisons may result in the updating of the model whereas unfavorable comparisons will serve as indicators for instances when a particular sample solution may be inapplicable and may prompt a return to the selection step 906 or the detailed examination of a different selected solution. The outputs of the architectural modelling step 1009 as well as the financial modelling tools 1008 are provided in step 1010 to tables(s) in the data space 404. At step 1010, the database 404 includes all of the required data for determining the actual cost of a solution implementation as well as for a comparison of the solution with the data models for the solution. In step 1011 it is next determined to what extent the solution implementation will provide value to the customer. This is accomplished by re-running the analysis portion of the CORE tool 1011 which, it will be recalled, compared the customers current IT environment with respect to the industry average. At this point 1011 it is now possible to provide a new comparison between the customer and the industry after incorporating the solution. The product of this determination is the assignment of a value score 1012 for the solution implementation, indicative of the efficacy of the solution for the customer. Upon providing an acceptable value score a formal solution proposal can be generated 1013 by retrieving the particular solution implementation details from the database and incorporating them into a standard business solution proposal document. Moreover, in addition to the business solution proposal other deliverables from the BSA process including without limitation the results of any of the aforementioned analytic steps may be provided to the customer 1013. Turning back to the process steps defined under step 1003, FIG. 11 comprising FIGS. 11a and 11b taken together as a whole, shows the sizer tool operation 1004 in greater detail. It will be recalled that the hardware sizer tool 1004 serves to determine the hardware costs of the solution including (in the case of a consolidation to the S/390 computing platform) the additional S/390 capacity required to handle the workload being migrated from another platform to the S/390 platform. The mechanism for achieving this determination is illustrated in the flow diagram 1100 wherein the process begins by entering the first workload type 1101, for example an SAP/R3 (SAP/R# is a trademark of SAP A.G.) workload migration. Upon entering the workload type 1101 it is determined whether a workload benchmark for determining requisite machine capacity is known for the particular workload 1102. For example, in the preferred embodiment it is determined whether the transactions per minute (Tpm) rating for the workload is known. The Tpm rating is typically derived from published Tpmc ratings which represent a transactions per minute rating achieved by running the Transaction Processing Council (TPC-C) benchmark. An excellent source of this and other benchmark which are well known to those skilled in the art may currently be provided by Ideas International Corporation. If the Tpm is known for the particular workload, the value is entered into the tool 1103, alternatively, if the value is not known, a lookup table may be utilized 1104 to secure the appropriate Tpm metric for the workload 1105. Next it is determined whether a scaling factor is known for the workload 1106. A scaling factor represents a mechanism for adjusting the relative machine capacity between the native platform and the new platform to account for each of the platforms respective efficiencies at handling a particular workload with respect to the mean workload benchmark (i.e., Tpm) as determined in steps 1102-1105. For example, it is commonly recognized that an SAP workload will scale from UNIX machines from the UNIX platform to the S/390 platform at a slightly better rate than most industry standard benchmarks would indicate. Conversely, it is known that a computationally-intensive workload would scale from UNIX to S/390 at a slightly worse rate than indicated by industry standard benchmarks. This slight difference is represented by the scaling factor. The scaling factor is determined empirically. Successive iterations of the BSA process create empirical data stored in the tables of the data space 404, which may be used to help properly set the scaling factor for such a consolidation effort. Accordingly, if the scaling factor is known for the particular workload type it is entered into the sizer tool 1107, and alternatively, if the scaling factor is not known it may be determined via a lookup table 1108 which relates the workload type to the empirically-derived scaling factor so as to provide a scaling factor 1109 for the particular workload to be migrated. The scaling factor is multiplied by the Tpm to adjust the Tpm for the particular workload migration 1110. Since the workload to be migrated may exist on multiple physical machines, the next step is to multiply the adjusted Tpm (1110) by the number of machines (N) 911 to provide a total Tpm for the migration. Thus, if the SAP workload to be migrated is currently running on 5 UNIX platform machines the adjusted Tpm would be multiplied by 5. The resultant total Tpm is next multiplied by the skew factor 1112. The skew factor represents the potential for the workload to be asymmetrically distributed across multiple machines such that one or more of the machines experiences different processing capacity requirements in accommodating the workload. A variety of calculations which are known to those of skill in the art, exist for determining this type of workload skew, in the preferred embodiment the following algorithm is implemented: Skew=1/(1-s(N-1)) Where: s=an imbalance factor representing the percentage of workload that is not evenly distributed across the machines and N represents the number of machines as determined in step 1111. The skew factor is multiplied by the total Tpm to provide the balanced total Tpm which represents the Tpm represented by the workload to be migrated less the additional processing capacity (Tpm) that would be required to accommodate the workload skew. The notion here is that by consolidating multiple instances of a workload onto a single machine, the overcapacity required to process the workload skew is no longer a factor to be considered in managing the migrated workload. The balanced total Tpm is next multiplied by both a mean utilization factor 1113 (mean u) and a maximum utilization factor 1114 (max. u). The utilization factor (u) represents the amount of rated machine capacity (i.e., Tpm for the workload) that is actually used by the customer over time. The mean utility 1113 for a 24 hour period of use represents the average capacity of the machine devoted to the workload over that period, whereas the maximum utility 1114 for the same period represents the peak capacity devoted to that workload during the same period. The product of the mean utility 1113 multiplied by the balanced total Tpm produces the mean Tpm 1115 and the product of the maximum utility 1115 multiplied by the balanced total Tpm produces the maximum Tpm 1116. The mean Tpm and maximum Tpm respectively represent the average capacity and peak capacity utilized by the workload. If it were desired to migrate a given workload from a native platform to a new platform wherein the migrated workload will be the only workload resident on the new platform (i.e., a single workload machine implementation), the newly determined maximum Tpm 1116 would be the appropriate capacity to be used to size the target machine for the migration. Accordingly, in step 1117 the maximum Tpm determined in 1116 is mapped against a look up table or otherwise mapped to determine an equivalent target machine for such a single workload machine implementation. This step 1117 is repeated for each workload to be consolidated such that if it is ultimately determined that one or more workloads is not to be migrated to a multiple workload machine, the migration solution for single workload machine implementation will be readily apparent for each workload. Next in step 1118 in FIG. 11b, it is determined whether any other workload need to be analyzed. If there are other workload which require analysis the process loops back to step 1101. Alternatively, when all workloads which are to migrated have been analyzed, the next three steps 1119, 1120 and 1121 respectively entail the determination of the sum of the maximum Tpm's (1119), the sum of the mean Tpm's (1120) and the largest instance of the maximum Tpm (1121). In step 1122 the sum of the mean tpms from step 1120 and the largest instance of the maximum Tpm from step 1121 are compared and the largest of the two values is selected. In step 1123, the geometric mean of the sum of the maximum Tpm's 1119 and the result of step 1122 is calculated to produce the peak average Tpm 1124. The peak average Tpm value is then used to determine the capacity of the multiple workload machine implementation 1125 and the process is ended 1126. Obviously, once this capacity is determined a target machine may be selected for the consolidation project as previously described herein and by other known means. It will further be recalled that the hardware sizer tool 1004 accounted for the costs of items such as the costs of licensed software required for the consolidation effort. This value is arrived after the machine determination is made via the process 1100 since the cost of the software via the license is often calculated based on the size of the machine, for example on a "per MIPs" or "per user" basis. Turning now to FIG. 12 we are presented with a detailed process flow 1200 for the workload development assessment tool 1005. It will be recalled that the workload development assessment tool is used to calculate development costs associated with the work involved in the implementing or porting of a solution to the customer's IT environment. An overview of the implementation of this determination is presented as flow diagram 1200. Initially, it will be recalled that information regarding the customer's IT environment has been previously gathered at various points throughout the BSA process. Data space 404 comprises, in a preferred embodiment, a table or tables including information specific to the customer's IT environment, such as the languages implemented thereon, the distribution and levels of skills, availability of development tools etc. The data space 404 further includes information pertaining to the types of applications existing in the customer's IT environment which may be ported in a consolidation solution. The process 1200 may be thought of at a high level as relating the specific existing factors to the customer's IT environment (skills, languages, tools etc.) to the specific factors of the application to be migrated (size, memory utilization, performance requirements, languages, compliance with standards, etc.) to arrive at a cost estimate for the migration undertaking for each application. The process 1200 is run for applications which are to be migrated. In step 1201 the basic size of the program is estimated by the customer in terms of "klocs" or thousands of lines of code. This determined program size is multiplied by a factor previously determined empirically to provide a base estimate of the labor involved in migrating the application. In step 1202 the result of step 1201 is adjusted by language factors to account for differences in the ease of porting. For example, if the program comprises one-half C programming language code and the other half C++ programming language code, the result of the lines of code sizing determination 1201 is multiplied by the adjustment factor for each segment of code: Lang=(0.5*Cfactor+0.5*C++factor). (wherein Cfactor-is the language factor for the C code and C++factor is the language factor for the C++ code.) In step 1203 any middleware required by the application is compared to the available middleware for the target platform, which information has preferably been previously determined and is stored in the data space 404. If the required middleware is not available a flag is raised and the user is given the opportunity to abort the process or proceed assuming that the middleware will be ported. In step 1204 any program or object libraries required are compared to the libraries available for the target platform. As was the case in step 1203, this information is preferably stored in data space 404. Furthermore, as in Step 1203 the user is given the opportunity to abort or continue on mismatches. In step 1205 the programming model is examined, and adjustment is made to the estimate. The programming model may directly impact the porting estimate in a variety of different ways. For example, it is known that the "heavy process" architectures like OS/390 and AS/400 can have trouble with "process model" applications which create and destroy many processes dynamically. Getting such applications to acceptable performance levels can involve additional development work in the port. On the other hand applications implemented using a "threads" programming model can do much better with such architectures and require less porting effort. In step 1206 the estimate is adjusted to include resolution of scaling problems in the application which exist regardless of platform. Known scaling problems like memory leaks and the use of spin locks are taken into account. This step is particularly important when the reason for the port is growth. There are existing tools which can detect memory leaks or the customer may be having trouble with a leak and therefore knows about it. The user can choose to include running a leak detector and other analysis tools on the existing platform as part of the estimated porting effort. In step 1207 the user is given the opportunity to add programming effort estimates for rearchitecting pieces of the application. In many consolidation efforts there is considerable pathlength to be removed by creating direct file or memory sharing interfaces where network and gateway interfaces existed in the distributed solution. Estimates for making these adjustments are highly application dependent and therefore need to be done separately and then added in step 1207. Steps 1201-1207 are repeated for each application under consideration. In step 1208 the resulting time and resource estimate is presented to the user both in total and by application. Additionally a breakdown of adjustments made for each application is provided. In step 1209 the customer's resources are compared to the resources required to do the estimated work on the desired schedule and the gap, if any, is identified. The resulting output is used to develop services proposals negotiating with service providers and contract programmers or adjusting the customers resources. Throughout the process 1200 the data space 404 is continually accessed to provide information relevant to each of the enumerated steps 1201-1208. It is further contemplated that the data space 404 further includes application porting models, which are based upon previously available data from previous porting efforts and commercially available data and which are continually refined as the porting process is repeated. The continual use and refinement of these models provides and increasing accurate tool for determining the application porting effort.
|
Same subclass Same class Consider this |
||||||||||
