When deciding between investing time in design and planning versus jumping straight into coding, it's essential to strike a balance.
While both of these statements are true:
- Weeks of planning* can save you hours of programming.
- Weeks of programming can save you hours of planning.
... and while it is true that:
Programming is made up of 2 activities:
- 95% decision-making
- 5% typing the code
... this pseudocode from the "The Design of Design" book (if you change the word utility to code)** & the mix of experience your senior programmers have brought to your organization can help you decide where to put the balance in your journey.
Also, remember to define "good enough", deadlines, and "time" by considering the right factors based on what matters to you.
Quality? Costs? Time? Strategically, which one are you willing to sacrifice? (if you can choose max 2)
Effective design can help clarify those decisions upfront. However, iterative development can help you learn faster while exploring the unknowns, so it's also valuable to experiment with ideas in small iterations.
More importantly, as a manager you should take the responsibility and decide where to put the balance. Or if not, delegate it to the solution architect or your technical team leader(s) and make sure they are connected to the business. Make sure, as a Scrum Master or any none-technical manager, you do not take the easy path of pushing down the "business decision-making" in the Scrum hierarchy and never blame your developers for what you are responsible for.
Notes
***** Anything from understanding the problem, needs, architecture, etc.
****** Remember, this is just an example to remind us of the fact that we need to put a balance between time & quality and also to value experimenting with ideas in "small-enough" iterations.

