Students who are taking this course are expected to have practical and theoretical knowledge of the material covered in Software Engineering 1. This includes, familiarity with Windows or Unix applications, and knowledge of advanced object oriented analysis, design, coding and testing techniques. In this class, the tools to support Software Engineering methods for Project Planning, Software Configuration Management, and OOD are used in a distributed work environment for two reasons: (1) to simulate an off-shore process and prepare students for realities of today's software engineer in the work place. (2) to learn how to formalize any kind of project process; the rules that apply for the distributed teams apply in many ways also to any team. We will use Codebeamer as a platform for the projects. This restricts the use of technology supported by Codebeamer to non-.net projects.
While Software Engineering 1 had a strong emphasis on the improved communication between Business as the client and Software Engineers, Software Engineering 2 puts the emphasis on designing effective remote collaboration. Client and programmer in this case are both technical. In our case, the client is you. The programmers will be instructed and progress monitored by another class of programmers sitting in another country. Software Engineering 2 is motivated from the perspective of the number of distributed teams that partake in today’s Software Application development projects. Most companies have distributed teams and an increasing number of companies are outsourcing their efforts to India and China. In Puerto Rico we have the additional fact of life right here that all development takes place in the US, if not India. Gaining experience in this kind of distributed environment before joining industry is an invaluable lesson that is not usually obtained as part of a University experience. The lessons learned in this practical experience will support project development in any environment because the student has learned to design and manage a development process in the worst-case scenario.
There are not easily available statistics about the gains and losses of outsourcing to more economical areas. But it is well known within industry that many of the economic gains for lower salaries are lost due to communication due to distance, language and cultural gaps between the participants of a project. As a result the savings are greatly diminished. However, dependencies to outsourcing companies have and will continue to build up. To improve the cost factor of distributed projects, it is essential to train students in the art of remote collaboration.
The student graduating from this course:Grading will be based on participation in the class and project. You are expected to spend at least 10 hours outside of classroom meeting times to manage the project. I expect independent study and self-motivation at this point in your accademic career!