MIS Development Process with SDLC & Agile
The software is one of the major components of a management information system. Some of the software used in a MIS system is off the shelf. These include packages such as spreadsheet programs, database applications, etc.
However, they are times when off the shelf, software does not meet the business requirements. The solution to this problem is custom made software.
This tutorial will focus on the methodologies used to develop custom software.
In this tutorial, you will learn-
- Information Systems Development Stakeholder
- MIS Systems Analysis and Design
- MIS Object oriented analysis and design
- MIS Systems Development Life Cycle (SDLC)
- Waterfall Model
- Agile Development
A typical information systems development usually has three (3) stakeholders namely;
- Users – Users are the ones who use the system after it has been developed to perform their day to day tasks.
- Project sponsors - this category of the stakeholders is responsible for the financial aspect of the project and ensuring that the project is completed.
- Developers – this category is usually made up of systems analysts and programmers. The system analysts are responsible for collecting the user requirements and writing system requirements.
The programmers develop the required system based on the system requirements that is developed by the system analysts.
The most important stakeholders in a project are users. For a project to be accepted as being completed, the users must accept it and use it. If the users do not accept the system, then the project is a failure.
Systems analysis and design refers to two closely related disciplines system analysis and system design.
- System analysis is concerned with understanding the business objectives, goals and developing business processes. The end product of systems analysis is systems specifications.
- System design uses the output from system analysis as its input. The main objective of system design is to interpret the system requirements into architectural, logical and physical designs of how the information system to be implemented.
Object-oriented analysis and design (OOAD) is closely related to systems analysis and design. The main difference between object-oriented analysis and design (OOAD) and systems analysis and design is that OOAD uses objects to represent real-world entities.
Object oriented analysis and design uses visual modeling to improve communication among all stakeholders and produce high-quality products.
An object is a representation of a real-world entity such as a customer, a product, an employee, etc. Unified Modeling Language (UML) is a general-purpose language used to create visual designs for a system.
The following image shows a sample UML diagram that shows users interacting with a point of sale system
The system development life cycle refers to the processing of planning, creating, testing, and deploying an information system. The main objective of system development life cycle is to produce high-quality information systems that meet or exceed the expectations of the users within the stipulated budget and time frame.
SDLC uses a number of development methodologies to achieve this objective. The next sections will discuss some of the most popular development methodologies.
The waterfall model uses a sequential design model. The next stage starts only after the completion of the previous stage. The first stage is usually drawn on the top and the subsequent stages below and to the left bottom. This forms a waterfall like structure, and it's where the name came from.
The main objective of the waterfall model is
- Time scheduling
- Budgeting and
- Implementing an entire system at once
The waterfall model is ideal when the user requirements are clearly understood and are not expected to change radically during the development of the information system. The waterfall model is ideal in situations where a project has a fixed-scope, fixed time frame, and fixed price.
The biggest challenge of the waterfall model is adoption to change. It is not easy to incorporate new user requirements.
Agile development is an alternative methodology to traditional project management which promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.
A sprint in agile terms is a well-defined task to be accomplished within a given time. Sprint goals and durations are set by the customers and development team. All stakeholders must meet in person to get the feedback on the sprint before they can move on to the next sprint if any.
Agile methodologies usually follow the agile manifesto. The agile manifesto is based on the following twelve (12) principles
- Customer satisfaction through early and continues delivery of software
- Welcoming changes in requirements any time of the project
- Frequent releases of working software usually on a weekly basis
- Collaboration between business people and developers when working on a project
- Projects built around motivated and trusted individuals
- Efficient and effective Face-to-face meetings
- Progress is measured based on working software
- Sustainable development, sponsors, users, and developers should be able to maintain a constant pace indefinitely
- Continuous attention to technical excellence and good design enhances agility.
- Self-organizing teams
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
The following diagram illustrates how agile development methodologies are implemented.
A prototype is a semi-functional simulation model of the actual system to be developed. Prototyping development methodologies make use of prototypes. Prototypes allow both developers and users to get feedback early.
Prototyping makes it easy for users to specify their requirements and developers understanding the requirements of the users because of the prototypes. A prototyping methodology stands with identifying the basics system requirements especially the input and output from the system. These requirements are then used to create a simulation model that users can interact with and provide feedback. The user feedback is used to enhance the prototype and make other important decisions such as project costing and feasible time schedules.
The following diagram illustrate the stages of prototyping
Information systems development refers to methodologies and steps involved in developing a new information system or upgrading an existing system to meet the evolving user requirements.
In a nutshell, a development methodology has to first identify and understand the problem with the existing system and find a solution that solves the problem.
The methodology chosen depends on the nature of the project and user requirements.
- The waterfall model is ideal when the project is not expected to change much
- While methodologies such as Agile, Prototyping, etc. are ideal when the project is expected to change during the course of development and the changes, have to be incorporated.