In the recent years, the software engineering has undergone and still undergoing through many changes, to deliver the quality product, to its users, in a minimal time. One of these significant changes, is the greater degree of inclination towards, adopting the agile methodology, to carry out the software development.
Scrum is one of the best approach of implementing the agile process. However, one of the main and significant limitation, possessed by the scrum, is the absence of flexibility and easiness, to carry out few or more changes and maintenance, throughout the whole development process. This brings the evolution of one more agile approach, namely "Scrumban".
It is one of the methodology of agile process, which extracts and makes use of the best features, inherited by the 'Scrum' and the 'Kanban'. It may be seen as a mixed hybrid version of the scrum and the Kanban agile approach, which adopts and implements, best features of both the said approaches, and to make the best use of the agile development process.
Basically, the concept of scrumban, is being introduced, to overcome the limitation, possessed by the scrum, as stated in the introductory paragraphs. Kanban framework was seen as an alternative to scrum framework, to fill the deficiency of maintenance mechanism in the development process. However, Kanban framework lacks in planning feature, to manage the entire development process. This gives birth, to the scrumban framework. Before, diving deep, in the pool of scrumban, let's have a small overview of the constituents of scrumban, i.e., Scrum and Kanban.
It is an established and standard framework for the purpose of agile methodology of software development, where features to be incorporated in the software product or tasks to be carried out, are being listed, prioritized and maintained in the product backlog. A scrum framework, consists of product owner, scrum master and development.
Tasks to be performed or features to be added, is being extracted from the product backlog, for each sprint, with the help of the product owner, and thereafter sprints are being executed, for their corresponding listed work, by the self-organized development team, under the supervision of a scrum master, to deliver shippable product, through small and multiple sprints or iterations, with a view to improve the process or the product quality, through retrospective process, after each iteration.
Kanban framework emphasizes on the change management and the maintenance process, to bring incremental and continuous improvement, in the process of software development, rather focusing on software project. One of the advantages of using Kanban, is that it may accommodate new features or changes, depending upon its capacity. Further, it provides the feature of visualizing the development workflow, to track the features to be incorporated or small tasks to be executed, with the help of columns and "Work in Progress or WIP" concept.
Scrumban involves short multiple iterations, which is one of the features of the scrum framework, in order to provided ease, to the developers, to manage and adapt the changing requirements and conditions, in an effective and efficient manner. Further, it comprises of a dashboard or a visual board, as used in the Kanban framework, to visualize and manage the tasks for each iteration.
Scrumban, unlike scrum, is a pull-based framework, where developers or development team, are not being assigned with any task or item, rather they pull out the items from the product backlog, to consider for each iteration, through on demand planning and meetings. These items in the form of user stories are added to the visual board, so as to manage, prioritize and execute these user stories. Further, Scrumban is equipped with the Work in Progress(WIP) Limit features, which is used to keep iterations short and introduces a planning trigger, to plan next for the iteration, in the event, when the WIP goes beyond its limit.Below given, are some of the key aspects and elements of a scrumban methodology.
In nutshell, it may be stated that the development, along with its maintenance, on demand and timely basis, ensures the fruitful results of the agile software development projects. The usage and implementation of the scrumban framework, may prove to be beneficial, for fulfilling the need of adapting changes and performing the maintenance, along with the development, in an effective manner.