Agile principles

Hello everyone, My name is Malathi and i have been working on Agile methodologies since a decade. I prepare these posts based on experience i gained through out my professional life which provides realistic view of what actually Agile principles are.

So let's get started.

We have totally 12 principles. 

1. Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software.


The main motto of Agile is to deliver the working product in smaller increments to the customer. Here we are not only delivering some value to the customer but also building confidence and trust in the customer who sees the working product literally and gets incredibly satisfied which is the ultimate target of any business.

2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

This largely prevents the risk of failure in the product development. Once we start delivering working software frequently, we get feedback on the deliverable 's quickly and cost in terms of time and money for implementing the suggested change  by the customers will be reduced dramatically. 

And also it largely reduce the risk of any misunderstandings or miscommunication on the requirements between development team and the customers. People sometimes misunderstand or miscommunicate the business requirements. It could happen on either sides, developers or the customer. Delivering software frequently will help us sort out all such things.

Most important thing is, the risk of failure depends on how frequently we deliver the software to the customer. The more frequent you deliver the working software, the less is the risk.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

This is one of the prominent principle and bottom line of Agile. Agile embrace change. World is changing rapidly in terms of technology and so the businesses are. So the product development should follow Agile for customer competitive advantage. 

4. Business people and developers must work together daily throughout the project.

This is slightly based on principle 2. Working Software and product backlog enables customer and development team collaborate daily and work together. the initial phase of waterfall model gets complete attention and involvement from customer and declines gradually and nothing for a period of time or until the product is done with all the documented requirements. But with Agile, customer and development team collaborate on daily basis through out the product development.

5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
 
Motivated individuals always thrive to keep the development goals. The development team should commit towards the goal or work that is planned for a period of time instead of working on task level.
It means that they should actually think about the possible ways of finishing the work planned for particular time period and deliver it to the customer. We can discuss more about this in my next video "The Scrum framework" where i give more practical examples on all these 12 Agile principles.

6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

Always communication within smaller groups yields good results and outcome. That is the main reason a scrum team size will not exceed more than 7 to 8 members, just to keep communication intact.
If the team is geographically dispersed then communicate with each other using video calls instead of just audio. It will greatly foster good communication within the team.

7. Working software is the primary measure of progress.

8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

9. Continuous attention to technical excellence and good design enhances agility.

The development team should almost never compromise on technical excellence, good design and quality. The bad design and lot of technical debt will not make Agile software development possible. It increases the risk of product failure because the Agile always welcome change in requirements and the design should be feasible inorder to adapt to those changes.

10. Simplicity--the art of maximizing the amount of work not done--is essential

Keep the things simple. don't overdo the things.  Just focus on what is needed right now and don't try to implement complex algorithms or design that supports unknown/unpredictable requirements. Some people tend to do this keeping in mind that the product should be robust and should behave perfect under all circumstances. That is absolutely unnecessary. So just try to focus on available data and requirements and build what is needed.

11. The best architectures, requirements, and designs emerge from self-organizing teams.

Self-organizing teams has lot of power in it. Ideally they collaborate, discuss and agree on good design and architecture. Self-organizing teams are most responsible and highly motivated and work relentlessly towards achieving the goal.

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

This really play an important role in the Agile. Everyone should open-up and discuss what went good and what went bad and try to adjust the way of working which improves the product and finally customer satisfaction. People always struggle or fear to explain about things that they don't like or wanted to improve. The team should be open to listen to the ideas of each and everyone, assess them to see if it improves their way of working. By doing so, team members think that they are respected and heard within the organization and ultimately build the confidence and motivation within them.

As we all know, if the company takes care of employee, the employee will take care of customers.
So if the employee is heard and respected within the organization, he or she would take care of the customer.

That's all about Agile principles. Thanks for reading!!

Comments

Popular posts from this blog

Bash - Execute Pl/Sql script from Shell script

How to get client Ip Address using Java HttpServletRequest

How to install Portable JDK in Windows without Admin rights