Agile Technical Practices Distilled: A learning journey in technical practices and principles of software design