Your colleague’s lack of documentation is creating significant technical debt and hindering team productivity. Schedule a one-on-one meeting, focusing on the impact to the team and offering collaborative solutions, rather than direct accusations.
Documentation Resistance Go/Rust Backend Engineers

As a Backend Engineer specializing in Go and Rust, you’re likely focused on building robust, performant systems. However, a significant impediment to that goal can be a colleague who consistently avoids documenting their work. This isn’t just a minor annoyance; it’s a systemic problem that impacts maintainability, onboarding, and overall team velocity. This guide provides a structured approach to address this, blending assertive communication with professional etiquette.
The Problem: Why Documentation Matters (and Why They Might Resist)
Documentation isn’t just about creating pretty READMEs. It’s a critical component of a sustainable software development lifecycle. In Go and Rust, where code clarity and explicitness are often prioritized, good documentation becomes even more vital. It explains why decisions were made, clarifies complex logic, and facilitates future development.
Why might a colleague resist? Common reasons include:
-
Time Pressure: They feel documentation is a low priority compared to feature delivery.
-
Perceived Redundancy: They believe the code is self-explanatory.
-
Lack of Understanding: They may not understand the importance or proper methods of documentation.
-
Resistance to Process: A general aversion to following established processes.
-
Fear of Criticism: They might worry their code will be judged negatively.
1. Understanding the Impact: Quantify the Problem
Before confronting your colleague, clearly define the impact of their lack of documentation. This isn’t about personal feelings; it’s about demonstrable consequences. Examples:
-
Increased Debugging Time: Tracking down bugs becomes significantly harder without context.
-
Higher Onboarding Costs: New team members take longer to become productive.
-
Increased Technical Debt: Refactoring becomes risky and time-consuming.
-
Reduced Code Ownership: Other engineers are hesitant to modify or extend the undocumented code.
-
Knowledge Silos: Critical information resides only in one person’s head.
2. The High-Pressure Negotiation Script
This script assumes a one-on-one meeting. Adjust the tone and language to fit your specific relationship with the colleague. Crucially, focus on the impact and offer solutions, not accusations.
You: “Hi [Colleague’s Name], thanks for meeting with me. I wanted to discuss something that’s impacting our team’s efficiency. I’ve noticed a pattern where code contributions haven’t always included accompanying documentation, and it’s creating some challenges.”
Colleague: (Likely a defensive response - listen actively and acknowledge their perspective)
You: “I understand you’re focused on delivering features quickly, and that’s important. However, the lack of documentation is leading to [Specific Example 1 - e.g., increased debugging time on the recent X feature] and [Specific Example 2 - e.g., making it difficult for Sarah to onboard to the Y service]. This ultimately slows down our overall velocity and increases the risk of introducing bugs.”
Colleague: (May offer excuses or justifications)
You: “I appreciate you sharing that. Let’s explore some solutions. Could we perhaps allocate [Specific Time - e.g., 15-30 minutes] per task for documentation? Or maybe we could use a standardized documentation template to streamline the process? I’m happy to help with this, perhaps pair programming on documentation for a while? We could also explore tools like [Specific Tool - e.g., Swagger/OpenAPI for API documentation, or a code documentation generator like GoDoc/Rustdoc]. What do you think would be a reasonable approach?”
Colleague: (May still resist, but hopefully more receptive)
You: “I understand that documentation can feel like an extra burden. However, it’s a crucial investment in the long-term health of our codebase and the team’s productivity. I’m confident we can find a way to make this manageable and beneficial for everyone. Let’s agree on a small, achievable step we can take moving forward, and revisit this in [Timeframe - e.g., a week] to see how it’s working.”
3. Technical Vocabulary
-
Technical Debt: The implied cost of rework caused by choosing an easy solution now instead of a better approach which would take longer.
-
API Documentation (Swagger/OpenAPI): Standardized formats for describing and documenting APIs.
-
GoDoc/Rustdoc: Tools for automatically generating documentation from code comments.
-
Code Ownership: The responsibility for maintaining and extending a specific piece of code.
-
Knowledge Silos: Situations where critical information is held by a small number of individuals, hindering collaboration and increasing risk.
-
Maintainability: The ease with which a codebase can be modified and extended.
-
Refactoring: Improving the internal structure of existing code without changing its external behavior.
-
Pair Programming: A development technique where two engineers work together on one machine.
-
Code Comments: Explanatory notes embedded within the source code.
-
Version Control (Git): System for tracking changes to source code during development.
4. Cultural & Executive Nuance
-
Focus on Team Impact: Frame the issue as a team problem, not a personal attack. Avoid accusatory language. Use “we” and “us” instead of “you.”
-
Active Listening: Pay attention to your colleague’s concerns and acknowledge their perspective. This builds trust and shows you’re genuinely trying to understand their viewpoint.
-
Offer Solutions: Don’t just point out the problem; propose concrete solutions and offer your support. This demonstrates a collaborative spirit.
-
Escalation (Last Resort): If the situation doesn’t improve after multiple attempts at direct communication, consider escalating to your manager. However, present the issue with data and proposed solutions, not just complaints.
-
Executive Alignment: Ensure your manager is aware of the importance of documentation and supports a culture that prioritizes it. This provides additional leverage.
-
Documentation Standards: Advocate for clear, documented standards for code and documentation within the team. This provides a framework for everyone to follow.
5. Follow-Up & Reinforcement
-
Document the Agreement: Briefly summarize the agreed-upon actions in an email to your colleague for clarity and accountability.
-
Regular Check-ins: Schedule brief, regular check-ins to monitor progress and address any challenges.
-
Positive Reinforcement: Acknowledge and appreciate any improvements in documentation quality. Positive reinforcement is more effective than criticism.
Addressing documentation resistance requires patience, empathy, and a strategic approach. By focusing on the team’s collective goals and offering collaborative solutions, you can contribute to a more sustainable and productive development environment.