Definitely align with your thoughts. Designing the software before writing it is obviously crucial. The analogy would be something like if your job was to build planes and instead of taking the time to design them you jump straight into assembling some parts and pray for the all thing to fly properly