One thing I always respected about DD was that when he was trading for premium proven talent he flat out said he wasn't trying to "win" the trade, he knew he was getting a proven commodity so in turn had to give up the best guys he had to get them even if it meant looking foolish in the long run.
He didn't say to Miami "well you can have your pick of 5 of our guys but Maybin and/or Miller are off limits", no he gave them both. Same with Anibal Sanchez, it wasn't a "no you can't have our top prospect in Jacob Turner.." instead he gave it to them. With the Red Sox it was the same thing, he gave them Moncada who some had as the number 1 overall prospect along with Kopech who was the arguably the best pitching prospect as well for the proven guy in Sale. He accepted that to get the proven stud you had to make sacrifices even if you may "overpay" with prospects.
And guess what? He won multiple division/pennants and World Series by going with this approach. It's a shame that more GM's aren't like this anymore.
Furthermore I earlier mentioned about the "settling" part or taking prospects that other teams feel are expendable for them. That's what Avila did with JV, the Astros didn't want to give up Kyle Tucker, Yordan Alvarez or Forrest Whitley so he settled for the guys they were willing to and it burned us. Same with the Cespedes trade, the Mets weren't willing to budge on Zach Wheeler so we settled for Fulmer, I don't want another repeat of that now that we have more leverage. Make the other team "overpay" with prospects and give up guys they don't want to, don't settle for the players that may be great prospects but have question marks hence them trying to force you to take them. Like DD always did and said(to paraphrase) "If you're getting premium talent you have to give up premium talent that you otherwise wouldn't want to get rid of."