This course will teach students some of the skills required to participate in and run IT projects that succeed in the real world. Students will simultaneously learn skills in the classroom and apply the skills in a project while interning at a local 'client'. Clients are mostly companies, but sometimes government agencies or non-profit organizations. Students will be given opportunity to work on projects early in their development, to be able to experience the full software project life cycle. Students will work in teams of about four individuals. Each team will undertake one project that lasts the entire semester. The readings, classroom lectures, discussions and activities will teach skills that help implement projects of this size.
Software development: A client needs some software to solve a business problem. The team quickly prosecutes the software development life cycle – including requirements gathering, architecture, design, development and testing – to produce a prototype system that addresses the business problem. The deliverables are the prototype code and a report. The report documents advice and knowledge gained during the project that might be useful to the staff at the client who will build a production system based on the prototype. About ¾ of our projects involve software development.
Software purchase evaluation: In this type of project a client also needs some software to solve a particular business problem. However, it makes more sense to address this problem by purchasing, rather than building, the software. In this case, the team begins by analyzing the business problem and gathering requirements. It then designs an architecture that would connect the new system with existing systems. In the project's second half the team evaluates commercial products that might meet the requirements.