The Regression Discontinuity Design (RDD) has proven to be a compelling and transparent research design to estimate treatment effects. We provide a review of the main assumptions and key challenges faced when adopting an RDD. We cover the most recent developments and advanced methods, and provide the key intuitions that underlie the statistical arguments. Among others, we summarize new insights that we consider to be highly relevant about the choice of bandwidth, optimal inference, discrete running variables, distributional effects, estimation in the presence of covariates, and the regression kink design. We also show how structural parameters can be estimated by combining an RDD identification strategy with theoretical models. We illustrate the procedures by applying them to data and we provide codes to replicate the results.