Software development life Cycle

Posted by The Open Page | 24th January 2018

                                            Software development life Cycle
 
 
What is SDLC
 
It’s the phase of software from the thought it should be developed to design to its realization in  form of development then testing and finally maintenance. Software’s are just like any other product that needs a perfect engineering. With engineering it also needs a maintenance phase to maintain it. All these part make a cycle which is called Software Redevelopment Life Cycle.
 
Today I will be discussing the most popular one
 
 Agile :
Its the most popular form of method that attracts most of the client and Software industries
The Agile is an ability to adapt to ever changing needs of the project. The requirements here are not fixed. It needs a high level of communication to the client to gather the requirement. 
Its development is divided in phases and each phase is called as Sprint. A sprint can be minimum 2 weeks and a maximum of 4 weeks. (5-8 weeks are generally targeted for testing the software)
The requirement which are clear are drilled down in form of task and they are decked in terms of their priorities.
The most important task are moved up the list and are targeted to finish up first.
The unclear requirements or less important chunks of project are moved to list down which are not possible to be developed in the Sprint. So this list is called as a Backlog List
Promoting the changes so its available to the end user like us i.e. on internet is called as Go Live or Release
Each Release consists of multiple projects and each project consists of  sprints.
How Agile starts
Firstly a release planning takes place.  A release can have multiple projects. So this planning decides which portion of the project will be covered as part of this release. Once the Module of the project is decided ( A module is a complete part of big project). 
In Agile, this module is known as a User Story.
It describes what the requirement is in simple steps.
A User Story is divided into tasks . All task of release are finalized.
Now , After release planning, sprint planning takes places. Which as discussed decides which important task list will be covered in this sprint. Also , the length of the sprint is decided for development whether it will be 2-4 weeks depending on the task list. 
Here each task in the list is an independent complete portion of the project.
Agile is a developer inclined methodology. In this developers are given the right to estimate the time for the task during sprint planning in terms of Points.
Now what are points
Points are the complexity of the task starting from 1 2 3 5 8 13 but usually a task is restricted to 8 points only. If a complexity of task goes beyond 8 then the task is further divided into smaller tasks.
There is also another  way of estimating the task or user story which is called  Planning Poker.
Each estimator is holding a deck of Planning Poker cards with values like 0, 1, 2, 3, 5, 8, 13, 20, 40 and 100.
The estimators discuss the feature, asking questions of the product owner as needed. When the feature has been fully discussed, each estimator privately selects one card to represent his or her estimate. All cards are then revealed at the same time.
If all estimators selected the same value, that becomes the estimate. If not, the estimators discuss their estimates. The high and low estimators should especially share their reasons. After further discussion, each estimator reselects an estimate card, and all cards are again revealed at the same time.
 
The poker planning process is repeated until consensus is achieved or until the estimators decide that agile estimating and planning of a particular item needs to be deferred until additional information can be acquired.
Generally , 4weeks of sprint we have sprint 5 sprint 6 an sprint 7 for UAT testing.
Now what is UAT testing
Its User Acceptance Testing. In this the entire project is tested for bugs and developers fix the bugs which are valid. The developers also have the right to reject a issue if its not valid.
Finally after all the sprint we have the release day of the sprint projects.
On the day of release the software portion developed is made available to the targeted user. 
Who are targeted users
It means for whom the software is designed for. For example, the tools design to process banking data are just for staffs working in the bank. So here targeted users are Bank Employees only. And a website released like face book , we all are the targeted users 
This was about agile. But how is Agile managed
There are various tools in Agile process for example Jeera , Rally  etc.
In these tools each user stories are created.
The document and images required to successfully develop this story are attached along with either the user story or the task.
Here for specific project a group like is created and all developers , testers, product owners etc specific to that project are added in that tool.
Now each task  is assigned to a developer against his/her name.
The developer gives estimate in hours against the task for example 40 hours.
Each end of the day the developer burns the hours or subtracts the number of hours worked . For example  if i worked for 6 hours on the task i would subtract 40-6 =36 hours left. When ever the task is completed the status of the task is changed to complete. Also it may happen the remaining hours are 0 or if we were able to finish the task early then the hours would be some positive value. i.e. if i estimated for 40 hours and if i was able to finish my talk in36 hours the total remaining hours will be 40-36 = 4 hours
This is how the actual efforts and the estimated efforts are projected.
After the end of sprint , all the estimation against task + actual hours are automatically plotted into a Graph called as Burn Down Graph. Which shows the amount of hours burned against the task. The hours are plotted in y axis and time in x axis. The 2 types of hours are projected in y axis actual efforts and estimated effort.
A slope going towards down from top of x-axis shows an effective sprint planning.
After the sprint planning , there is a Root Cause analysis phase.
In this phase the faults or issue are taken one by one and its cause is figured out. This helps all to be aware of such issue  in future or their resolution.
Also there are 3 one liners each person in Agile in this meeting says what to stop , what to start ,what to continue in terms of their learning from  last sprint issues or experience.
This is all about Agile , i could explain. For more information  search Agile Methodology in Google search Bar.
 
Cheers,
Dinesh Lalwani
 

Read Full Post »