Lecture 8 - Intro to software design planning and principals