What is the Agile Manifesto?
Traditionally software development was done using the waterfall method, which had 5 sequential stages; requirements gathering, design, development, testing, and deployment. By the 1990s, people were starting to realize that this model doesn't hold well for long-term big-scale projects. In 2001, 17 software practitioners met at a ski lodge in Utah and decided to come up with an alternative way of working—thus agile project management was born. The agile manifesto is a document outlining the agile way of thinking in the form of 12 principles and 4 values that form the bedrock of all the agile frameworks which exist today.
What are the 12 principles of Agile Manifesto?
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a team is face-to-face conversation.
- Working software is the measure of progress.
- Agile processes promote sustainable development. The sponsors, developers and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity—the art of maximizing the amount of work not done—is essential.
- The best architectures, requirements and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
What are the 4 values of Agile Manifesto?
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
What is the difference between agile and waterfall methodologies?
The waterfall methodology proposes a linear, set approach to project management where all the variables are decided during the planning phase and the rest is merely execution. Agile methodology in project management acknowledges the uncertainty that accompanies changing technologies in a fast-paced world and proposes iterative short-term planning to combat it. Work is split into small sizable chunks which are worked on consecutively. With each part comes changes in requirements or improvements in technology that make the subsequent parts more efficient and effective.
Thus the agile approach to project management advocates constant learning and adapting in order to produce quality end products that perfectly satisfy the customer's requirements while keeping up with current technology trends.
- Linear and sequential approach
- Focuses on project delivery
- Project is split into phases
- Requirements are taken only at the start of the process
- Avoids scope changes once development begins
- Strict project deadlines enforced by the project manager
- Focused on executing the plan
- Incremental and iterative approach
- Focuses on customer satisfaction
- Project is split into sprints
- Requirements are expected to change and evolve
- Incorporates changes even late in the development
- Teams are encouraged to be self-organizing
- Focused on delivering working software
How is agile beneficial?
- Higher customer satisfaction
- High product quality
- Allows for change
- No unpredictable delays
- Team dynamic gets better
Who can use the agile approach?
When we are making breakthroughs in science and technology every day, embracing change has become second nature. It's almost Darwinian to say that if you don't keep improving, you're going to become obsolete. We make plans and drop relationships with a single text. In a sense, aren't we all agile?
The agile approach, which started out as an experiment for software-practitioners, has insinuated itself into every industry as a productivity mantra. Marketing, advertising, event planning, publications, and even food distributors have used agile knowledge to turn their luck around. We could almost call it a New Age Movement.
What are the frameworks within the agile methodology?
Agility is the umbrella term beneath which many frameworks have mushroomed over the years. It's a mindset, and a framework is a set of rules with which you can convert lofty principles into tangible practices that you can incorporate in your work.
What is Scrum?
Scrum is an iterative incremental approach to software development under agile project management and is the most popular framework under the agile methodology. In Scrum, you split your work into chunks on which you work for set periods of time. These time boxes—called sprints— are tracked on a Scrum board and should result in a working piece of software. Scrum prescribes an inspect-and-adapt approach. So with each sprint, they adapt by incorporating lessons from previous sprints.
Scrum has 3 roles - Product Owner, Scrum Master and the development team. They each have distinct roles to play. The Scrum process starts with the "backlog" —a list of requirements—where each requirement is broken down into user stories and their corresponding tasks. These user stories are prioritized in order to plan the next sprint. There are several reports in Scrum that help a team measure the performance of a sprint - velocity, burnup, burndown, cumulative flow diagram. Scrum also emphasizes in face-to-face communication and small feedback loops within the team which is why meetings play an important role in the Scrum process.
What is Kanban?
Kanban is a method to visualize your workflow that lets you identify bottlenecks and increase productivity by limiting the amount of work in progress. It's based on the Japanese philosophy Kaizen, the idea that small continuous changes result in a substantial movement over time.
A basic Kanban board typically has three columns - "To do", "In progress", and "Done." Each work item is written on a Kanban card which also holds details like the description of the work item and the assignee. The Kanban cards are placed in their respective columns on the board. Each column has a work-in-progress limit which prevents the team from becoming overburdened and lets them focus on delivering quality work.
Kanban is a flow-based agile project management method which advocates continual delivery. Performance is usually measured by how long a work item takes to go from "To do" to "Done" on the board. This method focuses solely on preventing capacity overload and enabling quality and continuous delivery.
Kanban vs Scrum: How to pick one?
The "Kanban vs Scrum" is quite a popular debate within agile project management circles. While there are some key differences between the two, both are fundamentally based on agile principles like adapting to change, transparency and constant, consistent improvement.
Scrum is more prescriptive of the two with strict time boxes, ceremonies and artifacts. Kanban is favored by teams who deliver continuously and are working on optimizing their workflow. If you don't like either, there's a third option Scrumban, which combines the structure of Scrum and the flexibility of Kanban.
Each team operates differently. The framework you choose for your team depends on your work, your organizational culture and your team dynamic. That being said, the framework you choose will directly influence your team's productivity and job satisfaction. So choose wisely :)
Going agile with Zoho Sprints
Agility is a concept, and an agile tool is merely a catalyst that helps you convert your ambitious principles into tangible metrics. You must decide what you want out of a tool before the evaluation process.
Visibility is good, but it should come with better collaboration. Extensive reports are great but they should incite better reflection. Accountability is essential, but it should also help team motivation. A tool should help standardize a process but not stay married to it.
An indispensable part of the agile process is change. That includes the process itself. So customization is great, but you need to go easy on the frills if you're going to keep tweaking your process after every retrospective. It's important that your tool needs to be flexible.
We kept all of that in mind as we developed Zoho Sprints, a lightweight, flexible tool that can be used equally well by teams large and small, industries IT and non-IT, and seasoned agilists as well as beginners.