The best design is the one that can be implemented by any developer. With more detail in the design, there will be fewer unknowns and there will be fewer decisions to make during implementation. Also, you can avoid surprises after the software has been released.