Let’s be clear. Product development isn’t just about creating beautiful apps, easy to use UX and fast and reliable architecture – it’s about the steps your team takes from point A to point Z along the path of least resistance to get to the end result. The lesser the resistance, the lesser the time. Ask anyone familiar with the cost of software developers and they will tell you that time certainly is money.
Documentation is a key component of this process, of course. Yet, overly detailed documentation impedes progress, while too little documentation causes a slew of problems for team communication, education, and knowledge transfer.
So how do you strike a balance?
Agile ingredients for the right kind of documentation.
The theory of communication over documentation is part of the Agile development ideology, emphasizing collaboration, flexibility, and responsiveness to change. It’s important to note that this philosophy calls for the right amount of documentation at the right times, not the elimination of documentation altogether.
The following are key documentation ingredients that sync with the Agile philosophy.
It should be incremental.
Create documentation only when it’s needed, in small increments as the project progresses, instead of creating a lot of documentation upfront.
It should tell a story.
Highlight user stories, or short, simple descriptions of a feature or functionality that provide a shared understanding among the development team and stakeholders, to capture all requirements.
It should live and breathe.
Create living documentation that is updated frequently. It should be dynamic, adaptable, and flexible, and evolve as the project progresses.
It should err on the side of minimalist.
Create minimal documentation that focuses only on what's necessary in a concise, easy to understand manner that’s relevant to the project’s goals.
It should be collaborative.
Team members and stakeholders should work together in collaboration and orchestration to create, review, and update documentation.
It should be visual.
Agile development encourages the use of visual aids, such as diagrams, flowcharts, and wireframes, to communicate complex ideas and concepts. (When in doubt, always start with a flow chart and you’ll never go wrong.)
Communication is key in Agile philosophy.
When it comes to communication, the Agile approach is all about reducing the steps required to get the information across. It’s a philosophy rather than an outcome, built on high-frequency, two-way communication to gather sufficient feedback and pivot principles, and objectives as needed. For this communication to be effective, a flatter org hierarchy empowers employees at all levels to make decisions. This drives leaders to find new and innovative ways to influence and manage.
Now, let’s look at the key ingredients of Agile communication.
Collaborative across functions.
Collaborative communication should exist between cross-functional teams that are composed of developers, testers, project managers, and other stakeholders. Team members should communicate and work together regularly to ensure the project's success.
Transparent at every level.
Agile development encourages transparency and openness. All team members should have access to the project's progress and understand how it fits into the larger organizational goals.
Subject to feedback.
All stakeholders, including customers, end-users, and team members, must have the ability to provide feedback to improve the product and the development process itself.
In constant improvement.
Agile development is a continuous process that involves constant improvement. The team should regularly reflect on their work, identify areas of improvement, and adjust their processes accordingly.
In person versus in writing.
Face-to-face communication is the preferred method over written communication. This includes regular team meetings, pair programming, and other forms of direct communication.
Ceremonial in nature.
Agile development includes regular ceremonies, such as daily stand-ups, sprint planning, sprint reviews, and retrospectives. These ceremonies facilitate communication, collaboration, and feedback among team members.
The key takeaway is this: If you want to live the Agile life in our line of work, it’s important to identify the most critical documentation requirements that are “just barely good enough” for a particular project.
After that, what reigns supreme is frequent face-to-face collaborative communication for the most successful development outcomes.