Have you ever wondered how the software you order from a company is designed, developed and tested? Today we are going to talk about the most popular Software Development Life Cycle (SDLC) models and define the business analyst (BA) and system analyst (SA) roles in software development.
What is SDLC?
According to Investopedia the “software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process.” SDLC defines a methodology for improving the software quality and development process, and consists of a detailed plan which shows the development team how to develop, maintain and replace the software. SDLC is a series of phases or stages aimed at meeting a customer’s expectations.
There are various software development life cycle models, and each model follows a series of steps designed to ensure success in the software development.
Here are the most commonly used and popular SDLC models in the IT industry:
- Waterfall Model: This model involves finishing each phase completely before commencing the next one. After successful completion of each phase, it is reviewed to see if the project is on track and whether it is feasible to continue.
- Iterative or Incremental Model: This SDLC model involves multiple development cycles, which are divided up into smaller iterations. It is a more manageable model, as iterations can be easily managed and go through a set of phases including requirements, design, implementation and testing. The key difference of the Waterfall model is that a working version of the software is produced during the first iteration.
- V-Shaped Model: The processes here are executed in a sequential manner similar to the Waterfall model, but the attention is focused on testing. Testing procedures are written even before writing code, and a system plan is generated before starting the development phase.
- Agile Model: This model is focused on adaptability and customer satisfaction by rapid delivery of a working software product. According to Tutorials point, “Agile Methods break the product into small incremental builds. These builds are provided in iterations. Each iteration typically lasts from about one to three weeks. Every iteration involves cross functional teams working simultaneously on various areas like – planning, requirements analysis, design, coding, and testing.”
What are the steps of the software development life cycle and how many of these steps are necessary to create a high quality product? What is the role of business analyst in SDLC and is the BA involved in all phases of SDLC? The BA team can explore ways to improve business by optimization through analysis of a business tools, infrastructure, systems and even the work that the team does. Let’s find out how the system development life cycle is organized and where exactly the BA SA teams can make the project more successful.
What are the 5 stages of SDLC?
SDLC is generally divided into five stages:
Another typical breakdown is:
What are the 7 stages of SDLC?
In a more detailed variant, there are seven stages including:
- Concept Development
- Planning and Analysis
- Integration and Testing
- Operations and Maintenance
The purpose of SDLC is to deliver a high-quality product which meets all of the customer’s requirements.
What are the steps of the software development life cycle and what is done at every stage?
1. Planning and Requirement Analysis
This is a fundamental stage of SDLC. It is performed by senior members of the development team such as the project manager and business analyst who gather the relevant information to develop a product as per the client’s expectation. It defines what is to be built, who the end user will be and the purpose of the product. The information must include input from the customer, the sales department, market surveys and domain experts in the industry including subject matter experts (SMEs). The team formulates the core needs of the product and resolves any ambiguities to create a road map for the developers.
This stage also includes planning quality assurance requirements and identifying the risks associated with the product to define the technical approaches and necessary resources for a successful project implementation with minimum risks.
The outputs of planning include project plans, schedules, cost estimations and procurement requirements. The outputs of requirements analysis are a list of requirements including expectations for the system and its functionalities using the Waterfall model) or a backlog of tasks to be performed using the Agile software development life cycle. The BA/SA teams at this stage maintain strong communication levels with the client to make sure they have a clear vision of the finished product and its function.
2. Defining and Approval Requirements
Once the requirements are identified, the team defines and documents them so they can be approved by the customer and reviewed by market analysts. All the requirements for the product are formulated in a Software Requirement Specification (SRS) which includes the product requirements to be designed and developed during the product development cycle.
3. Design and Prototyping
After the team gets a good understanding of the customer’s requirements in the SRS document, at this stage the elements, components, security level, modules and architecture of a system and the different interfaces and type of data that will go through itare defined. The established pattern for application architecture and software development are then implemented (for example, TOGAF architecture framework). At this stage the design functions and operations are described in detail, including screen layouts, business rules, process diagrams and other documentation. BA/SA teams can provide valuable insights to make the product more flexible and correspond to market needs. The output of this stage is the description of the new system including a list of patterns, components, modules and subsystems.
4. Implementation (Software Development)
This is the stage of construction when the code of the software is written. The process can be organized in “sprints” (known as the Agile method) or in a single block effort (Waterfall method). The output of this stage is testable, functional software. In this phase the system is ready to be deployed and installed on the customer’s premises, so BA team can get feedback and insights as to what extent the system corresponds to the client’s needs and expectations.
5. Testing and Integration
This is a very important step of the SDLC, as it is impossible to deliver quality software and ensure customer satisfaction without testing. Here the BA/SA teams can obtain and analyze the software output, behavior and functions, as well as find ways to make customers and users more satisfied. The process of testing can be performed by real users – where it requires no knowledge in coding, hardware configuration or design – or by a specialized Quality Assurance (QA) team. The testing performed by the QA team can include code quality, functional tests (unit testing), integration tests, performance and security tests. As a result you get functional software ready for deployment.
In the ideal case, this is a highly automated phase, almost invisible in mature enterprises. However, in an enterprise that is not so well established or in a highly regulated industry, the process requires some manual approvals, where the BA/SA teams can be helpful too. Sometimes the product deployment is realized in stages in accordance with the business strategy of the customer. The product can be initially released in a limited manner to test it in a real business environment, and then based on the feedback collected by the BA team the software can be released as is or with improvements defined for the targeted segment.
This ongoing stage ensures that the system won’t become obsolete. It includes constant system performance analysis and component updates to make sure the system meets all the necessary standards and utilizes state-of-the-art technologies. Sysem bugs and defects discovered during maintenance must be reported and fixed to the extent needed to ensure the fix does not introduce new problems.
What is the business analyst role in SDLC?
The business analyst is one of the key platers to identify business requirements and convert them into a solution. Business and system analysts translate solution features necessary for the customer into software requirements understandable for the development team. The BA/SA teams plays a leading role during requirement gathering and at the analysis stage, as well as in the design stage. The teams also keep a close eye on code development, follow the testing phase during bug fixing as a change agent in the project team in order to fulfill the customer’s requirements.
To sum it all up, the reason we need a BA in the SDLC process is simple. The BA team helps you make your product more successful through:
- High quality business analysis which allows optimizing the schedule and timing of each stage before the project starts.
- In the development stage the BA team makes your product more consistent with the customer and user expectations, and they provide valuable insights to make your product competitive.
- The BA facilitates a more flexible development process to help bring the product to market and ensure it corresponds to users’ needs and expectations..
Contact our team of BA professionals who will help you assess your business idea and provide insights on how to translate your concept into a successful product ready to be marketed.