In this talk, we describe the strong relationship between mixed-integer programming (MIP) and dynamic programming (DP). We show two case studies. In the first one (a variant of knapsack problem) valid inequalities are used to improve a method based on DP. In the second one (a variant of vehicle routing problem) a DP is used to produce a stronger MIP formulation, which is solved using an iterative method inspired from techniques used for DP.