Winter 2009 DPS909 and OSD600 Major Project

From CDOT Wiki
Jump to: navigation, search


This project is designed to get you working on real open source software, and to do it within the open source community. You are expected to interface with one of the following communities: or Eclipse WTP. Success in this project means becoming an active contributor to the community, and to following the principles of open source development.

Alone or in Groups

You are highly encouraged to work alone, but in special cases a group of 2 will be accepted. You must speak to your professor if you wish to work in a group, and must have a larger project and a valid reason.

Project Choices

Pick a project from the list of Potential Projects, and once chosen, create an entry on the Project List. Use the Sample Project template to create a project page for your project.

You should also make yourself aware of other projects for which you can become a contributor. Remember that a significant portion of your final grade is based on contributions you will make to other projects.

It is assumed that all students will begin without knowing how to start their project, what the scope is, what is expected, etc. These questions must be answered quickly, and it is your responsibility to find answers. You must not wait for someone to tell you what to do. Rather, become a driver of the process, and talk to people, do research on-line, and so forth. Write about your experiences in your blog.

Conflicts in Project Selection

If a student has already "claimed" a project which you would like to work on, there are several options open to you:

  • Select another project.
  • Discuss the possibility of splitting the project into two or more complimentary (but not interdependent) projects. For example, there may be server-side and client-side components to a project which may be completed independently, or a porting project may be split by platform (Mac, Linux, Windows).

Final approval of project selection is at the discretion of your professor. In the event of a conflict, significant preference will be given on a first-come-first-served basis.

Release Early, Release Often

Following the standard for open source development, you are asked to do three milestone releases of your software

  • Bug/Project chosen - Feb 19
  • 0.1 - Feb 26
  • 0.2 - March 20
  • 0.3 - April 2
  • Final Presentation - April 14, 16

You will work with your professor, the Eclipse WTP/ communities, and your fellow classmates to determine what each milestone should include. Notice that you are not expected to create a 1.0 release (the DPS911/OSD700 courses are designed to take you from 0.4-1.0). It is assumed that your final product will be incomplete in many respects; however, software at 0.3 must be usable. Again, each project will be different in terms of what is expected, so speak with your professors.

Open Development

You will be expected to use open development practices, which means public releases, public documentation, public access to source code. You must keep your project wiki page updated, with new entries at least bi-weekly. The project wiki page will contain technical and logistic information. Use your blog to record more personal reflections, observations, etc.

Each release must be made available on your wiki page, with full source code, so others can download and test it.

Becoming a Contributor

You are expected to contribute to other projects, and to allow others to contribute to yours. This means two things:

  1. You must make it clear how people can help you. Add to the list of things on the Contrib Opportunities page. Remember that most people don't want to spend more than a few hours doing a contribution (i.e., make it very clear what is to be done, and make it small)
  2. You must seek out opportunities to help other groups. Ask them about their work, follow their blogs, read their project pages, check the Contrib Opportunities page for new tasks (e.g., add it to your Watch List). Ultimately, it is your responsibility to find ways to contribute.

Important: Keep track of your contributions to other projects on your personal wiki page. Also, give credit to people who have helped your project by indicating their contribution in your project's wiki page.