Three-dimensional online virtual worlds such as second life support avatar-based communications, a wide spectrum of online activities, and development of various in-world teaching and learning tools. We have experimented with second life in two computer science classes, one at Ohio University, the other at the University of Mary Washington, to enhance software engineering education. We used Second Life as an innovative collaboration and communication tool both in and outside classroom to help facilitate teamwork and interactions among student project team members. Second Life was also used as the virtual office for instructors and teaching assistants to answer students' questions during office hours. In addition, we developed two multi-player online software engineering educational games in second life, one based on the Groupthink software specification exercise developed at M.I.T., and the other based on the SimSE game (a 2-D single player game) developed at UC Irvine. By playing these two games, students learned fundamentals of software specification activities and principles of software development processes. In the paper, we will share our experience of using second life in two software engineering classes, and discuss its pros and cons based on the data collected from student surveys.