Software development life cycle (SDLC) — A quick overview
SDLC Refers to Processes used to plan, create, test and deploy an information system
Contains 6 phases they are
Requirements
Design Software Solutions
Development
Testing
Deployment
Maintain Software Solutions
SDLC Steps
Gather Requirement: Understand the user requirement
Design: Design the UI and back-end Structures
Development: Developing the system in the selected platform and structure
Testing: Testing the systems against the requirements
Deploy: Given to the users in a production and utilize the system
Maintenance: Bug Fixes and other updates needed in the system
SDLS Methodologies
SDLS have various Methodologies which each project can choose from
Waterfall model
It is an old traditional model. Waterfall model contains 6 phases which happens on after another in a waterfall flow
Requirement — Business needs analysis
Design — Design solution to meet requirement, determine hardware and system requirements
Development-Develop each segment based on design
Testing-Test all segment
Deployment-Deploy software to the market
Maintenance- Fix the bugs with release
Spiral model
The spiral model is a risk-driven process model generator for software projects. It is the combination of linear and iterative. Spiral model minimizes the risk by breaking projects into smaller segments. Each cycle begins with identifying stakeholders and what success looks like and its end with only a review
A spiral model has 4 phases described below:
Planning phase
Requirements are studied and gathered
Risk analysis phase
In the risk analysis phase, a process is undertaken to identify risk and alternate solutions
Engineering phase
Actual development and testing if the software takes place in this phase
Evaluation phase
This phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral.
Incremental model
The incremental build model is a method of software development where the product is designed, implemented and tested incrementally (a little more is added each time) until the product is finished
When to use-
Large projects where requirements are not understood
Working in unfamiliar technical arenas
Changing the requirement due to rapidly changing technology
Business user can be moderate to heavily engaged
Need functional requirements turned into something tangible quickly
Prototyping
The Prototyping Model is a systems development method in which a prototype is built, tested, and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed. Prototype gives a visual to the user of their wants and needs. It promotes user participation and communication. It allows progress even when unclear requirements.
When to use
Project objectives are unclear
High pressure to implement something
Frequent requirement changes
Minimal resource constraints
No strict approval processes needed
Innovative, flexible design that needs to accommodate future changes
Agile
Agile SDLC model is a combination of iterative and incremental process models with focus on process adaptability and customer satisfaction by rapid delivery of working software product
Concept- Projects are envisioned and prioritized
Inception- Team members are identified, funding is put in place, and initial environments and requirements are discussed
Iteration/Construction- The development team works to deliver working software based on iteration requirements and feedback
Release- QA (Quality Assurance) testing, internal and external training, documentation development, and final release of the iteration into production
Production- Ongoing support of the software
Retirement- End-of-life activities, including customer notification and migration
When to use
The project is unpredictable and will have changing requirements
Using or creating leading-edge technology
Organization as an experienced Scrum Master
Business has experienced resource that can dedicate time to the project
Pressure to pressure a tangible product quickly
Development team doesn’t have resource constraints
Rapid Application Development
Rapid application development is both a general term used to refer to alternatives to the conventional waterfall model of software development
The phases of the rapid application development (RAD) model are:
Business modeling: The information flow is identified between various business functions.
Data modeling: Information gathered from business modeling is used to define data objects that are needed for the business.
Process modeling: Data objects defined in data modeling are converted to achieve the business information flow to achieve some specific business objective. Description are identified and created for CRUD of data objects.
Application generation: Automated tools are used to convert process models into code and the actual system.
Testing and turnover: Test new components and all the interfaces.
Advantages of the RAD model:
Reduced development time.
Increases reusability of components
Quick initial reviews occur
Encourages customer feedback
Integration from very beginning solves a lot of integration issues.
Disadvantages of RAD model:
Depends on a strong team and individual performances for identifying business requirements.
The only system that can be modularized can be built using RAD
Requires highly skilled developers/designers.
High dependency on modeling skills
Business Case and its Usage
A business case is a decision-making tool used to determine the effects a particular decision will have on Profitability.
Why a business case is used
Intended to convince key decision makers of the merits of a particular course of action.
When the business case is used
A business case is done on nearly every action but not always in a written format. The business case is created prior to the project being started. This frames up the return on investment prior to taking the action.
Who creates a business case?
A business case is generally created by a business executive a business manager, or business analyst.
5 phases of an Effective Business case
1. Initial Analysis
2. Determine Potential Solutions
3. Write the Business case
4. Review Business case
5. Present the Business case
Initial Analysis
Thoroughly understand the problem or opportunity
Determine high-level requirements
Identify data needed to support the business case (ROI)
validate with decision makers the high-level return is worth the potential investment
Analyse likelihood project will be approved and if you should continue
Determine Potential Solutions
Identify all possible solution to the problem
Benefits
* Costs
* Timetable of project
* Time before a return on investment is realized
* Risks
Write the Business case
Executive Summary
Problem statement
Analysis
solution Options
cost Benefit analysis
Recommendation
Review Business case
validate problem statement justifies a call to action
Ensure all valid solutions are given
Double check cost-benefit analysis calculations
Objectively dissect your recommendation
Correct any spelling or grammatical mistakes
Ask another person to closely review the document
Get project buy-in of two keys stakeholders
Present the Business case
Remind yourself, they haven’t seen this before
Clearly define the problem and business need to act
give your recommendation
Explain the return on investment
Touch on each risk, but unless asked, don’t dive in deep
Mention your stakeholder backers
Close the Presentation summarizing the benefits and ROI
Project stakeholders
People that are directly or indirectly affected by project they called stakeholders
What is a stakeholder?
Project team members
Customer
Suppliers
Employees
City
Professional Organizations
Any individual impacted by the project
Any individual to support the project
Why identify stakeholders
It increases the chances for success
Additional ideas
Varied perspectives
aims buy-in
Increases credibility
How to identify stakeholders to my project
walk through an anticipated scope
Get ideas from stakeholders as you identify them
Assigning Stakeholders Responsibilities
RACI Matrix( Responsible Accountable Consulted Informed)
A critical tool to understand and align the responsibilities of stakeholders.
They can be used for
* Alleviates power struggles
* Reduces lack of ownership
* Sets clear expectations
Article Credit: Emstell