Agile: Hacking the Way Software is Developed

Sep 13, 2017 posted by Kapil Juneja under Project Management

Quality Software

There are many myths surrounding the Agile software development. Most people wonder if it is a framework, set of practices, methodology, quality standards, or a certification.

In essence, Agile represents a set of values and belief system that guide the process of software development. As with any value system, Agile helps set priorities and enables optimal decision-making. The primary objective of this value system is to build quality software, in a fast and flexible manner.

If there could be an analogy between developing software and navigating a ship safely into the shore; Agile serves the role of a lighthouse. It provides the direction and perspective. The sailors still retain the flexibility to chart their ideal course, leverage their choice of skills, tools, and best practices.

In short, there is NO one-definite way for Agile project management. A team becomes Agile by consistently making decisions and adopting practices that are aligned to this value system.

Why Agile?

In a software development project, dozens of technical and business decisions (big and small) have to be made every day. Agile principles ensure that all the decisions are coherent and consistent with the larger goals of the project. In an environment of evolving-requirements, Agile values help in early and continuous delivery of quality software.

Agile stands out from the traditional Waterfall Model of software development, which suffers from two major flaws. First, it assumes that the customer has absolute clarity (to the last detail) about his requirements. Two, it further assumes that the specifications do not change after the sign-off.

Principles of Agile

  • Iterative: Software is built in iterations, instead of all at once
  • Evolving Specifications: Accommodate changes in business/technical requirements
  • Early delivery: Release well-tested and working software early (at least once every four weeks)
  • Clarity on priorities: Emphasis on team interactions over lengthy documentation; frequent releases of working software over conformance to frameworks/tools 
  • Kaizen: Continuous attention/reflection on technical and design excellence

ROI from Agile

  • Reduced cycle time: The time taken from brainstorming to release
  • Increased adaptability: Ease of  improvising to meet the changing marketplace dynamics
  • Enabled coherent decisions: Every decision made by the team is consistent with the overall project principles and objectives

 

AgilePopular Practices

The Agile Manifesto was put-together in February 2001 and since its adoption has been constantly increasing. Today, some of the popular frameworks aligned with Agile principles include SCRUM, Kanban, Extreme Programming, and Pragmatic Programming.

Here are some relevant practices and roles.

  • Product backlogs: A collection of use-cases and customer requirements.
  • Sprint: A short duration milestone (typically one week to four weeks). The goal of each sprint is creating a fully functional and tested chunk of product-backlog.
  • Scrum: It is a collection of people working on a particular sprint.
    • Product manager: Prioritizes the requirements and ensures that right features are adopted in each sprint from the backlog.
    • Scrum master: Ensures that the project is running smoothly and each member has the tools required to complete their task. He sets up meetings, monitors the progress, and facilitates the release.
    • Developers & Testers
  • Sprint planning: A brainstorming session between end-users and the scrum team to prioritize the product backlogs and articulate the desired outcomes from a sprint.
  • Scrum meeting: The development team’s meeting (usually in the mornings and not extending beyond 10 minutes).
  • Sprint review: A demonstration of the functional software (at the end of sprint) by the development team to the end users.
  • Sprint retrospective: A look-back at the learning from the recently concluded sprint.

Monitor and Manage a Sprint

Burndown chart is a popular project-visibility tool to monitor the sprint progress.The Scrum master updates this chart on a daily basis to oversee the progress of each sprint.

The chart captures three key metrics within the sprint.

  • ‘Effort in hours that can be logged by the team
  • ‘Number of days’ left (sprint duration)
  • ‘Number of sub-tasks’ that make up the sprint backlog

The chart provides valuable insights into the rate of progress, estimated completion time, and effort-outcome comparison for each backlog.

How to Get Agile in your Company?

Agile is being successfully adopted by organizations of varying industries and team size. The first step would be to identify the projects that are better suited for Agile. Typically, the projects with evolving specifications and the need for an early go-to-market are ideal candidates. It will further help if the business and technical teams are co-located and can interact on a daily basis. A smart move would be to partner with an external Agile team for product development.

LearnMore.jpg

Kellton Tech follows agile principles and frameworks such as Scrum and Extreme programming. Over the years, Kellton Tech has been a partner of choice to several small to large-scale enterprises from across the globe.

Share this: