In my job there is a constant discussion about the most productive way to deliver a piece of software. Of course many books and articles are written about this, but I have my own theory.
After the initial preparation of requirements and concept solution I get impatient.
I like action and preferably NOW. So I use a collaborative approach, it's like pointing a shotgun and fire it. Get the team together, discuss the goal and all at the same time go for it... It's a team effort to realize the goal, each with their own responsibility to hit the same goal.
Others prefer to use a sniper approach, based on care full planning before the silver bullet gets fired to hit goal. They claim that my method is difficult to control... but I use for my defense that I use a double barrel shotgun... so I can fire a second shot in case I miss.
Software is like a moving target, nowadays requirements change on the spot, like a bird in the sky. A shotgun is still the most effective way to hit your bird. The sniper approach was probably fine in the 80's when requirements where stable and we had many years to aim for our goal.