Complete Software Development Process & Agile Methodology

ChristoberChristober
4 min read

Nowadays, We are using many software applications, social media, e-commerce websites, games, etc.. all these are developed by some companies, and the companies while developing the project follow some methodologies means the way an organization is developing the applications.

First, we look at very high level picture of the complete software development process for in our case will take Facebook as an example which is complex and it will probably require all different IT roles. and responsibilities to make the whole FaceBook process possible.

Programming:

Facebook is software right? and it was developed by the developers team. Developers code in different languages to make an application.

If it's a small app then one team per app or if it's a complex application in our FB which is complex then there will be Per feature one team.

They code for new functionality but also if something is'nt working they will also fix the bugs. Next step is testing

Testing:

If you have existing code we need to add new feature.Also make sure that new code doesn't break the old functionality. Testing is done by developers and also companies have their own dedicated testers to test the software and nowadays these testing are automated using Python scripting and etc..

Next, the application can be released.

Release:

Roll it out to the new world

Release of software:

->Building application(Packages, Congifuration, Compressed, Code)

->Run it on servers

->Upgrading Existing software

This is the place where the Operation team places in.

Operation:

Running software in production and they are Responsible for delivery to people.

Development Vs Operation

After the developement process once finished. Part of integrating new code. The challenges are

->No downtime

The operation team has to ensure that no downtime. Let's imagine if facebook wasn't working for a couple of minutes it will be an annoying situation. so they have to make sure that it has no downtime and other work is if server fail, it happen often because it's just a hardware.

->Handle huge traffic

Millions of request send to server per second example: Like, share updates

How does all these happen, How does operation has no downtime, Load resistent and keeps running even millions request at same time

Basically they make sure that underlying infrastructure is working perfects and performance of operation

How Dev team & Ops team differ

Both are the same part of SDLC

The deployment requires some configuration

->Environment Vars

->Folder on the server

->Database

The environment needs to be prepared

*The Developers team will document each and every instruction

*The Operation team try to follow instructions

but there will often be some missing parts, not clear enough because the developers team and operations team doesn't communicate much.

Methodology

Now one thing that heavily influence speed and process of Software Development actually happen inside organization is the Methodology.It's the way an organization is developing the applications

Waterfall methodology

Requirements

It's a planning part.

The team member will document each and every feature

It includes

->How FB actually looks like

->Uploading picture

->Profile

->Story

->Events

->FB Shop

It takes many months to document everything.

Development

In this stage the developers team will code complete application. Each feature add new Functionality to the application.

It takes months or even years to complete the coding part entirely

Testing

Each every feature gets tested one by one. Load test, performance test and there will be some mismatch between the Document and Code so again it will be corrected again it takes months to test it

Operation

It's a huge preparation, need to implement many servers

It takes years in order to make infrastructure

The problems in Waterfall methodology

This waterfall or traditional methodology is

-> Very ineffective

-> Over time requirements

-> Many places of failure

The companies found Agile methodology. The main advantage of agile methodology is the speed of development, testing, and deployment cycles.

Basically, the idea behind the agile methodology is just waiting to develop the whole application start to finish by checking each feature and by fixing each and every bugs

And since, agile is methodology or frameworks that tells you what are the good practice and efficient ways to do things. It has specific implement of that method or framework

Scrum and Kanban - Specific Implementations

Depending on the company and the team's needs they may work on different frameworks

Agile is CI/CD

The Agile is CI/CD which strives to company to make much more efficient ways to do things better.

0
Subscribe to my newsletter

Read articles from Christober directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Christober
Christober

A sophomore undergrad Engineering Student Learning DevOps and like to deepen my Knowledge in this field.