As software engineers, we often face bugs while developing features that stem from poor solution design, unexpected edge cases, or misunderstandings of business requirements. These issues arise primarily when software engineers and their teams need to conduct thorough reviews and analyses before jumping into implementation. By adhering to the “rule of thirds” and bringing up concerns with managers to clarify any uncertainties, teams can avoid many problems, save valuable time, and contribute to timely releases.

The rule of thirds divides a development process into three phases: design, implementation, and testing.
- Design: Review and analyze business requirements; identify uncertain aspects that need clarification; list relevant participants, features that will be impacted, and features that are dependent on them; define non-requirements such as performance, security, and system resilience; set measure metrics, define technical solutions and flows, and implement a plan, testing plan, and monitoring plan.
- Implementation: Following the schedule and plan for the design part, implement the solution and flow detail at a low level.
- Testing: Verify code quality, implement unit tests, execute test scripts, perform integration testing, or perform any other kind of test that follows the testing plan on the design part.
Which is the most essential part of those?
I like a quote by Albert Einstein.

, and another quote from Abraham Lincoln.

If we think thoroughly and prepare for an issue, we can solve it effectively.
As managers, we must ensure that our engineers have sufficient time to concentrate on the design phase. All preparations should be documented and thoroughly reviewed by the entire team. Additionally, we should encourage every team member to ask questions and discuss their concerns rather than simply agreeing with the majority and leaving hidden risks unaddressed.
Some engineers often ask managers why it is necessary to create documents, claiming that it takes too much of their time and is less valuable to them. However, documents serve not only as a means for engineers to review requirements and carefully consider solutions but also as a crucial tool for managers to identify risks. This documentation ultimately helps the entire team deliver the product with high quality and on time.