GSOC Application

Revision as of 11:01, 11 March 2009 by Bmeyer (Talk | contribs) (What steps will you take to encourage contributors to interact with your community before, during, and after the program?)

Link ID: eiffel

Group Name: Eiffel Software

Home Page URL:

Public Email: ...


Why is your group applying to participate? What do you hope to gain by participating?

In April 2007, Eiffel Software announced that EiffelStudio will be open source. Almost two years after opening the source code to the community at large, there has been some major contribution to the tool such as the testing framework. Some others are still work in progress (SCOOP, schema evolution, proofs, ...)

Being an open source project, it makes sense for Eiffel Software to participate in the Google Summer of Code in order to get more contributors to the technology as well as gaining in visibility among the open source community.

What is the main public mailing list for your group?

Where is the main IRC channel for your group?


What criteria do you use to select the members of your group?

Please be as specific as possible.

The most important conditions are:

  • The person should be an expert object-oriented developer, with design/architecture as well as implementation skills.
  • He or she should be thoroughly familiar with the architecture of EiffelStudio, and have contributed to it before.
  • They should have some project management experience, and be used to working with students and young engineers.
  • Finally, they must understand the purpose of the Google Summer of Code and agree with its objectives.

We have identified a group of such people who will be available as mentors. Some of them are at Eiffel Software. We also will rely on other experienced contributors to EiffelStudio, external to the company, who have expressed interest. Some are Eiffel programmers who contribute to the technology on their spare time. We will also have one or two people from the Chair of Software Engineering at ETH Zurich (the Swiss Federal Institute of Technology), which has extensive experience with Eiffel and has already made major contributions to EiffelStudio, in particular in the area of automated testing.

Has your group participated previously?

If so, please summarize your involvement and any past successes and failures.

If your group has not previously participated, have you applied in the past?

If so, for what sort of participation?

We applied last year. However we had not had the time to review the details of the Summer of Code program in depth and our application was judged not precise enough. After it was rejected we were able to discuss in detail with Google representatives what was missing in the application; we prepared the present one on the basis of that discussion, making sure we addressed the criticism received.

What license does your organization use?

Most of EiffelStudio uses the Gnu Public License, GPL v2.

Some libraries use the Eiffel Forum License, EFLv2. This is a very simple, liberal open-source license whose text is available here

What is the URL to the ideas list of your organization?

What is the main development mailing list for your group?

What is the application template you would like contributors to your organization to use.?

What is your plan for dealing with disappearing contributors?

We will interview all candidates personally (whenever possible with a voice interview) to ascertain:

  • Their dedication to the project
  • Their motivation for participating
  • Their competence in software development (we will run a mini-exam to test this objectively)

We will only accept candidates who do well on all three points.

Every candidate will have to write a project plan describing the goals, the milestones, the criteria for success. The description of goals will have to be prioritized, so that in case of difficulties the corresponding project will produce a subset of the optimal result rather than no usable outcome.

The mentors will establish an explicit communication schedule with their mentees, with regular checkpoints.

The Eiffel approach uses a "cluster model" (see Bertrand Meyer, "Object-Oriented Software Construction", 2nd edition, Prentice Hall, chapter 28), an incremental model in which code appears early in the process. This means that it is essentially impossible with such a model to "hand-wave" one's way through the project by producing (say) numerous UML diagrams and then not implementing them. This incremental nature of the process will enable mentors to check that the students are actually progressing, and to intervene if they are not.

Another highlight of the Eiffel approach is of course the reliance on clearly defined APIs, expressed through contracts. Contract provide a much more precise specification of functionality than ordinary approaches. The student developers will be required to provide contracts for both implemented parts and parts to be implemented. This means that even if a contributor drops out in spite of all the preceding precautions, he or she will leave behind, for the parts not yet implemented, a precise description of the expected functionality, making it easier for someone else to take over.

What is your plan for dealing with disappearing members?

Some members are employees of Eiffel Software and the mentoring will be part of their duties. Others will be selected among people who have proved their professionalism, competence and dedication through their actual contributions to released open-source products.

We will put in place a members mailing list and require that members inform each other of the progress of the students they mentor. This means that in the case of a mentor becoming unexpectedly unavailable (illness etc.) another can take over. To be even more proactive we are considering a system of "pair mentoring" where each student has a primary and a secondary mentor, who both know what he or she is doing.

What steps will you take to encourage contributors to interact with your community before, during, and after the program?

All projects will be required to have a standard setup, through Origo or a similar framework, providing them automatically with Wiki pages, a forum, a configuration management (Subversion) repository, signup management etc. In addition, the user list at is highly active and provides an excellent sounding board for Eiffel programmers requesting general help from other Eiffel programmers.

What will you do to ensure that your accepted contributors stick with the project after the program concludes?

Please select your backup group administrator