Agile Is Communication Done Right.
The single most important thing in agile projects in my mind is this: Communication. This is my conclusion after listening to people, watching and experiencing different projects over the years.
When "agile" projects are running unsatisfactorily or fail, in my opinion it is usually because people do not communicate sufficiently. People in your team do not talk to each other and hide problems they are facing. If you do not talk to your customer about the obvious obstacles in your way, you are not honest and transparent to him. That is a huge problem. When your customer pays you to do work for him, you are responsible to perform and meet his needs, to make him spent his money well instead of wasting it. This should be obvious, because it is what business is about: It is about trust. You should analyse the project's obstacles along the way and do something about them. If the project does not meet a milestone or deadline, you have to talk to get it through.
Be honest and transparent with your customers, be honest and transparent with your teammates, and most importantly: be honest with yourself.
Let's say you are adapting the SCRUM framework. If you are doing the planning poker thing to estimate the stories from the product backlog for your next sprint's backlog, take the higher card if there is uncertainty in the room next time. Discuss the thoughts people have in mind. Do not just rush it through. It may take more time to invest this extra five minutes when someone speaks out loud to make possible problems and interconnections transparent, but it may save money and prevent you from doing task-forces, escalation meetings etc. in the end. If you find yourself discussing fifteen minutes with your two-pizza team about a small issue that will obviously take two to four hours of sheer work, of course, do not waste the time to get into every nitty gritty detail to find out if you should type in a "1" or "2" in your JIRA's input field. The goal of a sprint planning is this: The stories have to be well prepared for the next week(s). It must be totally clear to each and every one in the team what the team is about to do and aspires to achieve. On a side note: With the word "team" I include everyone that is involved in the project.
Beyond that, "communication" is not limited to team internals. What I also mean by communication is the focus on the consumer. It should be your goals to design a great User Experience (UX) and to provide only the useful, tested and verified features for the consumer. The software should communicate the best solution to their problems. Therefore it is often better to eliminate the unnecessary features to make the product lean and more comprehensible. Consumers must understand how to interact, how to use and benefit from the features you were building for them in the last sprint. Get the feedback, make the cycle and adapt. That is what agile is about.
Working and well-designed software is the communication and a documentation on its own. It communicates its intend. It is open for the actors' interactions through its well-crafted input interfaces and responds accordingly. The bits and bytes that are buzzing through the air and wires are transmitting information: the communication between your product and its consumer. What you are crafting is the link between the company's offerings and the needs and wants on the other side.
So after reading the "The Manifesto for Agile Software Development" again, this is what I read from it: Agile Is Communication Done Right. Therefore, let's do our best and do it right!