As a solution for the heavyweight software development process and document-driven approach in 2001 there was a born on agile manifesto. This manifesto was coming under the 4 values and 12 principles. In figure 1.0 you can see those four values. When you go through this document you can get more details about the 12 principles which are mentioned above. Actually simply put those principles are supportive best practices to succeed at agile values. Here are those 12 principles and below will explain with particular examples for each of them.
According to this methodology, it takes as the customer is right and most priorities things are customer needs. According to Andrew Stellman & Jennifer Greene’s book called Learning Agile_ Understanding Scrum, XP, Lean, and Kanban It was mentioned in one place like “How do you work with a customer who can’t necessarily tell you at the beginning of a project that he needs a car, and not just faster horses” because it’s essential to identify the customer needs and environment of the customer rather than what you able to do. In Addition to that the development team must need to continuous delivery of the product rather than the documents or other supportive things because customers are engage with the product rather than the comprehensive documentation. So these principles are built on and around these imperatives.
Principle — 01: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software”
For full fill to the customer requirements, there are three key activities behind this principle. Further this principle is supported to achieve the “Customer collaboration over Contract negotiation” value of agile manifesto.
Releasing software early : Early releasing hands as early feedback from customers.
Delivering value continuously: Through continuous delivery, the team builds software that solves their most important problems.
Satisfying the customer : Customer engagement is the most important thing for the tram to go through the correct track and identify the sequence of features according to their priority.
When it considers the software engineering field it has a sub domain called requirement engineering. These engineers are mainly responsible for gathering the requirements from customers and in agile methodology it is called writing ‘user stories’. This is practical for business systems but problematic for systems that require pre-delivery analysis (e.g. critical systems) or systems developed by several teams.
Imagine that if the team misunderstands the customer requirement and they develop the project according to their own mind and without getting any customer feedback. Finally they release it on the real customer and then the customer is not satisfied with that one. So the team’s whole development time and other project related costs are wasted. But if the team practices this principle the team can go through the correct track and they can get feedback from real people who use the project and also it will give more benefits for the customers because they can get a better understanding about their product and use it on better user experiences. Not only that there can be built the best relationship between the customer and the project team through following this practice.
Principle — 02: “Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.”
-Key activity of this principle is “Try to see things from the customer perspective”-
According to the agile practitioner teams their most challengeable practice is welcome requirements changes. But the case requirements describe what the software is to be…So it’s essential to give priority to the requirements. Actually requirements are customer needs. But in some cases users change their needs or the development team misunderstands those are lead to requirements changes. However this is very helpful to develop a quality product. According to the development methodology of agile practice the team adds the new requirements to their project board.
Any kind of product is built around one or more requirements. Therefore it’s essential to clarify those requirements well. For example if a team develops the project according to the traditional waterfall methodology so they collect the requirements from the customer at the very beginning and then they start to develop. Finally they completed all phases and showed their final product to customers. Here if a customer requests to change some requirement it’s more difficult to develop a team. But they didn’t accept those changes and the product is useless.
Rather than the traditional methodology this agile development method helps to make a most impactful product because this is the practice which helps the development team to think and experience from a customer perspective. Not only has that agile practice used the iterative process so it helps to get continuous feedback from real users it leads to generate an effective solution. Further when we consider from the development team perspective they can accept the requirement changes with less wastage of main project constraints (time cost and quality). This is one of the most important practices of review, adjusting project strategy and plans as well as stakeholders’ mind set on the correct track and they understand those things rather than questioning why it changes. This principle directly supports the responding change over follow plan agile value.
Principle — 03: “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale”
In an agile approach it uses the small portion of product development goals. This portion of product is called a “Sprint”. It takes a couple of weeks or months to sustain each sprint. Those sprints are aligned based on their priority so it provides the best way to identify key functional requirements and non-functional requirements well.
Importance of this principle:
- Provide the better transparency of progress among all stakeholders.
- Exposes risk earlier.
- Frequent feedback from customers.
- Develop all and every requirement under the user acceptance testing continuously.
- Encourage closure collaboration between teams.
This is the most important principle for all and every stakeholder because it provides the better transparency among all of them. Further in this practice keep the short time product goals and those goals are built around the customer estimation and also those portion of product goals are prioritized by all and every stakeholders. Not only estimation of performance it helps to expose the risk. For an example here some of the procedures while they are facing some issues.
- At the initial stage of the agile project development the product manager analyses the project requirements team members as well as start thinking about the risks involved in implementation of the requirements.
- The Agile team follows the estimation process and in there they estimate the size of each and every story.
- The agile team should be accepting work that they are confident will reduce the risk of failure.
- The agile team members should bring up issues having an impact in their work process during every stand-up meeting. Thereafter they should discuss further to take appropriate mitigating actions.
- Each and every team member brings the issues that they are facing on each of work and they discuss those things there at their stand-up meeting.
Principle — 04: “Business people and developers must work together daily throughout the project.”
To build the software product well it is essential to have a lot of face-to-face discussion with business people and the development team. Business people need to solve the business related problems through the software but business people have better knowledge of solving those problems without using software and may be wasting more time and cost as well. As a solution they request to develop software in an effective and efficient way. At that time the development team must collect the correct information from the business people time to time.
Though agile development teams have problem solving skills, the business people/customer is in a real environment so their feedback is most important rather than the other things. In an agile practice after gathering the information the development team and business people are working together and arrange them according to their priority which is called “story mapping”.
In the third principle we saw the agile team decompose the product and develop them part by part. So it needs to prioritize those portions of the product according to their value. Actually that value of each portion is known by business people/customers that’s why they must work together with an agile development team. Business people/customer validation must be very helpful for a good software product. This principle is supported to do it well.
Principle — 05: “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”
The team mindset is the most important thing of agile practice. In this principle its main focus is to make sure that the ideas in my head match the ideas in your head as closely as possible.
The better tool for communication among team members is face to face discussion rather than documentation. In agile communication practice it is essential to share a one of team individual idea with each and every team member. This principle helps to fully fill the second value of the agile manifesto which is working software over comprehensive documentation.
Imagine that a software team is following the traditional waterfall methodology to develop their software product and that team decides to move into the agile methodology. For that the team is able to move it through these principles. At that time this principle is most helpful for the development team because it’s not hard for teams that are used to comprehensive documentation to move to more effective face-to-face communication. Further in here each person is able to handle every decision as it comes and each and every person looks at the world in the same way. That will lead to completing the Sprint in an effective and efficient way.
Actually the ultimate goal of team communication is to create a sense of community but the case is it’s not an easy task because the team member works in different roles and they look at things from different perspectives. According to this principle it gives a much more stable ground for them to share their idea as well as handling changes.
Principle — 06: “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”
For developing the best software product it’s essential to recognize the value of that product. When each and every team member gets to know about the value of that product, all are working in an efficient and efficient way. The bad effect is projects can break down in an environment where people don’t see the value in the software. However in some cases most companies set up performance reviews and compensation systems that discourage people from building software in an effective way can lead to fail the product development as well as reduce the team performance. These are some common “incentives” the team is mismatch with this agile principle
- Giving programmers poor performance reviews when code reviews routinely turn up bugs, and rewarding them for “clean” code reviews.
- Rewarding testers for the number of bugs that they report. (This encourages nit‐ picking and poor reporting, and discourages them from partnering with the pro‐ grammars, because it sets up an antagonistic relationship between them.).
- Basing business analysts’ performance reviews on the amount of documentation they produce (rather than the amount of knowledge they’ve shared with the team).
-Source: Learning Agile_ Understanding Scrum, XP, Lean, and Kanban guide book-
According to the 2020 survey report the most usable agile framework is scrum. In that scrum framework define the three main roles. Those are “Scrum master”, “Product owner”, “Development team”. In there we can take a scrum master as a motivated individual because s/he helps both product owners to clarify his idea as well as helps the development team to go through the correct tack. Actually s/he supports all and every team member and vision on all perspectives.
Principle — 07: “Working software is the primary measure of progress.”
Working software is the most important thing rather than any other factor because the development team as well as all stakeholders are actually collaboratively working because of the software product. So it’s essential to know the progress of that by each and every person who is working on it. For that purpose this principle is much more helpful.
When it comes to the agile development methodology they use multiple ways to conduct the transparency of their work.
- Project board
This is one of the example project board structures of the agile project. Here you can see the most of the columns and we can get most details from each and every column. Not only that the most important thing is this stories all are based on some of the features of the software so it can be easy to understand any person. Mainly there are two kinds of story writing patterns happening which are “Is a” pattern and “As a” pattern. These all stories are written in simple type and it easy to understand every person whether who is not concerned with the particular project.
ex: “As a user I want to change password so I can protect my account.”
- BurnUp/BurnDown chart
This is the special chart which shows the project timeline and also it graphically represents how quickly the team is working through the user story.
Another special feature of this graph is which describes whether the development team is on the correct track or not. Further it can get most of the insights through this representation because it represents how many features are complete at any given time.
Principle — 08: “Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.”
According to this principle there are two main concepts coming under this which are “sustainable development” and “constant pace indefinitely”. Compared with the traditional waterfall method it rigidly follows the timeline, pre determine procedures and plans, those procedures or plan may not match with your team that's why agile promotes the sustainable development method therefore agile development team must consider the mind set of all and every team member. So that’s why agile team did not follow the unrealistic deadline because they know the unrealistic deadlines leads to reduce the performance of development team.
Working with a sustainable environment there are multiple benefits that can be achieved by the development team, business users as well as scrum master. Not only that, every stakeholder in the development team should be equally engaged with the software as well as another important fact is this method uses the best performance of each and every member that can help to continue the constant pace indefinitely. There are some special motivated individuals who are always concerned to maintain the peaceful environment to the person who is engaged with the project. We can recognize scrum master as the main important person who is helpful for seceding that.
Principle — 09: “Continuous attention to technical excellence and good design enhances agility.”
Poor planning and estimation are the main causes for being born in an unrealistic project timeline. As a result, the development team has to re-arrange and organize the timeline repetitively so it gets some time and it can be rigidly affected for the whole software product because we all know it can fail in the business process of “time to market”.
According to this principle not only consider the development team and the stakeholders it takes part with competences alternatives similarity and all other related as well as non related stuff.
Here are some of the activities which help to achieve the three main constraints of the product.
- User story writing
- Stakeholder mapping design
- Sprint planning
- BPM handling
Principle — 10: “Simplicity — the art of maximizing the amount of work not done — is essential.”
Welcome changing requirements even late in development So agile process harness change for customers competitive advantage. According to the agile development methodology, the customer and the software product is most and most important rather than anything else.
Principle — 11: “The best architectures, requirements, and designs emerge from self-organizing teams.”
The High view of the product is easy to understand by many people but the depth of that is most complex and hard to understand and explain because of their requirement analysis and architecture modeling. The agile methodology solves that problem through this valuable principle because “self organizing” is the golden key concept of this principle. The meaning of that key is they work together to plan the project (instead of relying on a single person who “owns” the plan), and they continually come together as a team to revise that plan.
Principle — 12: “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly”
By taking the time to look back and talk about lessons they learned after each iteration and also at the end of the project, agile teams constantly get better at building software. This is especially important for teams that are just beginning down the road of agile development. The only way to become more capable as a team is to constantly look back at what you’ve done so far, to assess how well you’re working as a team, and to come up with a plan for getting better.