SDLC stands for Software Development Cycle. It defines the processes in software development from beginning to delivery to the customer. First, we need to understand what is a software? who needs a software? who are the people working in the process? Once we understand these concepts, it will be much easier to explain the SDLC.
Let’s start with “What is a software?”. Basically, software is a set of commands that perform some specific tasks. For instance, think of a dictionary which translates words from English to Spanish, when you enter a word and press enter, the program will go and look for the word you enter in the database. If it finds a match then it will bring the Spanish equivalence of the English word you just entered. The programmers using some kind of special programming languages such as Java, C#, Python etc. to instruct the machine to perform this task. We use this type of special language so that machine understands what it needs to do.
If we have a basic understanding of software now we can pass on to the software development life cycle/process. To develop software, there should be a need. In the above case, let’s say people in America need to learn Spanish and they need to find a way to translate English word to Spanish with software which makes finding a word in seconds. So we have a project idea. To be able to execute this project properly, we need to follow a route to make this project successful.
Analysis: This is the stage where the customer/client who wants to order this project from a software company. In this stage, business analyst come together with clients to understand their needs. Need means here, what kind of functionality customer wants in the application/software. This stage is very important because main structure and functionalities will be determined here. Functionalities are also called business requirements. Once we have our requirements in hand, we can start planning.
Plan: This is the stage where we plan on how to execute our project. We need to determine how much time we need to finish the project, how many software developers we will need, how many software testers we will need, or how much we are going to spend. That’s where we will have an idea about the cost of the project. That stage is very crucial because if you don’t calculate the resources correctly, the project might require more resources, more time. The customer might also lose interest if the project doesn’t move forward as it is planned. Once we have our plan, we can now start designing our project.
Design: In this part, our software architect will decide which programming language, tools, the framework will be used for our project. There are plenty of options for software developers to build projects. However, software architects will determine the most optimized route to reach our goal. All the tools and frameworks need to work smoothly for us to finish the project on time. Otherwise, they will stay as blockers in building the software, it will cause delay and will be costly to the company.
Code/Build: In this stage, the software developers will start coding. That means they will translate the functionalities into machine language so that the computer understands. They will also make some unit and integration tests to make sure that the piece of functionality they build is working. This stage is also called implementation. The business requirements are implemented and we have a working software application.
Test/QC: In Test stage, we want to make sure that we are going to deliver a high quality software application to the customer. Therefore, software testers come into stage and they try to break the program with different types of tests. We will be talking about these tests in coming posts. However, for this part we just need to know that software testers see the application from a user perspective and design their tests accordingly. Therefore, their tests differentiate from the tests that developers executed during coding stage.
Deploy/Produce: That is the final stage of Software Development Life Cycle. Once we have tested our application, and we’re clear of defects, we can ship our product to the customer. So that they can release to their users.
Each software project follows the same steps to be able use their time and money efficiently. This is a basic introduction to Agile Testing. However, before we dive into testing, we will also talk about Software Testing Life Cycle, Software Testing Types and Techniques as well.