Effective Teamwork for Developers
Prioritizing Team Needs
Address Dependencies First: When a ticket is a dependency for other tickets, prioritize it immediately, even if you're unfamiliar with the task or find it unpleasant. Delaying such tickets hinders the team's progress.
Respond Promptly to Questions: When someone on the team seeks assistance or clarification, drop your current task and offer your support promptly. Their progress is crucial to the team's overall success.
Review Pull Requests Expeditiously: Review pull requests as soon as possible to avoid blocking the team's output. Your feedback is essential for ensuring code quality and timely delivery.
Eliminating Selfish Behavior
Stay Engaged and Attentive: Avoid becoming engrossed in your work to the point of ignoring team communication. Actively monitor chat channels, mentions, emails, and pull requests.
Embrace Collaboration: Seek opinions and guidance from your team before diving into coding. Their insights can help you refine your approach and avoid potential pitfalls.
Contribute to Team Learning: Share your knowledge and expertise with your colleagues. Even if you're unsure about a particular task, collaborate to find solutions together.
Promoting Code Ownership
Treat Code as a Collaborative Effort: Code belongs to the team, not to individual developers. Take responsibility for improving your colleagues' code and accept their suggestions for your own.
Share Responsibility for Bugs: Bugs are a collective responsibility, not individual failures. Review and approve code to prevent issues from reaching production.
Balance Story Points Fairly: Don't assume that completing more story points indicates better performance. Estimations are not always accurate, and some tickets may be underestimated. Offer assistance to colleagues who appear to be struggling.
Maintaining Professionalism
Separate Code from Personal Identity: Don't take criticism of your code personally. It's an opportunity for improvement, not a reflection of your worth.
Approach Code Reviews with Respect: Be constructive and gentle when suggesting code changes. Provide clear explanations and examples to avoid ambiguity.
Value Gentle Suggestions: Treat gentle suggestions as seriously as direct orders. Implement them promptly and analyze the rationale behind them later.
Resist Laziness: Avoid quick fixes that may lead to future problems. Prioritize thorough testing and foolproof solutions to maintain code quality and prevent future bugs.
Code Reviews
Complete Reviews Promptly: As a reviewer, aim to complete reviews as quickly as possible and indicate whether the code needs work or is approved. This provides timely feedback to the developer.
Suggest Minor Changes without Tasks: For trivial issues like naming conventions, typos, spacing, or code style, suggest changes without creating tasks. You can still approve the code.
Don't Hesitate to Block Pull Requests: If you have valid concerns about a pull request, block it with tasks and a "Needs Work" status. Your actions contribute to maintaining code quality.
Create Tasks for Potential Issues: If you're unsure about a particular aspect of the code, create tasks for the requester to review and clarify. This ensures thoroughness without blocking the review process.
Stay Informed about Pull Requests and Commits: Regularly check for new pull requests and commits to ensure timely reviews. Your feedback is crucial for the team's success.
Remember, effective teamwork is essential for achieving shared goals and maintaining a productive and supportive work environment. By following these guidelines, you can contribute to a collaborative and successful team.
Image provided by DALL-E 3
Top comments (4)
There are some activities I cannot agree with them to improve teamwork. For example, I don't think that
Respond Promptly to Questions
is something effective. If you are interrupted very frequently you will not be able to focus on your tasks, and, additionally, don't promote teammates to search by themselves for an answer to the problem.You are considering here some best practices on teamwork but, as an example, you push people for creating tasks for each other without an order, without a plan, and this is something that could move a to a mess team.
I think you should also talk about doing some kind of ceremonies like meetings in which team members can interact and make agreements together. I truly believe this is something key in teams to keep people motivated, and have a feeling on belonging to something.
Well, as any theory, it can be misinterpreted and applied with blind criteria.
I would clarify that
applies to questions that only you can answer and which are not clear for your colleague, and you are actually blocking any further development from the team affected.
Example: You created a task which says "Call the API endpoint and get the products", but you mentioned earlier 7 kind of different API which get different kinds of products. At that point they need you to clarify which API and which products you are referring to.
This is not about having a fellow asking you every 5m things that should be googled or that are already in the documentation of the team, because that would fall in the error of "RTFM".
If your colleague falls into that kind of people, it could mean that either their search abilities are crap and they need to learn how to search and find things before asking for further help, either they are in desperate need for attention. At this point you should consider if you want to spend some time teaching that colleague their missing skills, or addressing them to someone that could help them better.
In any case, ignoring and postponing their questions, IMHO, is not the way.
Explained in that way make sense to me. I would add another point to the ceremonies related with this that could be having a specific sessions to clarify and understand, by the whole team, the new created tasks. I believe this could increase efficiency also and goes in the same way with what you mention in the article.
“Ceremonies” are a concept introduced by SCRUM. This article is focused in how to be a Team player regardless the organization strategies.
Whether they are called “Meets”, “Gatherings”, “VideoCall”, “Chat” or “Ceremonies”.
Every communication has its own requirements, depending on participants, environment and shared knowledge.