In this chapter, we will focus on the concepts of software development life cycle called “agile”. The Agile software development methodology helps in building a software through increment sessions in short iterations of 1 to 4 weeks so the development is aligned with changing business requirements.
There are 12 principles that describe the Agile methodology in detail −
The highest priority is given to customers focusing on the requirements through early and continuous delivery of valuable software.
Changes are acceptable during software development. Agile processes is designed to work in order to match the customer’s competitive advantage.
Delivery of a working software is given to clients within a span of one to four weeks.
Business analysts, quality analysts and developers must work together during the entire life cycle of project.
Projects should be designed with a clan of motivated individuals. It provides an environment to support individual team members.
Face-to-face conversation is the most efficient and effective method of sending information to and within a development team.
Measuring progress is the key that helps in defining the progress of project and software development.
Agile process focusses on sustainable development. The business, the developers and the users should be able to maintain a constant pace with the project.
It is mandatory to maintain regular attention to technical excellence and good design to enhance the agile functionality.
Agile process keeps everything simple and uses simple terms to measure the work that is not completed.
An agile team should be self-organized and should be independent with the best architecture; requirements and designs emerge from self-organized teams.
It is important to review the work at regular intervals so that the team can reflect on how the work is progressing. Reviewing the module on a timely basis will improve performance.
Daily stand-up refers to the daily status meeting among the team members. It provides updates related to the software development. It also refers to addressing obstacles of project development.
Daily stand-up is a mandatory practice, no matter how an agile team is established regardless of its office location.
The list of features of a daily stand-up are as follows −
The duration of daily stand-up meet should be roughly 15 minutes. It should not extend for a longer duration.
Stand-up should include discussions on status update.
Participants of this meeting usually stand with the intention to end up meeting quickly.
A story is usually a requirement, which is formulated in few sentences in simple language and it should be completed within an iteration. A user story should include the following characteristics −
All the related code should have related check-ins.
The unit test cases for the specified iteration.
All the acceptance test cases should be defined.
Acceptance from product owner while defining the story.
Scrum can be considered as a subset of agile methodology. It is a lightweight process and includes the following features −
It is a process framework, which includes a set of practices that need to be followed in consistent order. The best illustration of Scrum is following iterations or sprints.
It is a “lightweight” process meaning that the process is kept as small as possible, to maximize the productive output in given duration specified.
Scrum process is known for its distinguishing process in comparison with other methodologies of traditional agile approach. It is divided into the following three categories −
Roles
Artifacts
Time Boxes
Roles define the team members and their roles included throughout the process. The Scrum Team consists of the following three roles −
Scrum Master
Product Owner
Team
The Scrum artifacts provide key information that each member should be aware of. The information includes details of product, activities planned, and activities completed. The artefacts defined in Scrum framework are as follows −
Product backlog
Sprint backlog
Burn down chart
Increment
Time boxes are the user stories which are planned for each iteration. These user stories help in describing the product features which form part of the Scrum artefacts. The product backlog is a list of user stories. These user stories are prioritized and forwarded to the user meetings to decide which one should be taken up.
Scrum Master interacts with every member of the team. Let us now see the interaction of the Scrum Master with other teams and resources.
The Scrum Master interacts the product owner in following ways −
Finding techniques to achieve effective product backlog of user stories and managing them.
Helping team to understand the needs of clear and concise product backlog items.
Product planning with specific environment.
Ensuring that product owner knows how to increase the value of product.
Facilitating Scrum events as and when required.
The Scrum Master interacts with the team in several ways −
Coaching the organization in its Scrum adoption.
Planning Scrum implementations to the specific organization.
Helping employees and stakeholders to understand the requirement and phases of product development.
Working with Scrum Masters of other teams to increase effectiveness of the application of Scrum of the specified team.
The Scrum Master interacts with organization in several ways. A few are mentioned below −
Coaching and scrum team interacts with self-organization and includes a feature of cross functionality.
Coaching the organization and teams in such areas where Scrum is not fully adopted yet or not accepted.
Scrum helps customers, team members and stakeholders collaborate. It includes timeboxed approach and continuous feedback from the product owner ensuring that the product is in working condition. Scrum provides benefits to different roles of the project.
The sprints or iterations are considered for shorter duration and user stories are designed as per priority and are taken up at sprint planning. It ensures that every sprint delivery, customer requirements are fulfilled. If not, the requirements are noted and are planned and taken for sprint.
Organization with the help of Scrum and Scrum masters can focus on the efforts required for development of user stories thus reducing work overload and avoiding rework if any. This also helps in maintaining increased efficiency of development team and customer satisfaction. This approach also helps in increasing the potential of the market.
The main responsibility of the product managers is to ensure that the quality of product is maintained. With the help of Scrum Masters, it becomes easy to facilitate work, gather quick responses and absorb changes if any. Product managers also verify that the designed product is aligned as per the customer requirements in every sprint.
With time-boxed nature and keeping sprints for a smaller duration of time, development team becomes enthusiastic to see that the work is reflected and delivered properly. The working product increments each level after every iteration or rather we can call them as “sprint”. The user stories which are designed for every sprint become customer priority adding up more value to the iteration.
Scrum is an efficient framework within which you can develop software in teamwork. It is completely designed on agile principles. ScrumMaster is there to help and co-operate the team of Scrum in every possible way. He acts like a personal trainer who helps you stick with designed plan and perform all the activities as per the plan. The authority of ScrumMaster should never extend beyond the process. He/she should be potentially capable to manage every situation.