Agile Methodology
Agile Methodology
How It Works
It works by first admitting that the old “waterfall” method of software development leaves
a lot to be desired. The process of “plan, design, build, test, deliver,” works okay for
making cars or buildings but not as well for creating software systems. In a business
environment where hardware, demand, and competition are all swiftly-changing
variables, agile works by walking the fine line between too much process and not
enough.
It abandons the risk of spending months or years on a process that ultimately fails
because of some small mistake in an early phase. It relies instead on trusting
employees and teams to work directly with customers to understand the goals and
provide solutions in a fast and incremental way.
What is the Agile Manifesto?
The Agile Manifesto is a document that focuses on four values and 12
principles for Agile software development. It was published in
February 2001 by 17 software developers who needed an alternative to
the more linear product development process.
Card
A card in user stories in Agile is a way of breaking down user stories into smaller, more
manageable tasks that can be easily monitored and identified. Each card may include
additional information such as priority level or estimated completion date for further
support of project management. By breaking down the stories into individual cards,
developers can focus on one specific aspect at a time, making tracking progress easier
and identifying any potential changes or issues before they become problems during
development.
Conversation
Confirmation
Finally, the third C of Agile is confirmation, which allows customers to review and test
features before making them available in production environments. This helps to ensure
applications are error-free while also giving developers valuable insights into customer
preferences so they can make necessary improvements before release.
The most popular and common examples are Scrum, eXtreme Programming (XP),
Feature Driven Development (FDD), Dynamic Systems Development Method (DSDM),
Adaptive Software Development (ASD), Crystal, and Lean Software Development
(LSD). Teams generally pick one or two methods. The most widely used methodologies
are Scrum and XP, which dovetail nicely.
Kanban
Kanban is a visual approach to Agile. Teams use online Kanban board
tools to represent where certain tasks are in the development process.
Tasks are represented by cards on a board, and stages are
represented in columns. As team members work on tasks, they move
cards from the backlog column to the column that represents the
stage the task is in.
This method is a good way for teams to identify roadblocks and to
visualize the amount of work that’s getting done.
Here’s an example of how Scrum works: Bill meets with a customer to discuss her
company’s needs. Those needs are the product backlog. Bill chooses the most
important tasks to work on in the next two weeks. His team meets in a daily scrum to
target work for the day ahead and address roadblocks. At the end of the sprint, Bill
delivers the work, reviews the backlog, and sets the goal for the next sprint. The cycle
repeats until the software is complete.
eXtreme Programming. Often used with scrum, XP is an example of how Agile can
heighten customer satisfaction. Rather than deliver everything the customer could ever
want far in the future, it gives them what they need now, fast. XP is centered on
frequent releases and short development cycles. It uses code review, pair
programming, unit testing, and frequent communication with the customer.
[adinserter block=”33″]
The benefits of Agile are tied directly to its faster, lighter, more engaged mindset. The
process, in a nutshell, delivers what the customer wants, when the customer wants it.
There’s much less wasted time spent developing in the wrong direction, and the entire
system is quicker to respond to changes. For a more comprehensive list of benefits, see
this post.
Best Practices
The list of best practices is long and involved, with dozens of tools to pick and choose.
We’ve outlined a short list of the main benefits below. For a more comprehensive best
practices guide, see this article.
Set priorities. A product backlog is a list of prioritized tasks maintained by
a product owner.
Maintain small release cycles. The product should be released in increments
every 2-4 weeks, with stakeholders giving feedback before proceeding.
Use pair programming. Two programmers work side-by-side at a single
computer. This technique actually results in an identical degree of productivity to
separate programming but delivers higher quality.
Refactor. Rework code regularly to achieve the same result with greater
efficiency and clarity.
Use test-driven development. Code the unit test first to keep the project on task
throughout. Test-driven development as an Agile best practice also produces
greater employee engagement, since it transforms testing from a boring grind to
a coding challenge.
The list below shows some of the best tools on offer. For a complete list, see this post.