News / Events

Bangalore Management Association



Agile – The Buzz Word in Software Development!


What is agile?

Agile is one of the big buzzwords of the IT development industry. But exactly what is agile development?

Put simply, agile development is a different way of managing IT development teams and projects.

Most IT majors including Google, Yahoo, Symantec, Microsoft, and the list goes on, have adopted it.

Agile development = “pragmatic iterative development”. Agile Teams produce software in small stages (i.e.break each project into a series of mini-projects) and you use practical techniques pioneered by other successful teams. That’s a very simple definition of agile development.

Many processes like Extreme Programming (XP), Feature Driven Development, Crystal Clear and Scrum fit that definition. Each process is different. For instance, up-front design is encouraged by Feature Driven Development but it’s discouraged by XP; pair programming is required by XP but other processes say it’s optional or don’t mention it.

The canonical description of this way of thinking is the Agile Manifesto, a collection of 4 values and 12 principles.
A small group of people got together in 2001 to discuss their feelings that the traditional approach to managing software development projects was failing far too often, and there had to be a better way. They came up with the agile manifesto, which describes 4 important values that are as relevant today as they were then. It says,

“We value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.”

Listed below are the 10 key principles of agile. These are characteristics that are common to all agile methods, and the things that make agile fundamentally different to a more traditional waterfall approach to software development.

  1. Active user involvement is imperative
  2. The team must be empowered to make decisions
  3. Requirements evolve but the timescale is fixed
  4. Capture requirements at a high level; lightweight & visual
  5. Develop small, incremental releases and iterate
  6. Focus on frequent delivery of products
  7. Complete each feature before moving on to the next
  8. Apply the 80/20 rule
  9. Testing is integrated throughout the project lifecycle – test early and often
  10. A collaborative & cooperative approach between all stakeholders is essential

Over the last 10 years, there is an ever-increasing volume of success stories, where companies have dramatically improved the success and performance of their IT development teams and projects. This has caused agile to be widely adopted across a variety of industries, including media and technology, large corporates, and even government.

In agile software projects, project management takes a slightly different form, relying far more on the project manager’s skills in communication, facilitation, coordination, and emphasizing far less on planning and control.

Agile development can be a lot more enjoyable than the waterfall approach, which requires lots more documentation and is less flexible by its nature. And when people enjoy their work, it’s amazing what they can achieve!

Author:
Kavitha V Bangalore, is Project Manager/Technology Lead, Specialist in Project Management, Java/J2EE, Enterprise application development, Quality and Process Management
with 10 years in the IT industry in various roles and technologies, Certified Scrum Master.
Kavitha describes herself as “Line that best describes me : Agile, Innovative, Value-driven and Collaborative”.

Top
  • Follows us our servcies