Software Development Life Cycle (SDLC):
Software Development Life Cycle explains about how software development starts and where it ends. SDLC has below 6 phases in it and let’s try to understand each and every phase of it in detail.
- Gathering business requirements:
Here we try to understand business requirements from client before developing software product. We reach to client and have meetings on regular basis and get all the requirements what exactly client is looking for. We need to understand below factors from client:
- Understand what exactly client business is
- Understand objectives of client for developing software system
- Understand current problems which client is facing
- Understand how we can build system better to achieve client objectives
- Plan properly to implement system to solve current problems of client
- Functional Requirements Gathering:
Once we understand all of the above then we can proceed with gathering functional requirements.
- All the requirements are nothing but futures which are requesting to implement in a system.
- We always have regular meetings with client and get all the requirements what client wanted to implement in system.
- Most of the cases we reach to client location and meet in person to gather requirements. Let’s say your client is located in London-UK then we reach to London to meet client and get all the required details.
- We need to consider below factors while gathering business requirements
- Compatibility Testing:
Compatibility testing is nothing but we need to do testing of the system in different browsers and operating systems to verify system is compatible in all these. As part of the requirement we need to ask client what are the browsers & operating system in which this system needs to be compatible.
- Web based application:
If we are developing web based application then we need to consider below requirements
- Session time: If we have to maintain any session then what is the session time we have to wait for
- Internationalization: We need to consider below requirements If application is supposed to be accessed in different regions across world
- Is this applications required to deal with multiple currencies
- Is it required to support multiple languages
- Is entire system needs to be available for internationalization or only part of it needed
- Performance Requirements: We need to consider below factors with respect to performance of the application
Once all the functional requirements are gathered then we proceed with designing the system. Here architect comes into picture and he / she is the guy who is going to design architecture of the system.
4. Development / Coding:
Once designing the architecture is completed then we need to implement the system. Here developer comes into picture who uses some technology and start writing the code for implementing the system.
Once coding is completed then tester comes into picture and starts validating system to check below:
- Is developed system is working as expected from client?
- Find defects in system if any
- Make sure system is developed as expected
6. Support / Maintenance:
Once the testing is completed we make system available to end users who can go and use system. So deploy system to production where real time users start using the system.
Let’s take an example of banking application, user transferred money through online and amount is deducted from user account but not deposited to beneficiary account. Here there is bug in the system while transferring funds through online banking. So customer faced some issue while accessing the system so we need to have Support / Maintenance team to support to user. As part of Support / Maintenance team below are the different roles:
- L1: This resource is typically a call canter executive who picks the call and listens to customer issue. In above example amount is not deposited to so this guy takes all the information and creates a complaint ticket
- L2: This resource is an analyst who does all the analysis of ticket created by L1 and understands the issue. If it is a defect this resource will create a defect.
- L3: This resource is nothing but a developer who involved in fixing the defect that is found by end user.
Let us know in the comments section if you have understood the concept of Software Development Life Cycle. Also, any doubts can be left in the comment section and we revert back.