Martin Fowler asks and answers whether it is worth it to spend time on design. It is a difficult question to answer for others. It is generally considered good to spend time on design, however, it is omitted a lot of times – either because of skills or deadline panic or overzealousness to code.
Designing, just like many other practices in software development has to follow a process which is preferably suitable to your project configuration. By configuration I mean the team, the skillset, the environment, nature of the project and even the complexity. I have seen that it might be worthwhile to think about level of detail to be included in the design, especially if there is no external audience to it.
Design has its benefits in enabling the team to look at the entire picture rather than the pixels. The real world is affected easily by many factors which are mostly not technical and these can get ignored without a design. I would go to the extent to say that explicit design is not necessary for a purely technical problem. Design, at a stage, also acts as a technology neutral blueprint of the system. It can help in evaluating decisions and looking for alternatives.
However, the value that one can extract out of designing really depends on the ones using it. And whether it beneficial or not depends largely on this. Should one design? Yes. How should one design? Depends.