Agile Philosophy

Igor Lakic
4 min readDec 23, 2021

A lot of people doubt, what is Agile? Is it philosophy? or methodology? or something completely else?

Agile is basically a philosophy that represents a new way of thinking which includes a set of values and principles tied all together that make a perfect mixture.

Everything started earlier in 2001 when a group of 17 people sit together and defined a better way for Software Development, called the “Agile Manifesto”.

But, Agile is not only applicable for Software Development, it can be applied in every field, Finance, Real Estate, Medicine, Property Management, you name it…

A brief explanation of 4 Agile Values

1. Individuals and Interactions over Processes and Tools

Valuing people more highly than processes or tools is easy to understand because it is the people who respond to business needs and drive the development process.

If the process or the tools drive development, the team is less responsive to change and less likely to meet customer needs.

Communication is an example of the difference between valuing individuals versus processes.

In the case of individuals, communication is fluid and happens when a need arises. In the case of process, communication is scheduled and requires specific content.

2. Working Products (Software) over Comprehensive Documentation

Historically, enormous amounts of time were spent on documenting the product for development and ultimate delivery.

Technical specifications, technical requirements, technical prospectus, interface design documents, test plans, documentation plans, and approvals are required for each.

The list was extensive and was a cause for the long delays in development. Agile does not eliminate documentation, but it streamlines it in a form that gives the developer what is needed to do the work without getting bogged down in minutiae.

Agile documents requirements as user stories, which are sufficient for a software developer to begin the task of building a new function.
The Agile Manifesto values documentation, but it values working software more.

3. Customer Collaboration over Contract Negotiations

Negotiation is the period when the customer and the product manager work out the details of delivery, with points along the way where the details may be renegotiated.

Collaboration is a different creature entirely. With development models such as Waterfall, customers negotiate the requirements for the product, often in great detail, prior to any work starts.

This meant the customer was involved in the process of development before development began and after it was completed, but not during the process. The Agile Manifesto describes a customer who is engaged and collaborates throughout the development process, making.

This makes it far easier for developers to meet the needs of the customer. Agile methods may include the customer at intervals for periodic demos, but a project could just as easily have an end-user as a daily part of the team and attend all meetings, ensuring the product meets the business needs of the customer.

4. Responding to Change over Following a Plan

Traditional software development regarded change as an expense, so it was to be avoided.

The intention was to develop detailed, elaborate plans, with a defined set of features and with everything, generally, having as high a priority as everything else, and with a large number of many dependencies on delivering in a certain order so that the team can work on the next piece of the puzzle.

Agile Principles

  1. Customer satisfaction through early and continuous software delivery — Customers are happier when they receive working software at regular intervals, rather than waiting extended periods of time between releases.
  2. Accommodate changing requirements throughout the development process — The ability to avoid delays when a requirement or feature request changes.
  3. Frequent delivery of working software — Scrum accommodates this principle since the team operates in software sprints or iterations that ensure regular delivery of working software.
  4. Collaboration between the business stakeholders and developers throughout the project — Better decisions are made when the business and technical team are aligned.
  5. Support, trust, and motivate the people involved — Motivated teams are more likely to deliver their best work than unhappy teams.
  6. Enable face-to-face interactions — Communication is more successful when development teams are co-located.
  7. Working software is the primary measure of progress — Delivering functional software to the customer is the ultimate factor that measures progress.
  8. Agile processes to support a consistent development pace — Teams establish a repeatable and maintainable speed at which they can deliver working software, and they repeat it with each release.
  9. Attention to technical detail and design enhances agility — The right skills and good design ensure the team can maintain the pace, constantly improve the product, and sustain change.
  10. Simplicity — Develop just enough to get the job done for right now.
  11. Self-organizing teams encourage great architectures, requirements, and designs — Skilled and motivated team members who have decision-making power, take ownership, communicate regularly with other team members, and share ideas that deliver quality products.
  12. Regular reflections on how to become more effective — Self-improvement, process improvement, advancing skills, and techniques help team members work more efficiently.

--

--

Igor Lakic
0 Followers

Experienced Scrum Master & Product Owner