Software Engineering Education: Towards Understanding and Improving the Process of Small Group Collaborative Learning