Managing Systems Development
Introduction
The development of application systems is a major response of business to an aggressively changing business environment.
Therefore the management of application systems development is one of the most critical, challenging and demanding task undertaken by I.T. management.
It requires estimates of how business will benefit from the new system, how quality can be improved, and what to do with legacy systems.
The Challenge of Applications Development
Application systems development is now one of the significant tasks undertaken in contemporary business.
Therefore it poses the questions:
“How do you estimate the benefits of the proposed system?”
“How can higher quality systems be developed?”
“How can legacy systems be improved?”
Unfortunately, many businesses do not measure efficiency – they are too busy maintaining it. However, you must measure efficiency to control it.
Application development is a significant concern for many organizations. In some cases application development is a very traumatic experience for both developers and clients.
For example – a large university introduced a student registration systems, which subsequently failed, creating major embarrassment for the administration. “We have just experienced the pain of new technology” commented the university’s CEO – conveniently avoiding the real issues.
Application development is one of IT managers’ most difficult tasks. Difficulties seem to fall into two categories:
- Problems with programming and software development.
- Problems with the business or its management.
Software development is an intellectual process, and software itself is very flexible and easily changed. Changing a line of code is easy, BUT completely understanding the effect of that change may be very difficult – especially if that line of code is part of a very large program.
Therefore, large programs tend to be rigid, inflexible and difficult change without generating large errors. While application size and complexity continue to grow rapidly, this has not been matched by increased capability in software development tools and techniques. In many cases the organization and its managers are also part of the applications development challenge.
Difficulties include:
- Organizational environment factors that cause conflict, often experienced as the gap between executive expectations and the developer’s ability to deliver.
- Inadequate development tools.
- Improperly skilled developers.
- Failure to use improved techniques.
- Weak management control systems.
On the other hand, the successful completion of an applications systems development project is achievable by the adoption of proven project management processes.
“Projects that succeed are just about the most satisfying work experience you can have”.
Traditional Lifecycle Approach
The traditional development method for systems is the Systems (or Software) Development Life Cycle approach (SDLC) – also called the Waterfall approach.
This can be represented in 6 stages:
- Initial investigation – a request from the user
- Requirements definition
- General design
- Development
- Installation
- Post-installation activities.
The life-cycle approach divides the complex task of systems development into phases, each culminating in a management review.
Partitioning a project and using a phased approach offers many advantages:
- Complex activities are more easily understood and controlled in small increments.
- Interactions between various members of a project team is easier to manage incrementally.
- Managers are able to evaluate progress and make decisions more effectively on a phased basis.
Prototyping
Prototyping is a working model of a system or package that is built to understand the full requirements of the final system. The difference between SDLC and prototyping is that the prototype is built in order to establish the correct requirements.
Instead of trying to establish requirements at the early stages of the project, prototyping allows developers and users to develop a rough working model of the system upon which to test assumptions.
In systems development, prototyping is the first stage in developing a software application. It provides:
- A live, working micro-system – not just a simulation.
- A system for testing assumptions.
- A quick result – in weeks or months, not years!
- A (relatively) inexpensive result – using code generators is common.
- An iterative process that builds on the basic functions, runs them, then allows development of refinement in further iterations.
There are two main types of prototype:
- A throwaway prototype is designed to test ideas, develop requirements, and is useful for making comparison between different designs and conflicting objectives.
- An evolutionary prototype is designed to achieve a finished, permanent, and operational systems product.
Advantages of Prototypes
- Users can try the system and provide constructive feedback.
- An operational prototype can be produced in weeks.
- Users become most positive as they see their needs being met.
- Early detection of Errors and omissions
Disadvantages of Prototypes
- If the first iteration is wrong, it must be discarded, otherwise subsequent solutions will build upon the flawed first solution.
- There are no formal, end-of-phase reviews.
- Systems documentation is often forgotten.
- Systems backup, recovery, performance and security may be overlooked.
Enterprise Resource Planning
During the 1990s a number of factors encouraged organizations to adopt tightly packaged enterprise resource planning (ERP) systems. They include:
- A desire for functionality across the whole organization.
- Need to remain competitive.
- A response to the Y2K problem
- The need to replace legacy systems, migrate software and databases, make make sure that all the components work together on a network.
A major ERP vendor is SAP – Systemanalyse und Programmentwicklung – who offer a complete set of business applications that include:
- Sales & Distribution
- Material Management
- Production Planning
- Quality Management
- Plant Maintenance
- Human resources
- Financial Accounting
- Controlling
- Asset Management
- Project System
- Workflow
- Industry Solutions
Key issues in implementing ERP include:
- Must appreciate just how big a job it is.
- It is a business project that must be fully supported by sponsors and senior management.
- Teams must be carefully selected and share the “vision”.
- It will involve a complete reworking of the business system – there will only be one chance to get it right.
- Change management is essential.
- Training must include the concepts as well as the detail.
- Keep the project aligned with the business plan.
- Expect resistance to change
- Have a clear plan for the end of the project.
Legacy Systems
A legacy system is one that is operational, but uses older technology. Such systems are often value-adding for a business, but require a considerable maintenance expenditure.
Many legacy systems were developed in the “mainframe era” with dedicated specialist support. In many cases the software was developed without adequate documentation and was not strongly aligned with the business.
Six options for improving a legacy system are:
- Completely rewrite the code- it is not viable, and the design is poor.
- Replace the old system with an ERP or application that produces better results.
- Refurbish the system if it still produces a result with only a few problems.
- Rejuvenate the system by adding new functions.
- Restructure the code to make it work with no problems.
- Reengineer the the data element and logic, and port to a new platform.
Application Project Management
Managing application development projects consists of many elements in common with other projects, plus additional elements unique to systems development projects.
For large and complex systems development projects the success rate is relatively low.This is due to the special nature of systems development projects, and because the differences are critical to the approach employed by managers.
Business Case Development - A systems development project’s business case lists investment resources and estimates investment returns. It defines the expected cost to the organization, and describes the benefits expected from the completed project.
To provide a comparison of alternatives, the business case addresses tangible and intangible costs and benefits, always including the option of doing nothing. This analysis will be undertaken using the appropriate financial management tools.
Phase Review Process - This is a management oriented approach that allows managers to monitor progress at each phase and examine plans for the future.
The completion of each phase is when decisions must be made – to continue with the project, continue with changes, or terminate the project. Often the decision will be conditional on review at a later phase. It is always possible that subsequent reviews may uncover facts that modify the basis for making decisions.
Managing the Review Process - The review process is the basis for good management decision making. This process must include:
- Unambiguous documentation of the project scope and of each phase review.
- A clear statement of the assumptions and dependencies in the overall plan an at each phase.
- The resolution of any issues or disagreements that occur at each phase review.
- Identification of the reasons that underlie changes and variances in the project.
- Procedures for issue tracking and reporting.
- Documentation and summary reporting of phase review results and conclusions.
Resource Allocation & Control - Managers must track and control human resources just as they must control other resources, for example computer systems, office space and financial resources. Life-cycle resource management and control are fundamental to project management success.
Information describing resource deployment by skill type is part of the application development plan. The resource plan must be available during the project’s life – additional details and refinements are added at each phase review. During each phase, managers must track resources by the skill types and the plan.
Risk Analysis - Risk analysis is the way managers seek indicators of project success, throughout the life of the project.
Managers undertake to deliver a product or service in the future – at predicted costs and with a defined function. These commitments are made based upon risk analysis – understanding the risks involved. Furthermore, as a project proceeds managers must mitigate risks that emerge in order to meet their commitments.
If, during the project, and unfavourable risk trend emerges, managers must take corrective action to meet previous commitments.
Risk Reduction - Quantifying project risks is good project management, allowing managers to act to reduce or mitigate the risks, and take advantage of risk trends.
Completely eliminating all project risks is often impossible, but identifying areas of risk and managing them well is an essential task for the project manager.
Management actions to control risks include deploying special resources, applying special control techniques, or using lower risk alternatives. Project managers have many resources at their disposal for managing problems during the projects life.
Successful Systems Development
Successful systems development thrives on controlled processes, leading to predictable results and handling increasing complexity. The successful outcome is surprise-free products that meet all the technical and functional requirements.
Successful project management ensures that schedules and budgets are achieved, and the project remains on target with the business case. Undertaking the review process ensures that the project goals are realized, and successful application management produces predictable products that add value to the organization.
Conclusion
Systems development management should build upon the organization’s management processes, and contribute to the business goals in a clear and positive way.
Senior management need to know that IT development activities are well planned and aligned with corporate strategy. Executives’ expectations of IT are likely to be realistic when projects are well managed.
Realistic expectations and successful projects are key success factors for I.T. managers.
What do you know? What do you need to know?
For reading and review quesions - this is your chance to discuss answers with your lecturer.