Software Development Life Cycle is a framework having defined set of activities performed in phases for developing a software application or a software product.
There are different SDLC methodologies like Waterfall, Agile, Spiral, RAD, iterative Development etc..
For now we will try to understand 2 popular SDLC methodologies Waterfall & Agile. Still so many companies are using water fall methodology. And now a day’s most of the companies are looking for Agile methodology, because in Agile less documentation will be there and easy to understand. First we will observe Waterfall methodology.
The below are called as phases in waterfall methodology. Let us discuss in details what is waterfall methodology or model and what are the phases in waterfall model.
This is the first phase in Software Development Life cycle.
Generally Project manager and Senior Business analyst will participate in this phase.
In this Phase, we will identify;
- Stakeholders of the project i.,e Technical teams, testing teams, customer team and other dependant teams
- Technology – that will be used in the project like programming language, front end, backend (which technology to use like Java or dot Net, Database)
- Hardware requirements, software requirements
- High level requirements
- High level test approach
- High level effort and cost required for the project
- High level schedule
- Project approvers
- High level assumptions
- Identify possible risks
We will discuss these things and document it. The phase deliverable artifact is called Project Charter or BRD (Business Requirements document).
In this Phase, we will start discussing in-detail on the high level requirements which we gathered in previous phase.
Business Analyst,Project Manager, Technical Team , Architect , Network Engineer and Data base team will participate in this phase.
- We will conduct multiple meetings to understand the requirements like interview, Jad sessions and Brainstorming.
- We will use the Activity diagrams, UML diagrams and flow charts to make the document clear.
- Usually requirements’ gathering is done though meetings, phone calls, emails, virtual meetings.
- Once document is prepared, it will be reviewed with project stakeholders.
- We will freeze the requirements and take sign-off from the customer.
- The Analyze phase deliverable artifact is called (FS/FRS,SRS,RTM)
First, based on the requirements we will identify and device the flow of data in the application.
Tech leads Architect, DB architect, Network Architect and UI designer will participate in Design phase.
- Design phase will have HDD , LDD and ADD (High level design document , Low Level design document and Application design document).
- We will determine how many tables are needed? How tables are connected? what is the expected load on the database? And all.
- Followed by we will go to table level mappings, defining each field, like length of field, restriction for the field, unique ID’s and validations etc.
- We will do requirement mapping to design. i.e to ensure all the requirements are covered in design or not.
- We will document the design of application and review with Architects and we will take signoff on the design document.
Development and Coding:
In this phase, developers will start coding the functionalities.
Developers will create Unit test cases and perform unit testing.
Tech Leads will do code review
Once build is complete, build will submitted to QA team for testing.
Testing team will prepare their test strategy after Requirements Analysis Phase. Based on Test Strategy and Requirements document, testing team will create Test cases.
Test cases will be prepared before test phase so that after Development and Coding phase Testing team can start executing test cases.
If there are any defects or bugs found, testing team will assign it to development team to resolve.
Developers will fix the defects and again give it to testers.
This cycle will go on till all the defects are resolved and application is bug free.
Testing team will publish Test report at the end of testing phase and they provide sign-off. Once we receive internal sign off from the QA team then we will release to client for testing.
User Acceptance Testing is called UAT. In this phase, customer or the business user will test the application functionality.
Customer will write UAT test cases and execute the cases.
If there are any defects found, they will communicate to the Business Analyst or Project manager. They will verify whether it is genuine bug or functionality gap.If it is genuine bug then they will ask the testing team and they will assign this defect to development team to fix the bug.
Once all the UAT cases are executed, customer will provide sign-off on the UAT.
Deployment/Go Live/ Implementation :
In this phase the test application will be deployed in production environment for live usage.
After implementation, project team will do a round of high level testing to ensure everything is working perfect.
Customer will do validation in production environment and give sign-off if everything is working.
Support and Maintenance:
After implementation, warranty period starts. There will be agreement with customer and project team on the warranty period. Like 3 years, 5 years from the day of implementation.
During this period, if there are any issues, project team will take care of the issues. Usually production support team will take care of production issues, if they are unable to look into the issues then they will raise ticket and assign to Business Analyst then he will verify and assign to Development team to fix the issue.
After warranty period, maintenance will start. It means, any changes or issues found after warranty, it will taken care at additional cost and time.
This is how software application is built and maintained in waterfall methodology. !!
Advantages of Waterfall Methodology
I hope this article helped you to provide overview on what is SDLC ?
As a Business Analyst we need to know what is SDLC and what are phases involved in SDLC.