Agile Technical Practices Distilled : A Learning Journey in Technical Practices and Principles of Software Design