Management Framework for Software Project Development :SDM FRAMEWORK

By June 20, 2015

SDM FRAMEWORK

The emphasis on the characteristic of the framework is to address the ability to tackle the change that affects the size and progress in development stage. It ensures that all major development processes will be under controlled. To achieve a successful software system, all development processes must be continuously monitored. Thus they can be adjusted during development in order to cope with the problems of the changing world. This paper describes a framework to address the change problem during software development. As a result, the goals (work content) at different development phases can be achieved.

Figure 2 provides an outline, in a simplified form, of the framework developed in this paper. The stages of the system can be classified into: (1) the acquisition phase and (2) the operation phase. Acquisition phase includes all the activities ranging from research and planning. Operation phase includes all activities during the actual software development cycle (Figure 1 and 3). The major tasks in the acquisition phase involve estimate the development cost, establishing cost management policy, establishing historical cost database, and identifying the critical development factors. The major tasks in the operation phase include reviewing monitoring and evaluation metrics, development cost monitoring, and evaluation collected information. The historical database developed in the acquisition phase can be used in the operation phase.

Figure 1: Basic Operation of the SDM Framework
Figure 2: SDM Framework

In summary, the acquisition phase is a pre-requisite for monitor and determination. The operation phase consists of monitoring mechanism which collect information to make decisions and ensuring timely detections. Besides, a feedback channel, from operation phase to acquisition phase, is set up which operate via status and progress reports to compare actual progress with the plans based on the estimates.
Figure 3: The Project Management Cycle

Acquisition Phase

The acquisition phase includes the activities of estimating, planning, scheduling, budgeting, etc. The major management tasks in this phase are described below:

(a) Cost Estimation
It is commonly agreed that estimating is a prerequisite for good management. At the early stage of software development, the project management need to determine the work-content (size). The work-content of the application can be determined by one of sizing techniques. The result of the size estimation process let project mangers to get the basic picture of the software application project. In summary, the estimation should satisfy three major requirements.
(i) The overall development effort will be identified.
(ii) Be compatible with the data requirements
(iii) Including all critical cost drivers for the development

(b) Assessing the Development Factors
As previously mentioned, change will occur at any time during the development. An assessment should be carried out to help making the monitor policy. Change and supporting are two important factors and need to be assessed. There are many methods for assessing these two factors. For illustration purpose, a simple weighted rating scheme has been adopted. Rating scheme is a well-known analysis technique frequently used in the operations management[9]. The following is an example used to illustrate the assessment.

Change level rating: Low = 1, Medium = 3, High = 5
Supporting rating: Normal=1, Important = 3, Critical = 5

Using the above values, the weighted scores of the project can be found. Two important issues are:

• Let the project managers with a good understanding of some potential change problems of the software project development and reduce the threat to failure.
• The result from this stage will affect the arrangement of next following stage. For example, suppose the project managers aware that the project may have problems caused by unstable external supplied components (change occurs) and may lead to schedule and cost overruns (high importance level). Thus a frequently monitoring policy must be adopted.

Obviously, software development is a dynamic process and change is bound to occur. Thus the change and importance factors need to be quantified before development. Moreover, project management is free to add more critical development factors in their own assessment process.

(c) Establishing Management Policy
To establish a set of ground rules from which to monitoring, management is encouraged to discuss the project objective and requirements with all team members at the early stage of software development. Besides, the selection of appropriate metrics and standards to measure the expenditure, productivity and performance will also be discussed. As a result, all team members have a better understanding of the overall development process, their roles and commitments. In other words, the whole development team will move towards the same goal. Examples of items that might appears on the list of management policy include:
ท No overtime
ท The frequency to do the monitoring

(d) Monitoring Mechanism
The basic idea for monitoring is to deal with changes that are imposed from inside or outside of the organisation.

A monitoring mechanism need to be established before for collecting all useful information and measuring variances from the work plans. This system should span the software development process from requirements analysis to integration testing. In addition, the basic intention of the system is to support two types of progress monitoring[10]:

(i) Milestone Monitoring
Upon the completion of a particular stage in the development cycle, several milestones had been established to evaluate the progress. Supposing “waterfall” life-cycle is applied, milestone monitoring will be set up at the end of the following stages:
• Feasibility/Requirements
• Analysis
• Design (Including high-level and detailed design)
• Coding
• Testing

(ii) Continuous Point Monitoring
Continuous Point monitoring is similar to milestone monitoring, but can take place at any time during a stage, and utilise whatever data happen to be available. The basic difference between these two mechanisms is that continuous point monitoring involves just one metric overtime and the time of monitoring is fixed.

Project managers are free to add and collect more information items in their own performance monitoring system. It is used to measure the overall and practical achievements of the software project against the prescribed targets of the different stages of the development. Obviously, software development is a dynamic process and change is bound to occur. Thus all changes have been closely monitored and justified.

(e) Establishing Historical Database
It is essential to build a database to ensure continuous improvement on the estimation knowledge. Besides, the database is very useful in making the estimation. It helps the project management in considering the reuse of components of the existing software and determining the potential reusability of the software under design. In short, the database will facilitate “planning experience transfer” in the organisation.
Operation Phase

The operation phase includes the activities of monitor, evaluation and determination. The major management tasks in this phase are described below:

(a) Performance Monitoring
Using metrics and standards can keep track of the project progress of all activities in terms of time, size and quality. The performance monitoring mechanism operates continuously in the development process until the products finally delivered to the customer. To get better result, many researchers [4] suggest that the monitoring system operate via status and progress reports to compare actual progress with the plans based on the estimates. The major advantage is that the reporting stores, analyses and filters information of project progress. Unfortunately, software development is so complex and is developed by many intellectual people whose activities are hard to measure. Thus the reporting mechanism cannot sufficient to reflect the whole picture. The reason is simple – development staffs do not really like too early upsetting the project management. In other words, problems can not be early reflected and the longer an error goes detected, the more expensive it is to correct. For example, the cost of correcting an error made during the initial analysis of a project is only one-tenth the cost of correcting a similar error after the system has been turned over to the customer [8]. To get a better monitoring, the authors believe that informal monitoring mechanism also play an important role and the following points are worth to be highlighted.

ท Measure the performance of a group rather than an individual.
ท Formal and Informal meetings with different teams are worth to be held during development cycle.
ท Observe the overall performance of an individual in informal basis
ท Pay more attention to the schedule of absence from work. Generally, if one person can not fulfill his work on schedule, he will cancel or re-arrange his leave schedule.

Based on written report, formal/informal meeting, and observation, the monitoring system can collect different kind of information relating to the actual progress of the development. In summary, the monitoring system assists the management to spot symptoms of problems during the development process.

(b) Evaluating Information and the Monitoring Metrics
The major idea of this stage is to assist the project managers to identify what problem really happened in the project based on all collected information only. In other words, all collected project progress data from the performance monitoring system must be evaluated and represented in a standard format. Thus it can be interpreted consistently by project management.
Before evaluation, the project managers have to review the evaluation metrics in order to make sure all measurement tools are good to identify or state the problem correctly. If the metrics can not truly reflect the real problem, the project managers need to adjust them and re-evaluate all information again.

Evaluating project progress can be regarded as a validation process to ensure that project progress information reflects the actual project situation. Based on all collected information, the expected progress in deliverables against actual progress will be examined and provides the ‘rough’ boundary of the problem. For example, schedule evaluation aims at comparing the actual expenditure of time with the planned schedule. After evaluation, project managers understand whether the project will be finished with an unacceptable schedule.

It should be reminded that some symptoms may be common to different problems or one symptom may be caused by several problems. For example, the symptom of overtime working may be caused by poor communication, poor job allocation, insufficient support, etc. The most important issue is that the project managers need to know problem has happened so that remedies can be devised.

(c) Determination
Obviously, decisions are essentially responses to problems occurring in software development. Once the evaluation metrics are found appropriate and the problem has been identified, the project managers must determine the boundaries of an acceptable solution and identify all possible courses of action. Considering all updated project information from the monitoring system and other relating factors, project manager needs to determine whether the project has deviated from the plan.
To achieve the goal, a two-step mechanism is adopted. The first step is to re-arrange the project plan based on the updated project information. The project schedule and size plan re-construction will eliminate the self complementary effect. For example, the early completion of one task and the overrunning of another task may complement each other and make it difficult for the project managers to be aware of the problem.

Having a new project schedule, the second step is to consider all factors relating to the event in order to predict the future result. For example, low a productivity level may be accepted in the early stages of the software development cycle because team members have to spend time to understand the complex application. The project managers need to consider all possible factors before making decision. Thus in each decision making, the project managers explicitly or implicitly make assumptions about the future. If the event will cause the project to deviate from the target time or budget, some corrective actions must be taken.

In general, Acquisition phase would form part of the activity during feasibility/requirement stage of a “waterfall” software development life cycle model, while operation phase would certainty be operated continuously in the development process until the products finally delivered to the customer. The estimate at acquisition phase may be a ‘rough’ estimate based on limited information only and will be further refined during the development cycle if necessary.