Day 2 Guide: Exploring the Principles of SDLC
Overview
The SDLC (Software Development Life Cycle) standards are a set of industry-wide guidelines that are universally adopted and followed, regardless of the company or organization. These standards ensure a consistent and efficient approach to software development, providing a framework for professionals to follow across different companies and projects.
The SDLC comprises of 6 Phases :-
- Planning/Ideation
- Defining
- Designing
- Development/Building
- Testing
- Deployment
Broadly, there are 3 Phases of the SDLC on the high level as below :-
- Design
- Develop
- Test
The end goal is to deliver a high quality product by meeting the customer requirements.
Let's understand this with an example :-
Assume that you are working for a ecommerce company that deals in adult apparels and is wanting to open a kids catalogue, this is how they will move with adherence to the SDLC :-
Planning + Requirements - This is a very fundamental stage, Here the Product Owners, Business Analysts and the other senior members get the requirements of the product by gathering feedback from the Users/Customers. If there is a negative feedback from the users the product idea can be suspended/discarded at this very stage and hence this makes it a very important stage.
Defining - In this stage, the Senior Members which comprise of the Business Analysts, Product Owners who were responsible to carry the customer research write a documentation called as the Software Requirement Specification Document based on the customer feedback data which they had gathered in the planning stage.
Designing - This is a very critical stage because you do High Level Design (HLD) & Low Level Design (LLD) for the product.
High Level Design: This is a type of design which is written by the Architect/Senior Engineers to ensure the product is scalable, is efficient in terms of load & is highly available even during high server traffic.
Low Level Design: This is a type of design which is written by the Senior Developers specifying all the lower level software requirements for the product such as Which Database to use; Which functions, modules to use; also all the types of arguments, calls, methods are all decided as part of the Low Level Design.
Pillars of SDLC for DevOps Engineers
The Further 3 Phases in the SDLC are all DevOps Centric Phases, also these are the phases where DevOps comes into play and hence these can be automated.
Building - This stage comes into action after you have completed all your customer research, built the user stories & the Software Requirement Specification Document is ready there is when we move ahead with Building the product i.e. Development. The Developers will start writing the code in their favourite programming language post referring to the allocated JIRA's for the product and this is how the development phase commences. Post discussion between the peer members of the team, the code is pushed to a central code repository i.e. GIT
Testing - In this Phase, the Quality Assurance Engineers*(QA)*, push the code from GIT to a Virtual Server and start rigorous testing of the code in order to figure out any loopholes, bugs etc. If found will be reported to the developers and sent for improvement and if not will be passed and pushed to the next step of SDLC.
Deployment - This is the final Phase where the code from a Testing/Dev Server is pushed to a Production Server for the usage of customers.
The above three phases of SDLC are also often referred to as the Pillars of SDLC for DevOps Engineer
As discussed before, DevOps is a mindset/culture and hence a DevOps Engineers' task would be to facilitate the execution of the above 3 Phases i.e. Building, Testing & Deployment by automating the steps and blocking the room for manual intervention. Hence, saving time and fastening the process which makes the journey efficient which in turn is the goal of DevOps.
Principal of a DevOps Engineer
Automation is directly proportional to efficiency as it cuts down time on manual intervention and makes the product more scalable and robust.
Automation ∝ Efficiency
Automation is beneficial in the following ways :-
Automation streamlines processes, maximizing efficiency and productivity.
By reducing manual intervention, errors are minimized and accuracy is ensured. Efficient automation solutions save time, resources, and energy.
Optimized workflows lead to increased output and improved quality.
Automation unlocks the potential for unparalleled efficiency and reliability.
Note - SDLC is a standard followed by enterprises to ensure project management and a successful product delivery. Also, there are many types of SDLC models like in the below picture but the most widely used in today's time is Agile Methodology.
Agile Methodology
In the Agile method, you follow all the phases of the SDLC but since the name suggests it is very agile so you don't wait for the whole planning to be completed instead you process with what's in hand and work on it in short sprints. When the other part of planning is completed you proceed to work on that chunk and then so forth and so on.
Read more about Agile Methodology in Detail : https://www.geeksforgeeks.org/what-is-agile-methodology/
Cheers, Thanks for visiting!
Subscribe to my newsletter
Read articles from Abhinav Prakash directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Abhinav Prakash
Abhinav Prakash
I am a Big Data & DevOps Engineer, trying to solve problems through Data Analytics & Engineering. I am trying to fit in & adapt to the vast technology pool that the world is currently residing in and be part of the scene by sincerely contributing to it through my stream. I dabble mostly on Java, YAML, Cloudera, Apache Hadoop, Ansible & Linux. It's been almost two years since I entered the industry and started working in the engineering team of the organisation that I am currently part of. I graduated in Information Technology & Engineering from SRMIST, Chennai and have been fascinated about systems & data manipulation since then. You can find me playing Counter Strike, Chess and listening to music or find me involved in a political debate at a forum when I am not working. Cheers🤝