PRESCRIPTIVE SOFTWARE PROCESS MODEL
Here I give you a brief overview of what a prescriptive software process model is. Software Engineering is a rapidly growing field and processes has become an integral part of the development since problems at hand are complex and Managing projects properly and collaboration has become a vital part that contributes to eventual success of a project.
below I have mentioned what Ilearnt over about an year ,6 months being in the industry as a trainee and another six months studying about software process models and their applications in the university . Below I have summarized three sources of information ,what I experienced during the internship what i learnt through the course module as well as what i learnt from interacting with industry veterans. so lets deep dive in to it ,hope you are ready .
What is SCRUM?
SCRUM is a framework that is created based on Agile Software Process Model. Generally, it is said that SCRUM is the Agile way of managing a software development project. The “Scrum Guide” defines SCRUM as “a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.”
This framework has adopted the basic concepts in the Agile model; such as its flexibility, dynamic state, and the ability to adapt to the particular circumstances as in the changes of user requirements, technology, business model, working environment, team members, etc. Moreover, incremental delivery of software, continuous collaboration with the product owner, embracing change, giving value to team members, and maintaining the simplicity in the code, are identified as a set of Agile principles that have been embraced by the SCRUM framework. Though Scrum is meant to be simple to understand, it is often very difficult to master.
There are five values introduced in Scrum; namely Courage, Focus, Commitment, Respect, and Openness, which should be followed by the Scrum team as individuals and also as a team. It is believed that, by following these values, the Scrum Pillars: Transparency, Inspection, and Adaptation, are awaken and maintained in balance within the team. A Scrum team can get exposed to these five values while working with the Scrum events, their roles, and the artifacts.
Scrum has its own set of artifacts to make it unique from other models, some that are adopted from the Agile model itself. Following are a few of them that are often used when referring to Scrum.
Product Vision is a statement that says “what we are trying to achieve.” This statement is followed by the Scrum team throughout the project.
A Backlog is a list of activities that are not yet completed, or in other words, matters that should be taken into consideration. There are two types of backlogs used in Scrum:
- Product Backlog
An ordered list of requirements AKA stories, that should be included in the product. These are managed by the product owner.
- Sprint Backlog
A selective set of stories from the product backlog, which are planned to be in a particular sprint, that is capable of achieving the goal in that sprint and supports the plan of delivering the product increment. These are created by the development team working together.
Product Backlog Delta Report
Product Backlog Delta Report contains the changes done to the Product Backlog in between the sprints, where the stories may be in a different state (i.e. in progress, completed) after each sprint. The Product Owner can modify the Product Backlog during the project timeline by adding, removing or changing the stories according to the requirement changes.
Sprint is the key unit in Scrum, which is known as the timebox or an iteration. A deliverable product should be developed within a sprint, that is generally defined for 2–4 weeks depending on the tasks. Sprints are executed consecutively without a gap in between.
The key metric in Scrum that measures the working capacity of a development team throughout a specific sprint. The velocity is calculated at the end of a sprint and by that the team can identify how the velocity changes inside the team within different sprints have affected the performance of the team.
The Impediment list is a set of impediments: anything that will slow down the work of the team. It may be a sick team member, reduction of resources, risks that are highly likely to occur in the current sprint, etc.
A deliverable piece of product created at the end of a sprint. All the increments of each and every sprint form a complete final product.
Definition of Done
When a backlog item or an increment is complete or marked as “Done”, all the members should know what it means to ensure the transparency among the team members and the system itself. Therefore, a definition is given for “Done” where, in the software perspective, it means that the item is coded to standards, reviewed, implemented driven with unit tests and successful integration tests. Further, in the context of services, “Done” should mean that all the tasks in a particular story is completed and tested so that it is available for the product owner to check whether it meets their expectations.
The Burn-Down chart is a graphical representation of the remaining work of assigned tasks (AKA stories) plotted against the time during a Sprint. This chart gives useful predictions of the work remaining to complete the tasks in the backlog.
Burn-Up charts are used to ensure the transparency of the entire project timeline. These charts track the progress of the project’s completion while showing both the completed work and the scope of the project. When these two lines meet, the project is said to be completed.
Scrum has a set of formal events carried out as the silver line of the framework. All these events are time-boxed with a predefined maximum time. Conducting these events helps the team to identify their mistakes and inspect their work by discussing with others members. Further, it is a great opportunity for the team to have a thorough transparency of the product, and adapt to change easily.
A sprint is always well defined with several tasks that are assigned to each team member later on. That is the process of observing the backlog and identifying which stories should be selected to the next sprint and then add them to the sprint backlog. The sprint planned with the support of the whole team at the beginning of each sprint and the planning session may take 8 hours maximum.
A special technique called Planning Poker is used mostly during Sprint Planning to estimate a weight to each story. A set of cards carrying a few numbers are given to the team members to give an estimation for each task. Sometimes, this is used when creating the product backlog, however, the product backlog may change from time to time. Hence, it is often carried out when the sprint backlog is created. This is yet another concept adopted by the Agile Development Process.
The daily scrum, also known as Daily Stand-Up Meeting, gathers all the team members for a maximum of a 15-minute session, usually during the morning hours. Everyone speaks up about three main things during a daily scrum: what was done yesterday, what are the obstacles occurred when performing yesterday’s tasks, and what is planned to do today. The importance of these meetings is that everyone can clear up their doubts before moving to the next task, and also they get to know what the others are doing to have a clear idea of the increment that would be delivered at the end of the sprint.
Not only the Scrum Team but also the Stakeholders are present at the Sprint Review. This session is held at the end of a sprint to review the work done in that sprint and to inspect the Increment. The duration of the Sprint Review depends on the size of the corresponding sprint: for longer (i.e. one month) sprints, it may be a four-hour long session.
The Sprint Retrospective is held in between the Sprint Review and the next Sprint Planning sessions. Thus, it is identified as the last thing done in a sprint. The entire team participates in a Sprint Retrospective. Retrospective analysis is the study method being used when the outcome is already at hand. Therefore, the team discusses what happened in the previous sprint and agrees on the actions to make improvements in the next sprints to come.
A Scrum team is formed with several roles: Product Owner, Scrum Master, and Development Team. The role of each person is very much important to carry out this Scrum methodology in a good manner.
The Product Owner represents the business or user community and responsible for increasing the product quality and its value by adding or removing features when necessary.
The Scrum Master should always promote and support the team to practice Scrum in a proper way while acting as the coordinator of the team and the product owner.
The Development Team consists of individuals who have the potential to perform multitasking (i.e. Business Analysis, Implementation, Testing, Quality Assurance) and said to have the same level of talent so that no one gets to lag in his or her performance.
so that is about it .hope you enjoyed my explanations .so till next time cheers !!!.