(For Web Companies Only)
After working in large and small organizations I've seen how thousands of man hours could be saved. It's by having the software developer run the business development. Uhhh? Think about it.
1. Software Engineers can smell out if a deal can actually be done. This level of practicality saves negotiation and legal huge amounts of time. How many times have the Ts & Cs of a deal been hammered out just to find that the deal isn't technically feasible or compatible. All you have to show for it is a frustrated business development team that has just been alienated a little bit further from the product development.
2. The relationship is maintaned at a level that can make it work. It's not about having dinner and drinks together, its about instantly contacting the person that can help when the service is having trouble. Good Engineers will be much more patient when dealing with other Engineers vs running through a middle man. If you want a deal to have life, have the Engineers talk and get out of the way.
3. Nobody ever schedules well. The worse is when someone other than the developer drives it. Developers understand this so well they have even optimized development practices so that the furthest out they have to schedule is the next daily meeting. And don't be surprised if they miss that date. No matter what they will always hold quality over the head of time. Having the development team and not the manager give the estimate gives the team some accountability. Even though this is true, don't expect them to hit the schedule. It's just part of software development. Engineers will be happy with a schedule that says the deal is due when the integration has been developed, tested, and is determined to be supportable.