Is Agile a reason to avoid documentation? I bet this question shows up again and again while working with product requirements. On one side, we have got long specifications, complicated diagrams, mystical technical design, too many prototypes and pretty obvious for engineers user guides (do we really need so much?). On the other side, can we actually cope with strict legal contracts, expensive functionality, large project teams, unstructured requirements and tight deadlines without structuring and organizing a scope of work? More and more agile teams take an extreme view of the Agile principles and they certainly do not see a value in documentation. The others tend to document everything in any case without a real necessity or reasons for it.
For better or worse, a need to document requirements exists and usually legal contracts complicate the process even more. For example, fixed price contracts require more formality, hard and detailed documentation beforehand, a smooth running at each phase of SDLC. There is no way you could survive without proper documentation on a project with fixed price contract.
When costs, scope and deadlines are difficult to define, Time and Material contracts would be more applicable. Usually in this case there would be less product documentation at the beginning, project processes would be less formal and more change-driven. Although there might be less product documentation, there definitely could be more reporting one. Such documentation is needed to provide transparency and visibility in spending resources.
In order to understand the overall scope of documentation that should be provided on your project, you should start with formal reasons to make sure you know what your project deliverables are. Internal documentation is also required as much as needed for maintaining a productive engineering process. Remember to document not more than necessary, and, at the same time, keep documentation as simple as possible.
The situation with communication in Agile is quite the opposite to the documentation. No one would deny that communication is given an important role in Agile, because Agile itself is built on effective and fluent communication. Agile puts less emphasis on formal documentation in favor of collaboration and communication between team members. Nowadays we can say, that communication is at the top of all managerial principles and is a baseline for building up relationships in any project team.
If it turns out that an engineering team and a client team do not have a clear view of what creates value for each other, that will eventually weaken their collaboration causing unnecessary delays and costs. Hence, open and clear communication can help create healthy working environment, which is a foundation for successful teamwork. No matter how hard it can be to establish proper communication at the beginning, it is something that will pay off in the long run. Proper communication can be defined by lots of criteria, but the most crucial are establishing your communication channels, creating a communication plan, not to mention arranging team buildings. Additionally, remember that overall, communication in Agile is built on team negotiations, feedbacks and decentralized decision-making. Allow different kind of decisions to be made at corresponding levels when product owners make decisions about the product, project manager – about the project, business analysts - about the functionality and requirements, solution architects – about the solution design, engineers – about implementation and testing approach, designers – about UX/UI etc.
It’s really hard to survive without face-to-face communication during COVID-19 period. Scientists say that it will likely to have a permanent effect on the way we live and work. Obviously, that is true, yet we keep increasingly incorporating digital and online tools into our working communication. Well-known tools such as JIRA, Confluence work well for more formal stuff. There are also a lot of tools for direct communication between team members or scheduling and conducting online meetings. What is interesting, we can observe the significant increase in using modern tools such as MIRO and MURAL. They help create documentation while communicating making this process even fun for participants.