Since the creation of Agile Manifesto, many Agile methodologies are introduced and used by organisations around the world for a spectrum of projects for developing software. These projects may follow frameworks and methodologies such as Scrum or XP, however they all should adhere to Agile Principles.
Lets take a look at these principles. Reflect on each principle and check to see if they are true for your project.
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
This is a very concise sentence: First of all it states clearly about the highest priority, which is satisfying the customer. Second of creating valuable software early and often is the way to achieving this task.
Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
As stated, change is expected and welcome. If the change adds value, it is accepted and possible via an agile project delivery.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Working Software delivered in short periods of time is what an agile project is about. There is no long waiting time. Two weekly iterations are preferable to longer ones. Working Software means a whole completed cycle from requirements to deployment completed and working to customers satisfaction.
Business people and developers must work together daily throughout the project.
This principle clearly states the necessity of daily interaction and collaboration between the technical team and the business. This collaboration makes it possible to deliver fast, often and avoid wasted time. If this is not happening in your project, you may not be following the correct Agile implementation.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
In Agile project a self organising motivated team is one of the important principles. To get the job done, the environment and support should be provided to keep the team on tract and motivated.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Yet again, a great emphasize in regular face to face communication between the team members, which gives each team member the opportunity to talk about their success on daily basis and any impediments.
Working software is the primary measure of progress.
There is no Working Software produced, often and early as per the first principle, there is no progress made.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Pace is important in an Agile process. This means the team and business need to constantly work together towards creating value through the delivery of working software.
Continuous attention to technical excellence and good design enhances agility.
And yes, agility does not mean chaos. It is about technical excellence and good design, without which unnecessary waste and rework will be imminent.
Simplicity–the art of maximizing the amount of work not done–is essential.
Anything that adds to complication, any unnecessary work, is against the agility.
The best architectures, requirements, and designs emerge from self-organizing teams.
Self-organising teams will work together to get working software delivered, simple, early and often. This is the spirit of Agile.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Ant yet no Agile project can be without lessons learnt. Efficiency and velocity increases as the self organising team work together for the delivery of the working software and get together in regular basis to reflect on these lessons.