The ideal software development process is -
1. The customer says exactly what his requirement is.
2. The developer creates software that exactly match the requirements.
The problem is, both the customer and the developer are human. That is why we have more complicated processes. But then, if we add a process every time there is a human error, we eventually end up with too many processes.
If you want to know whether any document or any step in your process is really required, ask yourself -
1. Does this clarify the requirements?
2. Does this build the product?
3. Does this verify that the product matches the requirements?