Please double-click to open

Agile

Project management is one of the key aspects of modern day software development. Without proper management, any project is more likely to fail. Modern software projects are also extremely complex and dynamic in nature. In order to deal with these changes, project management methodologies have been developed. One such methodology is known as Agile project management. Agile is an iterative process which allows for frequent delivery of value and receiving faster feedback from the market. These faster feedbacks allow for better handling of rapidly changing market environment. Agile developed out of need. In the 1990s, there was a significant time gap between the requirement of any business software solution and its delivery. Agile was one of the methodologies to arise from this.

Key concepts of Agile

There are 5 main components of Agile Project Methodology:

  • Transparency
  • Customer Focus
  • Adaptability
  • Effective leadership
  • Continuous Improvement

Agile also has various methodologies within itself:

  • Scrum
  • XP
  • Lean
  • Kanban
  • Crystal
  • Test Driven Development
  • AUP
  • EssUP
  • FDD
  • Open UP
  • Crystal Methods
  • DSDM

Agile has a manifesto of the various ideas, these are as follows:

  • Individuals and Interactions over Processes and tools
  • Customer collaboration over contract negotiations
  • Working software over comprehensive documentation
  • Responding to change over following a plan

The 12 main principles of agile include:

  • Satisfaction of customer needs with early and continuous delivery of software
  • Understanding and integrating changes in the requirement at every stage of software development
  • Delivery of working software and updates in a shorter time frame, ranging from 2 days to 2 weeks, with focus on smaller time frames
  • Integration of developers and business ideas in the same project
  • Trust the individuals in the project to get the work done. Provide with the necessary support and environment to succeed
  • Using face-to-face conversation to deliver updates and clarification of doubts
  • Working software is the primary goal
  • Sustainable development is the key. The Various stakeholders involved should be able to work at a fast and constant speed indefinitely
  • Technical excellence and good design
  • Simplicity
  • Best architecture, requirements and designs are derived from self-organizing teams
  • Regular review is done to ensure that there are no shortcomings in the working progress, any such shortcomings are dealt with swiftly

Kanban

Kanban focuses on evolutionary changes and continuous process improvements. There are 6 core components on Kanban:

  • Visualize work
  • Limit WIP
  • Flow management
  • Explicit process policies
  • Feedback loops
  • Improved collaborations

The work is visualized on Kanban board, which acts the central information repository. This allows for easier communication of the tasks, progress and errors faced by the team while working on various aspects of a project or even while working on different projects Kanban is very useful as it can used for any part of the organization. The primary reasons for that are:

  • Respectful of processes and responsibilities
  • Requires evolution, not revolution
  • Focuses on incremental, evolutionary changes to improve continuously
  • Encourages people to work on the various tasks independently

Scrum

Scrum is an iterative framework, which focuses on time bound intervals and project splitting into various components knowns as sprints. The primary goal of scrum is continuous delivery and increased team productivity. There are 3 primary roles in scrum:

  • The product owner
  • The scrum master
  • The team

The product owner is the client representative in the project. Their responsibilities include management of product backlog, and a list of prioritized work that needs to be integrated into the product. Scrum master acts as the leader of the development team. The scrum master is responsible for the understanding and application of rules in the team. In scrum, items from the product backlog are moved towards the sprint, where the limitation for any project is considered to be one month.

There are 4 major scrum events:

  • Sprint planning
  • Daily scrum
  • Sprint review
  • Sprint retrospect

Scrum however, does not include a task board. But borrowing from the principles of Kanban, task board was integrated into scrum itself.

Scrumban

What’s better than 2 methodologies designed to improve software project development speed? Combination of the said 2 methodologies. This is how Scrumban was formed. The idea behind scrumban was to integrate the various components of Kanban into Scrum. Scrumban makes some modifications to the various rules being followed in Kanban. The following components of Kanban are integrated into Scrum:

  • Visualization: Considered mandatory in Kanban, this is allows for work to be visualized easily. This is mandatory in scrumban because as such scrum doesn’t have a mandate to visualize work
  • Limted WIP: WIP is very important in Kanban, and therefore it is integrated into scrumban. Limited WIP is good for pull requests. This also allows for teams to focus on delivery of the work
  • Extend the board: These allows for addition of more columns in the board, which in turn helps to create better workflow process visualizations. This allows for easier identification of various process bottleneck
  • Prioritization: This is basically added to ensure that everyone understands the severity of requirements. The top most task is considered to be the most important and of highest priority
  • Stop Estimations: In the Lean principle, any task that does not add value to the project is considered to be wasteful. As such, in scrumban, estimation of timelines is considered to be wasteful, so it is eliminated
  • Plan on demand: Scrumban eliminates the concept of sprints. Instead, the team is responsible for planning if there are any requirements or need for sprints. The team is responsible for pulling work items from backlog, which is a trigger for team to plan more tasks

Conclusions

Scrumban is the next evolution of the project management methodology. Agile has now spread across multiple disciplines, both technical and non-technical, because it allows for agility in the projects and allows for the teams to deal with the challenges, and changes in the market in a more dynamic manner.