SDLC & Scrum are two different approaches to software development that also find use in project management. Both methods have their advantages and disadvantages, and the selection of either method will depend on various project-centric factors.
In both the SDLC & Scrum methods, an iteration or module is not passed on until it’s done but the difference between the two is that in Scrum projects, evaluation of a module is present before it is passed along whereas in traditional SDLC, the project flow passes along without stopping with hopes of a good outcome.
Let’s first understand the basics of the two approaches
SDLC Method
Software Development Life Cycle (SDLC) consists of few phases like planning, analysis, design and implementation. Many number of SDLC models have been created like Waterfall, Spiral and V-model etc. The SDLC model is a sequential design process used in software development, with the development life cycle of Conception, Initiation, Analysis, Design, Construction, Testing, Implementation, and Maintenance progressing steadily downwards. Completion of one stage leads to another, and each stage has its separate goals. It owes its origin to the standard workflow process in the construction and manufacturing industries.
The main characteristics of the SDLC method is the division of the project into tight compartments, reducing the dependency on individuals in the team. Key individuals coming and going at the transition points of stages does not affect project execution. The method also calls for robust documentation, further lessening the dependence on individuals. But its bane is the inflexibility and rigidity. Just as water that flows down a waterfall cannot come back, it is not possible to alter a completed stage or even the project design in any way. Requirements gathering upfront therefore become critical. The logic is that the time spent upfront to ensure comprehensive requirements gathering and design saves considerable time and effort later.
SCRUM Method
Scrum is just one of the many iterative and incremental Agile software development methods. SCRUM was initiated by Ken Swaber in 1995. It was included in agile methodology since it contains the same concepts of agile. A SCRUM is a team pack, where everyone in the team acts together. It delivers the project within time and with minimal cost. Scrum software development bases itself on an iterative and incremental approach. Software developers work on small modules, and respond to users’ changed requirements rather than follow a specific or predetermined plan of action. The basic design is simple, and changes are made as work progresses.
The SCRUM methodology uses a different language to the one used in traditional SDLC methods
1. Different Roles
Scrum has mainly two types of roles inside it, which are:
1. Main/Core Roles: There are three core roles:
a) Scrum Master – Scrum master has a leadership role over team members and is responsible for managing the process
b) Product Owner – Customer representative who works with the team and act as an interface between the team and the business
c) Scrum Team Member – Develops product and each team member is responsible for their work.
2. Ancillary Roles: The ancillary roles in Scrum teams are those with no formal role and infrequent involvement in the Scrum processing but nonetheless, they must be taken into account. Viz. Stakeholders, Managers.
2. Different Meetings
The following types of meetings are conducted in scrum:
1. Daily Scrum
Scrum master and development team members report to each other in a daily meeting of about 15 minutes
Three questions are generated in this sprint
· What they did yesterday?
· What they plan to do till next meeting?
· What difficulties are there in their way?
2. Scrum of Scrums
A technique to scale Scrum up to large groups (over a dozen people), consisting of dividing the groups into Agile teams of 5-10. Each daily scrum within a sub-team ends by designating one member as “ambassador” to participate in a daily meeting with ambassadors from other teams, called the Scrum of Scrums.
3. Sprint planning meeting
Sprint planning meeting is conducted by the product owner, team member and the scrum master and in this decisions are taken to prioritize the items which is more important. The meeting focus is on what to do and how to do
4. Sprint review meeting
Is done after every Sprint and the product owner reviews and revise the sprint planning meeting after this review meeting
5. Sprint retrospective
Is conducted after every sprint and mainly a discussion about the experiences and problems faced, what to be followed and not to be followed to improve further and is typically of 15–30 minutes of duration.
3. Different Characteristics
In the SCRUM methodology a sprint is the basic unit of development. Each sprint is preceded by a planning meeting, where the tasks for the sprint are identified and an estimated commitment for the sprint goal is made, and followed by a review or retrospective meeting where the progress is reviewed and lessons for the next sprint are identified. During each sprint, the team creates finished portions of a product.
4. Different Artefacts
Product Backlog
The product backlog is an ordered list of “requirements” that is maintained for a product. It contains Product Backlog Items that are ordered by the Product Owner. Product owner decides about the priorities of the user stories. Product owner can re-prioritize the list during or end of the sprint. It is transparent to all stakeholders.
Sprint backlog
The sprint backlog is the list of work the Development Team must address during the next sprint. Requirement should not be changed during sprint execution.
Burn-down chart
The sprint burn down chart is a displayed chart showing remaining work in the sprint backlog. Updated every day, it gives a simple view of the sprint progress. It also provides quick visualizations for reference.
Unlike with the Waterfall method, testing and customer feedback occurs simultaneously with development. This method gives priority to collaboration over design. Interactions among stakeholders take priority over processes and tools, and working software takes priority over documenting procedures. Different developers may work on different modules, and integrate all modules together at the end.
Agile methods of software development gained popularity in the 1990s as a reaction to the drawbacks of the traditional Waterfall methods. Critics considered the Waterfall method heavily regulated, regimented, and micromanaged to suit many needs, and have been working on various incremental approaches experimented since 1957.
Comparison
Both the SDLC & Scrum method of software development have their uses. Although Scrum arose as a reaction to the limitations imposed by the SDLC method, SDLC still retains its relevance as a better method when the environment is stable with no room for changes, when frequent interactions with ends users and other stakeholders are not possible, or when there is a risk of key developers quitting the project midway.
Advantages of SDLC
· It is sequential model, so it’s easy to implement.
· The amount of resources required to implement this model are minimal.
· Proper documentation is followed for the quality of the development.
Disadvantages of SDLC
· The problems with one phase are never solved completely during that phase and it leads to many problems
· If client want the requirement to be changed, it will not be implemented
· Freezes scope – Customer requirements contract
· Estimates schedule – Delivery time is intended
Scrum is a lightweight method. As software developers focus on smaller work areas, overhead becomes less, and the project costs considerably less than when using the SDLC methods. When customer requirements are hazy, or the business environment is uncertain, Agile methods like SCRUM that allow making frequent changes, and testing during the construction stage remains the best choice. Successful execution of SCRUM projects nevertheless requires highly skilled and competent developers, and stakeholders who know what they want. With the scope to accommodate changes, a SCRUM project can easily lose its way.
Advantages of Scrum
· Scrum provides customer satisfaction by optimizing turnaround time and responsiveness to requests.
· Increase the quality
· Accept and expect the changes
· Provide better estimates while spending less time creating them
· Be more in control of the project schedule
· Scrum is ideal for rapidly changing, accumulating requirements.
· Benefits to customer and project manager
· Scrum is fast, quick and can adapt changes easily
· Freezes schedule – Short Sprint by short Sprint
· Estimates scope – Top feature, then next feature
· Never changes the schedule, or Sprint
· Adjusts the scope if needed to meet release dates
· Work estimates are much easier.
· Work proceeds and completes more logically.
Disadvantages of Scrum
· Documentation is very less
· Team members dedication is very important
· Team work is highly essential
· If team members does not cooperate well, the project will face failure
A comparative summary is tabulated below
SDLC | SCRUM |
Suited for project | Suited for product |
Traditional model consists of different phases | SCRUM methodology consists of different sprints |
Does not expect changes | Expect changes and accept the changes |
More documentation | Less documentation |
Project cost determined during planning | Project cost set during project |
Probability of success is low | Probability of success is high |
Team flexibility and creativity is limited | Team flexibility and creativity is unlimited |
Sequential | Overlapping |