In the present era, developers are empowered with the varieties of approaches/development models, to carry out the process of software development, such as waterfall model, iterative model, etc. However, with the needs of incorporating dynamic & continuously changing and incoming requirements, on frequent basis, the importance and usage of agile software development process, has increased significantly.
Agile methodology of software development, is a dynamic, progressive and an iterative approach, to deliver software product, in a minimal time, and subsequently, implementing incoming and growing requirements, in the software product, which constantly evolves ( through frequent collaborations between the client and the development teams), throughout the development process. Since, the agile development is a much complex process; it needs a proper approach and an established and standard management procedures or methodology, to carry out the development process. This need may be fulfilled by the implementation of Scrum Framework.
It is one of the most popular project management framework, involving specific sets of standards and process, for the purpose of agile development of software product. However, it may be used for other development purposes also. Generally, a scrum framework is a subset of an agile process, which may be seen, both as a methodological approach and framework, to manage the complete agile development process.
It enables the project team, to manage the multiple processes, occurring in the agile development, ranging from managing requirements to incorporating them, in an effective and efficient way. Since, the complete picture/ details of a software product, is not available to the development team, this framework, works as an incremental and an iterative approach, and emphasizes on team's potential, to maximize the productivity, so as to fulfil the need of changing requirements, market scenarios and conditions, and adapting updated technologies.
A Scrum framework, generally, involves the participation of 3 essential entities or roles. These are, the Product Owner, the Scrum Master, and the team. Let's see their roles description, along with their responsibilities.
The product owner, may be seen as a representative of a client or the stakeholders or the customers, which concerns with the business process and user requirement, and does not gets involved, in the technical procedures of the development process. He/she acts as an intermediate between the client/stakeholders and the teams, engaged in the development. A product owner, is generally, accountable for the following things:
The whole process of scrum is managed and controlled by the scrum master. A scrum master, is an expert level of professional, who has in-depth knowledge of the scrum methodology, and is being deployed to coach, regulate and monitor the process. Its basic purpose is to ensure the obstacle free path, for a development team, to carry out the development, without any problematic issues, to achieve software product of maximum quality. He/she is very much different from the product owner or the project/team leader.
Although, a scrum master is responsible to manages and controls the progress of the entire scrum process, he/she is not accountable for assigning roles and responsibilities to the members or the development or any other team. They show their worth, in bridging the gaps between the product owner and the team. Following, are some of the tasks/features, accomplished by a scrum master:
A scrum team, consist of 7-9 member, having wide variety of skills and knowledge, in multiple domains and areas. They are responsible for delivery of shippable product, in increments, after each sprint. They carry out the development process in multiple sprints or iterations, including gathering and analysis of requirements, planning, documentation, designing & testing, under the supervision of a scrum master. Generally, this team is not regulated by any authority or by the project management team, rather it is self-organized and self-control, in nature.
Scrum framework, involves multiple sprints, to deliver software product, on increment basis, with the scope of improving or enhancing the quality of the product, in the next or upcoming sprints. Sprint, may be seen as an iteration, which defines a complete development life cycle. These sprint are of specific and short duration, generally from 1 week to 1 month. The various activities, carried out, in each and every sprint, may be seen as under:
This stage perceives the planning of a sprint, which includes defining and describing its scope, product backlogs that needs to be considered and implemented for a particular sprint, preparing strategy, and many such thing, working as a resource or inputs for the executing a sprint.
As a sprint, may take a time period of 1 week to 1 month, most probably 2 weeks, a team has to perform daily scrum, consisting of following activities:
Although, team members are worked towards the goal achievement in the scrum, it does not restrict the involvement of any other professional, outside the team. Further, the various issues and obstacles, being faced, throughout the process, is being identified and noted down by the scrum master.
These are the process, carried out, after the completion of each sprint, which may be seen as under:
Review:It consists of reviewing and analysing the amount of work completed and amount of pre-planned work left out, and thereafter reporting only completed work, to the client or the stakeholders.
Retrospective:Considers previously executed sprints, to identify specific improvement actions for the next or upcoming sprint.
Scrum framework encompasses the usage of multiple number of artifacts, such asProduct backlog: Consists of all types of requirements, functionalities and features that needs to be implemented, in the scrum process.