What is Agile Methodology and why use it?
There have been a lot of hype for Agile Processes. Agile has become one
of the most common and effective methods for developing and delivering software
solutions to customers.
In Development practice, we use the Agile process to run our Salesforce development
and Implementation. From the beginning, we have found that Agile not only makes
the most sense from an internal perspective but that it helps us deliver the
best possible results for our clients.
However most of IT folks are confused about the Agile Ways of Working
and proper alignment with this model while working. In this post I will try to
guide you through the quick overview of Agile.
Agile VS
Traditional
Agile is basically a methodology and project management concept for
software development. It is an umbrella under while many different methods
live. E.g. Scrum, Kanban etc.
Traditional project development can be thought of a waterfall model. It
requires a thorough plan from the beginning, (which can take a lot of time) and
then the different parts are developed from the top down. Which this process
can deliver quality results, it has enough drawbacks that people began looking
for new solutions.
Agile was introduced as a reaction to traditional method. Which everyone
realized was in-efficient, wasted resources and could not deliver the needed
results. Agile methods allow developers to respond quickly to changing
circumstances or new requirements. Rather than running from the top down, Agile
processes allow for a fluid development, often based on levels of priority, and
allowing for constant re-evaluation of how the project is doing and where it is
going along the way.
What are some of the benefits and characteristics
of using Agile?
- Projects are completed faster than traditional development
- Stakeholders and clients are actively involved, which helps ensure satisfactory results
- Agile helps us develop the right product – and not be handcuffed to a project that won’t deliver the needed results
- Project costs are predictable and can be regularly assessed or modified.
- Results in higher quality results
- Ongoing development and change allow the project to continue to evolve and meet whatever new requirements may arise
- Agile creates transparency that holds all peers accountable for their actions.
- The agile hierarchy is based on competence, not authority
In this post, we
will be explaining 2 practices under Agile: Kanban and Scrum
Kanban
Kanban is primarily a way of organizing, visualizing and prioritizing
what work is being done, and when. Kanban is always done on a ‘board’, either
virtual or physical. Kanban boards are generally divided into 3 sections,
“to-do”, “in progress” and “done”.
Each task that needs to be done will be placed into one of these
divisions, allowing us to manage the entire project in this way. By being able
to visualize everything in the scope of the project, we can prioritize what
needs to be done and have an overall sense of where things are.
Scrum
Scrum is where we get our practice of using sprints to divide
and organize what is always being done. Sprints often range from 1 week to 1
month, depending on the project.
At the beginning of each sprint, our team sits down,
discusses what was done in the previous sprint, what needs to be done in the
next sprint (based on what is remaining “to-do”), and how we are going to go
about it. Once roles are assigned and everyone knows what needs to be done, the
team can break and get into their individual projects.
The Scrum process has a few major benefits:
- It streamlines the project management process
- It ensures everyone has something to do
- It allows us to regularly evaluate what has been done, and make any changes to the scope or content of the project
- The entire project gets done fast!