Are the students we are graduating from Computer Science ready for the challenges they will face in industry? Will they be able to work effectively with coworkers to solve problems? Do they have good communication skills to work efficiently in a team environment? These are some of the issues that demand our attention as instructors of Computer Science. Yet, most of our students are given "toy" problems to solve. They rarely have the opportunity to analyze and design a solution from problem specification through its implementation. Further, many students do not have the proper social and written skills to succeed in the real world. Two courses offered in the 2006-2007 academic year provided an opportunity for students to face the issues mentioned. In Fall of 2006, students worked with a real client and implemented a system from problem specification through implementation. In Spring of 2007, students followed a rapid testing strategy to re-engineer quality into the existing system.