-
Notifications
You must be signed in to change notification settings - Fork 1
Project Overview
One of the main goals of the Object-Oriented Software Development program is to help you “become” a software developer. To do this, you must begin to think like a software developer, to develop the behaviours and attitudes that identify a software developer, and to develop the skills that make you capable of developing software. You must develop the ability to find and assess problems, and develop creative solutions using computer technology. To ensure an environment where this can happen, we take special care to select instructors with industry experience who can model the attitudes and behaviours you are trying to acquire. Our industry focus groups point to another very important requirement…
Solving business problems is one of the primary applications of computer technology in the Calgary Information Technology market. Since most business problems are large and complex, you will not be working in isolation. It is physically impossible for one person to acquire all the knowledge and skills necessary to do everything required by a software development project, and to solve this dilemma, we work in multi-disciplinary teams. Therefore, a key factor in your success in becoming a software developer depends on your ability to interact with people from many other disciplines, with patience, diplomacy, and clear communication.
Teamwork is not the kind of thing that can be taught via a classroom lecture. You develop the ability to work smoothly with others by –surprise!—working with others. To provide you with the maximum opportunity to interact with others in a work-like environment, the OOSD program includes a project that spans the duration of the program with modules that overlap many of the courses you will take in the program.
The group project has always been a major component of the Object Oriented Software Development program. It is intended to simulate a project for a small business providing a team environment where you can experience some of the issues and communication requirements. It provides an opportunity to try new things without the danger of affecting a client’s business or losing your job if something doesn’t work as planned.
The workshop requires you to give three presentations. The first is after the completion of the HTML/CSS/JavaScript/PHP courses, the second is at the end of the Microsoft technology courses, and the third is at the end of the program. The teams will be re-assigned for each phase so you get a chance to work with as many people in your class as possible.
The scenario is that a small travel agency, The Travel Experts Inc. needs to upgrade their hopelessly obsolete computer technology and wants to build a state-of-the-art web/desktop application that will enable their customers to place online orders and have desktop software for their agents to maintain the data. However, they do not have enough knowledge of computer technology to decide which operating systems, programming languages, and database would be best for them. To solve this dilemma they want to contract a development team to conduct a preliminary project to build a number of prototypes using different technologies and advise them on the best platform for their needs.
The prototype project is the focus of our workshop. In the three phases we will do the following:
Phase 1: We don’t have the project yet, but our team is pitching a proposal to the Travel Experts management to convince them to contract us. In order to demonstrate our capabilities to them we have put together a demonstration website for them using HTML, CSS, JavaScript, and PHP with a MySQL database. They already have a database built by another company for us to use, but we can enhance it if necessary. In our presentation we will demonstrate the website and explain to them who we are, what our capabilities are, how much we estimate it will cost to complete the prototype project, and some delivery dates for the components. You can use the OOSD schedule to determine the dates, and make up numbers for the rest.
Phase 2: At this stage our team had been awarded the contract and we built prototype components for Microsoft VB.NET, C#.NET, and ASP.NET using a SQL Server database. They already had a database built by another company for us to use, but we were allowed to enhance it if necessary. Our presentation this time is actually a status demo in which we will show them what we have built and give them a manger-level overview of what Microsoft technology is like.
Phase 3: This is our big wrap-up of the prototype project and we have Java components which were built using Linux and an Oracle database which they provided. Our presentation will demo the Java component for them and we will make our final recommendation of the platform we think they should choose for their development environment as they move into the next phase.
Team issues:
Each team should appoint a team leader to coordinate the assignment of tasks and ensure that the work is getting done. The team should meet occasionally to update each other and solve any technical problems that arise.
It is a good idea to appoint someone to be the “keeper of the code” so that there is a central repository of your programs and a person to coordinate who is working on which program to avoid accidentally over-writing someone else’s work. It might also be a good idea to investigate version control systems such as “Subversion”, or Google’s project hosting site. Google’s instructions for creating a project are here: http://code.google.com/p/support/wiki/GettingStarted
Remember that not everyone on your team will have the same level of ability, experience, creativity, work ethic, “life interruptions”, etc. This leads to a common situation where some people can feel like they are carrying more than their share of the workload while getting the same mark as others who did less work. This is solved by allowing the team members to divide up the workload so each person has an equal part of the tasks, requiring each person to produce their own deliverables and source code, while allowing the groups to work together during the design and construction of the deliverables to ensure that discussion and interaction takes place. While this is still a classroom exercise, it simulates a “real workplace” situation, and allows each person to take their project contribution beyond the basic expectations, to a level that is comfortable for them.
One important idea to keep in mind when working with others is that even though you may understand a concept, explaining it to someone else forces you to think about the concept more deeply and leads to a higher level of understanding. If you have a high level of programming experience, share it with others – by interacting with them you may find that they have experience in other areas that will benefit you or provide a new perspective that will be useful in your problem solving.
While there will not be a workshop module for each course, most workshops will incorporate concepts and technologies introduced in previous courses, with the goal of encompassing as much of the overall OOSD program as possible.
Since the OOSD program is a FastTrack program, you are expected to work on your assignments after class and on weekends to complete the necessary assignments within the program time-frame. Since team members occasionally have difficulty arranging time to meet outside of class time, some time has been made available as part of key courses as workshop time. Depending on the length of a course, some courses will have a half-day or full-day workshop as part of the course to provide you with extra opportunity to meet with your groups.
Each document you hand-in should contain documentation to identify the author, date written, your class (eg. OOSD SEP10), and any descriptions you feel are necessary to explain the purpose of the document or program.
In order to assess your progress and ensure that the threaded project components are being completed in time, you are required to present your work in a formal presentation to the instructor, coordinator, and the rest of your class at the end of each of the three terms. These presentations should be approximately 15 to 20 minutes in length (per team) with a 5 minute question/answer session at the end. You should use the tools available, such as Powerpoint, whiteboard, demonstrations, multimedia, etc. to communicate your progress.
In addition to the content, your presentation will be marked on professionalism (dress accordingly), clarity (umms and ahhs are not good), and time management (don’t ramble beyond the allotted time).