Activities at the Heart of Systems Development Process & Problems with Waterfall SDLC & Agile Development
Core Activities of Systems Development Process
The systems development process revolves around a set of core activities that transform business needs into a working information system.
The key activities at the heart of systems development are:
- Systems Analysis — Understanding and defining what the system should do (requirements gathering, problem identification, feasibility study)
- Systems Design — Deciding how the system will work (architecture, interface design, database design, program design)
- Systems Implementation — Building, testing, installing, and deploying the system (coding, testing, training, conversion)
- Systems Planning and Selection — Identifying which systems to develop and establishing project scope and objectives
- Systems Maintenance — Ongoing support, bug fixes, and enhancements after the system is deployed
Problems with Traditional Waterfall SDLC
The Waterfall SDLC is a sequential, phase-by-phase approach where each phase must be completed before the next begins.
Key problems include:
- Inflexibility to change — Once a phase is completed, going back is difficult and expensive; requirements changes are hard to accommodate
- Late delivery of working software — Users don't see a working system until very late in the process, increasing risk of dissatisfaction
- Assumes requirements are fixed — It assumes all requirements can be gathered upfront, which is rarely true in real-world projects
- High risk and uncertainty — Errors discovered late in the process (e.g., during testing) are very costly to fix
- Poor user involvement — Users are typically involved only at the beginning (requirements) and end (delivery), leading to misunderstandings
- Document-heavy — Produces excessive documentation that may not add direct value to the final product
- Long development cycles — Projects take a long time to complete, and business needs may change during that period
Agile Development
Agile development is an iterative and incremental approach to systems development that emphasizes flexibility, collaboration, and rapid delivery of working software.
Key characteristics of Agile:
- Software is developed in short iterations called sprints (typically 2–4 weeks)
- Working software is delivered frequently rather than at the end of the project
- Customer collaboration is prioritized over rigid contract negotiation
- Responding to change is valued over following a fixed plan
- Teams are self-organizing and cross-functional
- Continuous feedback from users ensures the product meets actual needs
Popular Agile methodologies: Scrum, Extreme Programming (XP), Kanban
Core values (from Agile Manifesto):
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Conclusion: While the waterfall model provides structure, its rigidity causes many real-world problems. Agile development overcomes these limitations by embracing change, delivering value incrementally, and keeping users closely involved throughout the development process.