Agile is about teamwork, transparency, and technical excellence.
No matter what your experience with Agile practices and techniques, the foundation for Agile methodologies is rooted in best practices positioned to enable collaborative environments where diverse teams can continuously learn, improve, grow and produce.
Still, it is inevitable that top talent members will leave Scrum teams. Some of the resources with the most essential knowledge are developers and programmers who architect and code a new system. The Agile Manifesto states working software over comprehensive documentation. However, there will always be scrum team members who may believe there is no need for comprehensive documentation. Either way, team members should be encouraged to look for effective ways to organize knowledge with an Agile focus.
Here are a few Dos, Don'ts, and Techniques to consider when building an effective knowledge management system in scrum teams.
- Don't use wikis. In addition to being time consuming to write, it also takes too long to extract the information someone would need to quickly get up to speed. Wikis should be used for historical content that rarely changes, not living code as they require too much maintenance.
- Don't tie the requirement for creating knowledge transfer documentation to "Done" criteria. Reaching the point of a "Done" phase is hard enough without asking your developers to maintain rigid documentation in order to fully complete a phase.
- Do motivate the team to create their own solutions first. This will take some convincing, particularly in organizations not familiar with scrum. It will be difficult to convey the importance of a strong Knowledge Management System (KMS), but don't give up on establishing a common ground among the team. Set clear goals and give the team the freedom to create a knowledge management process that retains essential content but doesn't weigh down resource time.
- Do promote KMS as a tool and not a chore. People do not like chores, but they tend to respect tools. Keep the focus on "transparency and the sharing of knowledge for a common goal" and away from the mindset of "knowledge transfer for when people leave to keep the ship from sinking." The former is more motivating.
See Also: 12 Principles of Agile Methodology
Establishing a Valuable KMS
Building an effective knowledge management system within Scrum teams should be tailored to the make-up of the team and how they create and find information. These teams should consist of resources who display knowledge sharing behaviors. To leverage a strong KMS, establish a knowledge steward role. This resource is responsible by providing guidance around knowledge management generation.
For a KMS to be effectively used, consider leveraging tools like a responsibility assignment matrix (RAM) or a responsibility, accountable, consult, and inform chart (RACI). Make sure assigned resources are committed to their designated knowledge management roles, because without that commitment the KMS will be misused or not used at all.
It's also very important that the organization agrees with the knowledge management methodology. Convince them to buy into the creativity and simplification of agile methodology and steer the organization away from the "we've complied knowledge this way" mindset. Help them to realize there are newer and more effective ways to getting their software goals accomplished.
Consider using some of these techniques to create knowledge management within your organization.
- Q&A Sites: The goal of knowledge management is simplified knowledge retention. In recent years, sites like StackOverFlow has popped up where developers and programmers alike can type in a question and quickly get an answer. Other companies like Atlassian and AnswerHub have created tools that are easy to deploy and offer solutions to help teams create KMS.
- Lunch and Learns: It's generally encouraged to push for two week, instead of four week sprints. As good practice, developers should have the opportunity to present to the scrum team the architecture and coding they've performed at the end of these sprints. During these presentations, notes should be recorded, cataloged, and retained for future team members getting up to speed.
- Pair Programming: This technique is used at many top tier software companies around the world. The idea is assigning a certain piece of code work to two programmers at the same time. This prevents knowledge silos while encouraging transparency. It also challenges each developer to see each other's point of view to help improve the quality of the code. Finally, if one of the developers leaves the team there is another resource familiar with the architecture, code, and rationale behind it.
- Be prepared for resistance: There will be programmers who believe their code is perfectly readable and therefore no need for them to document. This is a fallacy and only leads to bottlenecks down the road. Time constraints will prevent quality knowledge transfer sessions if a strong KMS is not in place. A strong KMS will help creates openness and transparency within your team. As mentioned at the beginning, Agile Manifesto states working software over comprehensive documentation.
Keep In Mind
It's important to remember that while knowledge management should still be a part of a scrum team, that members should not create giant, time-consuming obstacles for themselves for the sake of knowledge transfer. Work collaboratively to create a KMS that is ideal, timely, and satisfies the needs of the organization.