There could be several activities that could make a project agile and successful. However, two key elements can drive all the other activities of a successful agile project. They are,

  1. Quick feedback loop from stakeholders
  2. Quick feedback loop from the team

1. Quick feedback loop from stakeholders

A fundamental criterion to be agile is to get feedback from the stakeholders and adapt based on their input early and frequently.

Issues with long wait time without any users

If an organization waits a long time to release a “perfect” feature or product, it can cause many issues and business problems. Some are,

  • It’s easy to lose potential customers to competitors with a long wait time.
  • When there is a big bang release with a so-called perfect product with many features, there is a high chance that customers will find many faults, which will make the customers very unhappy and angry.
  • Waste increases with a long wait time. Waiting a long time before going to the customers means many assumptions are made. So there will be several features that customers will never use, which is a form of waste.
  • Without any customer using a product and feedback, there are no checks and balances of the product. With each modification, there is always a chance of including regression bugs, and if it is unchecked with no feedback, these regressions grow in an unmaintainable proportion.

    Little drops of water make the mighty ocean.

    QA team or tests cannot catch this kind of regression. Hence, you need real active users to notice these regressions.

How to get early feedback

Now let’s discuss how we can get this early feedback. One of the best ways to get early feedback is, releasing features in a small usable increment to the customers.
Releasing in a small usable increment will resolve the issues discussed in the previous section. Moreover,

  • It is easy and faster to take a different approach when customers do not like an approach for an increment.
  • If stakeholders are happy with features, it becomes easy to work on the next best thing from the feedback and have a clear direction.
  • The best one: When users actually use a product, it gives the team/organization a huge motivation to build the product even more.

What if a customer does not like a product when some features are missing

The concern is easier to address. In the beginning, the product is not needed to be opened to all users. After finding the smallest usable and releasable increment, only a few users can be onboarded at first. For example, we can make something straightforward in 2 weeks to 1 month and release it to at least one user. Then, moving forward, we can release new features periodically, preferably each day to 2 weeks, and gradually onboard more users along the way.

Tip: Try canary release to make new software features available to a limited selection of users ahead of a wider release.

How to figure out a good small, usable, and releasable increment

User Story Mapping is one of the best tools to serve this purpose. User story mapping is a team exercise that helps an organization figure out the Minimum Viable Product or MVP. User story mapping can also help to bring everyone on the same page.

You can check out this video about user story mapping by jeff Patton.
There is also a book about user story mapping by Jeff Patton you can check out.

2. Quick feedback loop for the team

The feedback loop for the organization and team process is as important as the first key element. Adapting based on feedback for the team helps the team eliminate waste and become better and more efficient.
One important note, here the team process stands for how team members work together, interact with each other, and share context.
So it’s about, Individuals and Interactions Over Processes and Tools

How to get feedback for the team

It is best when a team is autonomous and generates their own feedback. A team should have a cadence to figure out what’s slowing the team down and how to make the team better. A retrospective is a great tool that can serve this purpose. General practice is to do retrospectives frequently. Doing retro every 1 or 2 weeks is a good cadence.

Two things to make sure from this kind of team exercise,

  • Every team member should have an open space to share their views and pain points (feedback).
  • The team should generate some measurable action items from the input.

Some additional important key points

3. Have a shared, transparent vision

It is essential to have a shared vision for an organization when building something. Once there is a shared vision, the vision can drive incremental goals for different teams.

The vision should be transparent to everyone in an organization so that every team and member can work towards the same vision autonomously. Vision is a great motivator.

Planning onion and OKR are great tools and concepts to derive goals and roadmap from vision.

If you want to learn more about planning onion, check out this blog

4. Learn to take one step back to move faster

It’s tempting to ignore issues that slow down a team and keep working to deliver products faster. But, eventually, very soon, these issues add up, add a lot more cost, and slow down the team even more.

So keeping in mind,

Today’s convenience is tomorrow’s more enormous inconvenience.

and work on the things that would make the team faster in the very near future.

5. Agile methodologies are not mutually exclusive

There are a number of agile methodologies like Kanban, Scrum, Extreme Programming (XP), etc., that share a common core set of values and principles. They are just some good frameworks to start depending on the team. The most important thing is continuous improvement. Start with a framework and then introduce or exclude practices with iteration.

Summery

To be agile, don’t be afraid to try out new things in iteration. You can always change direction in iteration.
Every team is different. So, try whatever works for your team by following the agile values and principles in mind.