<> = About this Document = This is an official Request for Comment (RFC) for "improving the quality of the Cytoscape 2.3 release." RFC 2 is divided in three parts: * Part I consists of Ethan's interviews with six Cytoscapers (Trey, Gary, Ben, Allan, Aditya, and Rowan). * Part II consists of ideas generated at the 2005 Cytoscape retreat. * Part III consists of final, concrete ideas, which are being proposed to the Cytoscape group. = Status = 12/05/05: This document is open for public comment. = Part I: The Interviews = [[/Part_1]] = Part II: Results from 2005 Cytoscape Retreat = [[/Part_2]] = Part III: Final Proposals = == 1. First, do no harm == This final list of proposals represents my best attempt at extracting all the many ideas I have heard, and making them as concrete as possible. I (obviously) used some judgement in selecting some ideas over others, and I tried to develop the final list based on the following criteria: * First, do no harm. There is a lot that is good / great about Cytoscape. For example, the distributed, chaotic nature of Cytoscape development is a great strength (and a great weakness.) I seriously worry that real centralization of Cytoscape development will take away some of the fun / strength of Cytoscape, and have therefore chosen a modest list of incremental changes. I do not want any of these proposed changes in this RFC to harm any of the good that many people find in Cytoscape. * Second, start small. Organizing a group of very smart people is a monumental challenge. The best chance for success is to start small, and evolve this process over time. I have therefore chosen to go with a small set of proposed changes (rather than a huge list), and I think each one is both modest, and realistic given our current staffing levels. If we have success with this proposal, we can vote to evolve the process further. If you disagree with my final list of ideas, or think my ideas are not broad enough, add a comment below. '''Add a comment about this idea: [[/Scope_Comment]]''' ---- == 2. Focus Cytoscape 2.3 Objectives on Specific Biological Use Cases == During the last two hours of the Cytoscape Retreat, we devised a set of objectives for [[Cytoscape_2.3]]. We need to finish up this task and: * More clearly identify the use cases addressed. Are the use-cases clear enough? What biological questions are we helping people answer? * Write the objectives in plain English. That way, Cytoscape users can more clearly understand what we are trying to accomplish. It's as if we write the release notes now, in anticipation of what we are actually going to build. * More clearly define the module owners. '''Add a comment about this idea: [[/Finalize_Objectives_Comment]]''' ---- == 3. Invite User Feedback on Cytoscape 2.3 Objectives == Once we have Cytoscape 2.3 clear in our minds, and clearly written, we should email the cytoscape-discuss mailing list, and invite feedback from the larger community. Each proposed feature should have a comments page where the public can write in comments, and we should also provide a catch-all page where people can easily request new features. A bit more background on this: many, many people would like us to solicit more feedback from our user community. Rather than just emailing out a generic email or creating an online poll, I think it would be much more effective if we went to our users with a specific plan, and asked them to comment on that plan. Users can then easily add comments to specific features, and the module owners will be responsible for trying to incorporate these comments into their RFC process. '''Add a comment about this idea: [[/User_Feedback_Comment]]''' ---- == 4. Adopt a Formal RFC Process for Each New Feature / Refactoring in Cytoscape 2.3 == Each new feature / refactoring slated for Cytoscape 2.3 will go through a public review process via an RFC posted to the Cytoscape Wiki. [[RFC_1]] will serve as a starting template for all RFCs. Depending on the feature, the RFC should include the following: * Use case addressed. * Proposed user interface. * Proposed API. Once posted to the wiki, the RFC owner should announce it via the cytostaff and cytoscape-discuss mailing lists, and provide a specific deadline for public discussion. RFCs should be open for public comment for at least one week, and should provide a clear mechanism for adding comments. We should make every effort to involve Cytoscape users in the RFC process. '''Add a comment about this idea: [[/RFC_Comment]]''' ---- == 5. Clarify Roles at the Beginning of Release Work == Rather than wait until the end of a release to determine who is doing what, appoint people right now to key positions. Ideally, we should rotate these roles at each release in order to spread knowledge throughout the group. Here are the most important roles: * Release manager: the release manager is responsible for coordinating work during the final 2-4 weeks of a release cycle. Responsibilities include: * Performing builds every few days and making the build available to testers. * Tagging the release in CVS * Generating javadocs * Updating the Ant Build file, as needed. * Coordinating the work needed for the Mac OS X release, and the Install Anywhere installation. * Web Master: the web master is responsible for coordinating change to the Cytoscape web site, and deploying the final release to cytoscape.org. * Documentation manager: the documentation manager is responsible for coordinating all efforts related to ensuring that the Cytoscape manual, Java help pages, and on-line tutorials are up-to-date. * Bug Master * Unit Test Manager '''Add a comment about this idea: [[/Roles_Comment]]''' ---- == 6. Focus on Cytoscape 2.3 Objectives via Wiki and Weekly Conference Calls == At the 2005 Cytoscape Retreat, we came up with a list of goals for [[Cytoscape_2.3]]. We need to maintain focus on these goals, and can do so in two ways: * Make sure that the [[Cytoscape_2.3]] page is always up to date, and reflects current reality. This includes: * List of all proposed features / proposed refactoring * List of all module owners * Proposed Release Date * Status of individual modules * Who's doing what, e.g. who is the release manager, etc. * Start out each weekly Cytoscape conference call with a concise review of the [[Cytoscape_2.3]] page, and get updates from each feature owner. The weekly conference calls tends to wander over many topics, and this provides us with a simple mechanism to refocus on shared priorities. Ethan volunteers to lead up this item. '''Add a comment about this idea: [[/Focus_Comment]]''' ---- == 7. Create Module Owners for each New Feature / Refactoring in Cytoscape 2.3 == Each new feature / proposed refactoring in Cytoscape 2.3 should have one clear module owner, and this module owner must be specified on the [[Cytoscape_2.3]] page. The module owner is responsible for coordinating the RFC process for their proposed module, reviewing any code which affects the proposed module, and serving as a central point of contact for the module. For example, in Cytoscape 2.3, we might have the following module owners: * Graph Rendering (Nerius) * Meta Nodes (Iliana) * etc. Module owners might rotate or change at every release. '''Add a comment about this idea: [[/Module_Owners_Comment]]''' ---- == 8. Focus on Usability of Visual Styles / Filters == At the Cytoscape Retreat, many individuals expressed interest in "improving the usability of Cytoscape." However, this is such a large task, that we might not get very far. To narrow things down, Cytoscape 2.3 should focus on: * Improving the overall usability of Visual Styles. * Improving the overall usability of Filters. Both of these items were triaged at the Cytoscape retreat as being very important features. To Allan K's suggestion, we should reach out to and collaborate with usability / UI research groups at universities. If we are able to substantially improve the usability of the visual styles / filters in Cytoscape 2.3, we can use this as a basis to improve the usability of other features within Cytoscape. '''Add a comment about this idea: [[/Usability_Comment]]''' ---- == 9. Create a Cytoscape User FAQ == To help new users, create a Cytoscape User FAQ. For simplicity, keep this on the Wiki. This is relatively easy to do, but would be enormously beneficial to end-users. '''Add a comment about this idea: [[/FAQ_Comment]]''' ---- == 10. Create a Cytoscape Exchange Program == There is simply no substitute for face-to-face communication, and there are very real limits to communicating via email / phone. Each module owner should make every effort to set-up exchange programs e.g. Nerius comes to NY for a few days, and Ben goes to Agilent for a few days, etc. I am not sure how funding for this would work, but we should discuss further. '''Add a comment about this idea: [[/Exchange_Comment]]'''