This page provides general information about the team project. It is important that you take the time to read this individually and as a team in order to maximize the possibility of your project's success. As with the resources page we ask that you share any new tips/tricks or red-flags so we can improve the experience of all in the class.
You will required to work in a team. This means you are fundamentally a key element and your contributions, or lack thereof, will make a huge impact. Everyone is expected to pull their weight. To that end you must start the project with a solid team understanding of expectations, abilities, interests and agreed means of communication and accountability.
Many students will be experiencing "real teamwork" for the first time. If you have had practice in this area, whether in software or elsewhere, be sure to help your teammates get acquainted with what TEAMWORK really means. If you have not had experiences with collaborations of this kind, use this opportunity to learn, ask questions, reach out to teammates and be proactive (but not stubborn) about finding the answers on your own.
The various deliverables for the project and their deadlines will be available through the course schedule. It is important that all team members understand that a key component of success will be the proper management of your time. Many teams get in trouble because of "leaving things until the last minute".
In this course we will not teach you how to manage time but we will provide you some hints and tools to help you learn how to manage your efforts and your team's deadlines.
Throughout the project you will find that engineering software is a process of refinement. In other words: Do NOT expect to get things right the first time. We have created a project that will allow you to take on "building blocks" in order to achieve the end-goal. We expect that if you follow the process you will reduce the chances of wasted efforts.
Careful and gradual Design, will allow you and your team to prioritize and gain an understanding of what and when to actually implement/code the solution. It will require discipline on your part to resist the temptation to code without thinking ahead of the consequences.
Rather than re-inventing the wheel and/or building everything perfectly, try to focus on areas you most need to improve on and on features that give the intended user the most value. When in doubt as your instructor for guidance.
Follow the mantra:
"If you are not having fun, you are not doing it right"