System Development Methods: SDLC, Agile, and SCRUM
Systems Development Method – SDM
A standard process used in an organization to conduct all the steps necessary to analyze, design, implement, and maintain an information system.
Systems Development Life Cycle – SDLC (Circular Process)
A life cycle model for system development and the traditional model used to develop, maintain, and replace information systems. It consists of phases/steps, often with sub-steps, and recommends/assumes the use of techniques and tools. The steps have expected results – output to the next step.
System Conception
Conception follows on from IS planning. Conception is the phase in which we develop the key business case, analyze risk, and assess the feasibility of an information system.
Any business case or strategic evaluation of an information system should consider IS costs and IS benefits.
It is useful to distinguish between two types of costs/benefits: tangible or visible costs/benefits and intangible or invisible costs/benefits.
Investment in IS can be justified in terms of efficiency, effectiveness, such as better customer relations, and strategic advantage.
Risk analysis is the process of identifying risks, estimating the likelihood of risks, and planning to avoid risks.
Analysis – Requirements Work
a) System Requirements
Understanding the business needs, then gathering requirements through interviews or workshops. (i.e., booking interviews with the company)
b) Process Requirements
Graphically representing functions or processes that capture, manipulate, store, and distribute data between a system and its environment, for example, using a Data Flow Diagram (DFD).
c) Data Requirements
Capturing and applying business rules (relationships between data/objects) by, for example, creating a Conceptual Data Model/ER Modeling.
Design
– Databases
Relational databases, normalization, logical design (at what level, what do we need). Physical design – exactly how it should be implemented in the specific database we have chosen (practical implementation).
– Forms and Reports (usability, what is “appropriate”)
– Interfaces and Dialogs (interaction and dialog design [designing interaction between two or more systems])
(Distribution and internet)
– Functionality – which function the system can deliver, determines whether it is
Implementation
System Implementation – The system is created and integrated into its organizational context.
- Coding
- Testing (a specialized area)
- Installation
- Documentation
- Training and Support
Maintenance
The Process for Maintenance:
- Receive maintenance requests
- Transform requests into changes
- Design changes
- Implement changes
There are different types of maintenance:
- Corrective (not value-adding)
- Adaptive
- Perfective
- Preventive
Advantages of a Traditional System Development Model – SDLC
- A linear model that is easy to understand and implement.
- Works well on mature products.
- Provides structure to inexperienced teams.
- Minimizes planning overhead.
- Phases are processed and completed one at a time.
Since No Model Can Do “Everything”, Many System Development Models Emerged
Examples of early ones:
- Structured Analysis, Design, and Implementation of Information Systems (STRADIS)
- Yourdon System Method (YSM)
- Information Engineering (IE)
- Object-Oriented Analysis (OOA)
- Rapid Application Development (RAD)
- Rational Unified Process (RUP)
- Jackson Structured Programming/Design (JSP/JSD)
Agile Manifesto Values
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
What is SCRUM in 100 Words?
Scrum is an agile process that allows us to focus on delivering the highest business value in the shortest time. It allows us to rapidly and repeatedly inspect actual working software every two weeks to one month.
The business sets the priorities. Our teams self-manage to determine the best way to deliver the highest priority features. Every two weeks to a month, anyone can see real working software and decide to release it as is or continue to enhance it for another iteration.
SCRUM’s Characteristics
- One of the Agile processes
- Self-organizing/managing Scrum teams
- Requirements (as in things that need to be done within a scrum project) are considered as “product backlog”
- No specific engineering practices are required
- Scrum projects make progress in a series of month-long “sprints”
- Product is designed, coded, and tested during the sprint
- Target duration is one month
SCRUM Framework
Roles: Product Owner, Scrum Master, Scrum Team
Ceremonies: Sprint Planning Meeting (2 parts), Sprint Retrospective, Daily Scrum Meeting & Sprint Review Meeting
Artifacts: Product Backlog, Sprint Backlog, and Burndown Chart
Roles:
Product Owner
- Defines the features of the product and prioritizes them according to market value.
- Adjusts features and prioritizes every iteration, as needed.
- Accepts or rejects work results.
- Decides on release date and content.
The SCRUM Master
- Responsible for enacting Scrum values and practices.
- Represents management to the project.
- Removes hindrances.
- Shields the Scrum Team from external interferences.
- Ensures that the Scrum team is fully functional and productive.
- Enables close cooperation across all roles and functions.
The SCRUM Team
- Typically 5-10 people.
- Self-organizing and cross-functional team (QA, Programmers, UI Designers, etc.).
- Members should work full-time.
- Membership can change only between sprints.
Ceremonies
- Sprint Planning Meeting
- Sprint
- Daily Scrum
- Sprint Review Meeting
Systems Analysis involves two primary and inter-related activities: requirements elicitation and requirements representation.
Requirements Elicitation
Requirements elicitation is the process of gathering a list of requirements of a system from users, customers, clients, regulators, and other stakeholders. It involves attempting to achieve some intersubjective agreement amongst stakeholder groups about requirements.
The Requirement Elicitation Techniques Are
- Interviews
- Observation
- Ethnography
- Prototyping
- Workshops
Requirements Specification
Requirements specification is the process concerned with the representation of requirements.
The requirements specification techniques:
- Structural Modeling
- Behavioral Modeling
- Object Modeling
- + Plain text
MoSCOW: Technique used to prioritize requirements.
(Note: if there are requirements that are not possible to prioritize – that will make the system useless if omitted)
DFD as a Method
(Belongs to the category of behavioral modeling)
Notation DFD
Modeling with DFD involves engaging in functional decomposition (top-down). Initially (in the basic version), a physical current state and a physical new state were modeled. I am unsure of the scope and how DFD is used today – but the knowledge is in demand. It could be to study information flows or to model DFD as part of requirements management.
Three Types of Data Model
- Conceptual data model: a detailed model that captures the overall structure of data in an organization. Example: ER model
- Logical data model: an implementable model, which describes data using notation that corresponds to a data organization (relational database model) used by a database management system
- Physical data model: a description of the implementation of the database
Conceptual Data Model
The primary deliverable is an (E-R) diagram or class diagram (OOAD).
The second deliverable is a set of entries about data objects to be stored in a repository or project dictionary.
Gathering Information for Conceptual Data Model
Two perspectives on data modeling:
- Top-down approach for a data model is starting with understanding the business question.
- Bottom-up approach for a data model is starting with the data and working up to insights.
Bottom-Up Approach
e.g., Customer order
Introduction to Entity-Relationship Modeling
Entity-relationship diagram (E-R diagram):
A graphical representation of an E-R model.
Entity-Relationship data model (E-R model): a detailed, logical representation of the entities, associations, and data elements for an organization or business area.
ISO Definition
ISO 9241-11 defines usability as:
“The extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency, and satisfaction in a specified context of use.“
Identification of Inputs and Outputs
Identify the outputs from the system
By listing the data flows that cross the system boundary as they leave the system.
Identify the inputs into the system
By listing the data flows that cross the system boundary on their way in.
Determine the content by inspecting the data dictionary.
Three Kinds of Design
Interaction design
To do and to act,
Forms, buttons, shopping cart, radio buttons
Graphic design
To see and to like
Color, shape, style, feel, speed
Information design
To find and to understand
Screen titles, titles, labels, disposition, links, search
Maintenance – (BS glossary for terms used in terotechnology)
The combination of all technical and administrative actions, including
supervision actions, intended to retain an item in, or restore it to, a
state in which it can perform a required function
Software – (ISO standard for quality management systems)
Software product undergoes modification to code and associated
documentation due to a problem or the need for improvement. The
objective is to modify an existing software product while preserving its
integrity.
OOAD Summary
The Sapir-Whorf hypothesis is a controversial linguistic hypothesis named after Edward Sapir and Benjamin Lee Whorf. It states that a person’s thoughts cannot be understood by another person who uses a different language because the way of thinking is strongly influenced by one’s native language.