As a software engineer, reviewing the technical designs of your peers can be a tricky task. It’s easy to spot flaws in a design, but it’s important to remember that the review process is not only about identifying problems. It’s also about sharing knowledge, providing insights, and understanding the reasoning behind the design choices. Instead of focusing solely on whether a design is the “best” solution, it’s important to approach the review with empathy and an understanding of the thought process that went into the design. Ultimately, the goal of a design review is to work as a team to improve the overall quality of the software and the collaboration within the team.
Below are a list of things to consider when conducting a design review:
Points to consider:
- Understand the business requirements: Before providing guidance on a technical design, it’s important to understand the business requirements and goals of the project. This will help you ensure that the design meets the needs of the business and aligns with the overall project objectives.
- Review the design: Review the technical design thoroughly and identify any issues or areas of improvement. Look for areas where the design can be simplified or made more efficient, and consider any potential scalability or security issues.
- Provide feedback: Provide feedback on the design, both positive and negative, and make suggestions for improvements. Be specific and provide examples or use cases to support your feedback.
- Consider the big picture: When providing guidance on a technical design, it’s important to consider the big picture and think about how the design fits into the overall project or system. This will help you identify any potential impacts on other areas of the project and make sure that the design is scalable and maintainable.
- Communicate effectively: Make sure to communicate your feedback and guidance effectively. Explain the rationale behind your suggestions and be open to feedback from the design team.
- Balance technical and business needs: Keep in mind that a good technical design needs to balance the technical requirements with the business needs, so make sure to provide guidance that takes both into consideration.
- Follow-up and review: Follow-up on the feedback and guidance provided, and review the updated design to ensure that it meets the requirements and goals of the project.
Things to avoid, or be mindful of
- Being overly critical or negative: Instead, focus on constructive feedback that helps improve the design.
- Being confrontational or dismissive of others’ ideas: Remember that everyone has their own perspective and approach to problem-solving.
- Ignoring non-technical considerations: Technical design reviews should also take into account factors such as maintainability, scalability, and performance.
- Focusing solely on code-level details: It is important to also consider the overall architecture and design of the system.
- Not providing clear and actionable feedback: Be specific and clear in your feedback, and provide suggestions for how the design can be improved.
- Not considering the trade-offs and costs of different design choices.
- Not considering the security and safety aspects of the design.
- Not respecting the time and effort put in by the designer.
- Not understanding the context of the design and the problem it is trying to solve.