Project based learning involves designing and planning projects that spark creativity and inquiry, allowing students to go through the full project development life cycle of requirements, design, development, testing, and deployment. It can involve creating new projects from scratch or working with existing systems and projects, which may require understanding legacy code and spending effort on migration and integration. Ultimately, success relies on interpreting existing systems and strong communication and understanding.