Software Development Process

I am writing this article on the basic understanding of software development process and its lifecycle through out the different stages.

What is software development?

Software development is the process of transforming customer requirements into a complete software product.

Software development only starts once we completed below processes which are involved in Software Development Life Cycle:

  • Requirement gathering session with the Customer
  • Solution Architect or engineering team finalize the design and basic architecture of the software or product
  • Delivery Manager splits the phases of development according to the design and planning session with technical leads.
  • Project Manager got the development request feature based and then he assigned this request to development team.

 

What is Software Development Life Cycle?

The Software Development Life Cycle also known as SDLC which aims to produce high-quality software that meets or exceeds customer expectations reaches completion within times and cost estimates.

ISO/IEC 12207 is an international standard for software life-cycle processes. It aims to be the standard that defines all the tasks required for developing and maintaining software.

In software development lifecycle, it involves different stages and needs to follow the order to achieve the goal as below

Requirements

This is the most important phase in the software development lifecycle. In this stage, the requirements are gathered from the Customers and then requirements gets analyzed to ensure the feasibility

Design

Once the requirement are received, the architect transform these requirements in to the technical specifications and plan the software components which have to be designed.

Implementation

The specifications are then passed on to the developers which create the application based on these specifications.

Verification

Once the development work is done on the application, it is verified by the group of testers to map the application functionalities with the specification given by the customers

Maintenance

Once the code is verified, it is pushed to production. Post this, the application is updated with any future enhancements or optimizations whenever required.

 

Software Development Life Cycle Models (SDLC Models)

Traditionally, there have been 3 major software development models that most companies follows:

  • Waterfall Model
  • Agile Model
  • Lean Model

 

Waterfall Model:

Waterfall Model was among the first development models which followed SDLC. It follows a linear sequential model of development i.e. until the first stage not finished; the next stage will not start.

Waterfall Model

Advantages of Waterfall Model Disadvantages of Waterfall Model
Clear objective and Specific deadlines Working product is not available until the later stage in lifecycle
No ambiguous requirements Poor model for large and complex projects
Well understood Milestones Cannot accommodate change in requirements
Process and results are well documented High risk and uncertainty

 

Agile Model:

To overcome the challenges faced in waterfall model, we came up with Agile methodology.

Agile method believes in creating shorter development lifecycles. These are achieved by not releasing all features by once and following an incremental model of development. Priority and feature wise development and delivery model.

Agile Methodology

Advantages of Agile Model Disadvantages of Agile Model
Customer satisfaction is High Not suitable for handling complex dependencies in projects
Less planning required Knowledge transfer to colleagues can be difficult
Requirements can be dynamic in nature There is less documentation
Functionality can be created and tested quickly Success on projects depends heavily on Customer interactions

 

Lean Model:

Lean Model has 7 principles. Lean development is a philosophy of increasing quality in software delivery by making use of Agile methods. It only focus on what is required now(Priority).

Lean Methodology’s has its primary focus on two things – Respect for frontline workers and Continuous improvement.

Lean Methodology

Advantages of Lean Model Disadvantages of Lean Model
Carries the same advantages as Agile Methodology Largely depend on the skill set of the team therefore require strong team
Creates a positive working environment No room for error
Customer feedback is given the utmost importance Missed delivery cannot be tolerated
Limiting Wastes saves time and money Success of the project depends heavily on Customer interaction

 

Summarizing all three Models

Summarizing SDLC Models

Problem with Waterfall Model was, the development lifecycle took a lot of time to complete its cycle. Therefore at the time we finished the product delivery, the customer requirements were no longer the same.

The problem in Waterfall Model was fixed in Lean and Agile methodologies, these methodologies strictly focused on Customer feedback and improving the software quality that too in a shorter development lifecycle.

Leave a Comment