WO2001025910A1 - System and method for collaborative product development - Google Patents

System and method for collaborative product development Download PDF

Info

Publication number
WO2001025910A1
WO2001025910A1 PCT/US2000/027373 US0027373W WO0125910A1 WO 2001025910 A1 WO2001025910 A1 WO 2001025910A1 US 0027373 W US0027373 W US 0027373W WO 0125910 A1 WO0125910 A1 WO 0125910A1
Authority
WO
WIPO (PCT)
Prior art keywords
project
tasks
users
product
network
Prior art date
Application number
PCT/US2000/027373
Other languages
French (fr)
Other versions
WO2001025910A9 (en
Inventor
Steven M. Elfanbaum
Nathan W. Mckie, Jr.
Robert J. Elfanbaum
David Elfanbaum
Original Assignee
Asynchrony.Com, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Asynchrony.Com, Inc. filed Critical Asynchrony.Com, Inc.
Priority to AU79930/00A priority Critical patent/AU7993000A/en
Publication of WO2001025910A1 publication Critical patent/WO2001025910A1/en
Publication of WO2001025910A9 publication Critical patent/WO2001025910A9/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Definitions

  • the invention relates to an electronic system and method that allows multiple participants to collaborate in the development of products, including software products, and, in particular, such an electronic system and method using a computer information network, such as the Internet, which allows participants to collaborate in the development of software products while situated at sites remote from each other and remote from an administrator site on which the software products are centrally maintained and to receive compensation related to each participant's collaborative effort.
  • a computer information network such as the Internet
  • the project proposal is posted on the website where software developers who are registered with the site may interface with the site via an Internet interface and view the proposals.
  • the software developers respond to the proposal by posting on the website their own bid/proposal for completing the project, including an estimate of the time and cost for developing the software.
  • the submitting company accesses the website and reviews the bids and selects the developer who will develop the software.
  • the developer then works, independently of the website, to develop the software, and is paid by the submitting company upon completion of previously agreed upon milestones.
  • One disadvantage of such a system is that it does not provide the ability for collaboration among remotely situated software developers to effectively collaborate in the development of a product.
  • the conventional system lacks a centrally located source code database where code can be centrally stored and accessed by the software developers.
  • the developers must either be co-located, must continually electronically transfer the source code back and forth to each other, or must use publicly available collaboration software independent of the systems on the Internet site. The larger the number of developers working on a single software product, the more logistically difficult this becomes.
  • Open source software is software whose source code is made available to the public at no cost via the Internet or other media.
  • these websites do not provide administrative control and compensation for the developers.
  • the administrator of the website publishes the software that is developed on the website or other media and makes it available to the public for free.
  • the software developers cannot share financially in the success of a well-developed product since there is no mechanism to measure the contribution of any individual developer and unclear ownership issues with respect to the underlying code.
  • the invention meets the above needs and overcomes the deficiencies of the prior art by providing an improved system and method of collaborative development of products.
  • the provision of such system and method for collaborative software development that permit remotely situated software developers to collaborate on the development of software products via a computer information network; the provision of such system and method that facilitate the successful development of software products; the provision of such system and method that permit the software products being collaboratively developed to remain in a central storage location having controlled access; the provision of such system and method that permit an admimstrator to manage the operation of the system via a central administrative website; the provision of such system and method that permit project managers to maintain control of and manage the various product development projects independent of the admimstrator; the provision of such system that provides software developers with incentives to collaborate in the development of software products at the central administrative website; the provision of such system and method that permit software developers involved in collaborative development of software products to be financially rewarded from the successful marketing and implementation of the software products; the provision of such system and method that permit the
  • a computer information network system embodying aspects of the invention facilitates the development of a product in an electronic format.
  • the system includes a central controller that has a server for connecting it to a network and for supporting a site on the network.
  • the central controller also includes a data storage device having at least one database storing the product being developed in an electronic format.
  • the database is accessible at the site on the network by one or more selected users.
  • the system also includes a local computer and one or more remote computers.
  • the local computer executes an admimstrator interface for communicating with the central controller to manage administrative functions of the system.
  • the remote computers are situated remotely from the local computer and connected to the network.
  • the remote computers each execute a developer interface for communicating with the central controller via the network to permit the users to access the site supported by the central controller.
  • the developer interface further establishes data transfer links between the remote computers and the central controller for the users to update the product being developed. In this manner, the system facilitates collaboration between the users to develop the product.
  • Another embodiment of the invention is directed to a method of developing a product in an electronic format.
  • the method begins by providing a site on a computer network accessible by a plurality of registered users.
  • the method also includes defining a project having a plurality of tasks to be completed for developing the product, assembling a team of one or more of the users, assigning a predetermined share value to each of the tasks, and assigning one or more of the tasks to each user on the team.
  • the product may be stored in an electronic format in a database that is accessible at the site on the computer network.
  • the users on the team store the respective portions of the product associated with their assigned tasks in the database.
  • the method further includes the steps of awarding shares to the users upon completion of the project based on the assigned share values of the completed tasks and then compensating the users for revenues derived from sales of the product as a function of the shares awarded the users.
  • a computer information network system embodying aspects of the invention is for developing a product in an electronic format.
  • the system has a central controller including a server and a data storage device.
  • the server connects the central controller to a computer network.
  • the data storage device has at least one database, accessible on the network by one or more selected users, storing the product in an electronic format.
  • the product is defined by a project having a predetermined total share value and a plurality of tasks to be completed by the users, each task being is assigned a predetermined share value.
  • the system also includes one or more remote computers situated remotely from the local computer and connected to the network. The remote computers each execute a developer interface for communicating with the central controller via the network to permit the users to access the product database.
  • Yet another embodiment of the invention is directed to a computer data signal embodied in a carrier wave for facilitating the compensation of one or more participants in a collaborative development effort.
  • the computer data signal organizes a plurality of tasks leading to the completion of the collaborative development effort, allocates a limited number of shares to each of the tasks, assigns the one or more participants to work on the tasks, and distributes to each respective participant of the one or more participants upon completion of the collaborative development effort the shares allocated to each of the tasks assigned to the respective participant.
  • a method of facilitating the compensation of one or more participants in a collaborative development effort includes the steps of organizing a plurality of tasks leading to the completion of the collaborative development effort and allocating a limited number of shares to each of the tasks. The method further includes assigning the one or more participants to work on the tasks and distributing to each respective participant of the one or more participants upon completion of the collaborative development effort the shares allocated to each of the tasks assigned to the respective participant.
  • the invention may comprise various other methods and systems.
  • FIG. 1 is a block diagram of a system for collaborative software development according to a preferred embodiment of the invention.
  • FIG. 2 is a block diagram of a central controller of the system of FIG. 1.
  • FIG. 3 A is a block diagram of an admimstrator interface of the system of FIG. 1.
  • FIG. 3B is a block diagram of a member interface of the system of FIG. 1.
  • FIG. 4 is an exemplary flow diagram illustrating the operation of the system of FIG. 1 according to a preferred embodiment of the invention.
  • FIGS. 5 and 6 are exemplary flow diagrams illustrating decision steps implemented by the system of FIG. 1 for executing a project initiation stage of the flow diagram of FIG. 4.
  • FIGS. 7 and 8 are exemplary flow diagrams illustrating decision steps implemented by the system of FIG. 1 for executing a project production stage of the flow diagram of FIG. 4.
  • FIG. 9 is an exemplary flow diagram illustrating decision steps implemented by the system of FIG. 1 for executing a project completion stage of the flow diagram of FIG. 4.
  • FIG. 10 is an exemplary flow diagram illustrating decision steps implemented by the system of FIG. 1 for executing a member compensation stage of the flow diagram of FIG. 4.
  • FIG. 11 is an exemplary screen display of a member registration interface implemented by the system of FIG. 1.
  • FIG. 12 is an exemplary screen display of a member home page implemented by the system of FIG. 1.
  • FIG. 13 is an exemplary screen display of a resume interface implemented by the system of FIG. 1.
  • FIG. 14 is an exemplary screen display of a discussion area interface implemented by the system of FIG. 1.
  • FIG. 15 is an exemplary screen display of a project search interface implemented by the system of FIG. 1.
  • FIG. 16 is an exemplary screen display of a project job postings interface implemented by the system of FIG. 1.
  • FIG. 17 is an exemplary screen display of a project initiation interface implemented by the system of FIG. 1.
  • FIG. 18 is an exemplary screen display of a resume search interface implemented by the system of FIG. 1.
  • FIG. 19 is an exemplary screen display of a project management interface implemented by the system of FIG. 1.
  • FIG. 20 is an exemplary screen display of a peer review interface implemented by the system of FIG. 1.
  • This invention provides a system and method for assisting in the creation of software, writing, music composition, visual art, inventions and other products by various participants who are not necessarily associated by common employer (or other grouping) while providing some measure of remuneration for each participant based on that participant's contribution to the project.
  • the invention may utilize the Internet or other computer network to facilitate interconnection of participants around the globe. These participants may use the invention to find and join creative projects that are compatible with the participants' skills and aspirations. Teams are formed on a project-specific (sometimes even task-specific) basis. Upon completion of the project, the participants disband and may join new teams for other projects. Team members are compensated with shares in each individual project they contribute to, which should provide the participants with some remuneration if the project sells commercially. All phases of the creative process, from initial idea submission to final editing or de-bugging, may be facilitated and tracked by the system. The combined features of the system make possible an advanced "serial" approach to the creation of products and materials that can be produced through collaborative efforts.
  • a collaborative software development system according to one preferred embodiment of the present invention is indicated generally at 100.
  • the system 100 involves using a computer information network to collaborate the efforts of one or more users or participants (e.g., software developers, beta testers, documenters, marketers, and the like) situated in remote locations toward developing a software product to be distributed by an administrator of the system.
  • the computer network is any computer network that allows multiple computer systems to communicate with each other such as a Local Area Network (LAN), Wide Area Network (WAN), Intranet or the Internet using standard communications protocols.
  • LAN Local Area Network
  • WAN Wide Area Network
  • Intranet or the Internet using standard communications protocols.
  • the computer network could comprise the public telephone network with the server acting as a dial-up bulletin board and the clients dialing in directly to the server via the telco network.
  • the computer information network is a wide area or global network such as the network commonly referred to as the "Internet.”
  • the Internet provides computer users with access to a number of resources, including documents on the World Wide Web, a hypertext-based information service that allows web browser clients to access information from web servers.
  • a web server With an Internet connection via a web server, and using specific web browser software, a user can browse the World Wide Web. Examples of such software include Netscape Navigator® and Microsoft Internet ExplorerTM.
  • TCP/IP provides a standardized format for Internet data communication between, for example, a server and client.
  • the TCP/TP protocol suite is named for its two main protocols, i.e., the transmission control protocol (TCP) and the Internet protocol (IP).
  • TCP transmission control protocol
  • IP Internet protocol
  • HTML hypertext transfer protocol
  • the term "administrator” broadly refers to an individual, company or other entity responsible for providing and maintaining an electronic forum, such as a site on the world wide web, bulletin board, or other platform, accessible by software developers and others collaborating efforts to develop software products.
  • the software products may be developed, for example, for distribution and/or sale by the administrator, or pursuant to a development agreement between the administrator and a company or individual seeking specified software products.
  • the term "member” broadly refers to an individual, company or other entity that registers with the admimstrator, in a manner proscribed by the administrator, as a software developer interested in developing and/or testing software products developed in accordance with the present system. It is to be understood that the members may be situated remotely from each other and from the administrator while still being located in, for example, a single building. In network terms, two nodes are considered remote from each other if they have separate network addresses.
  • a system 100 generally comprises a central controller 200, an administrator interface 300 capable of an input/output connection with the central controller 200, and one or more developer or member interfaces 400 also being capable of input/output connection with central controller 200.
  • Any number of members may interface with central controller 200 via the member interfaces 400 to access information or participate in software development in accordance with the present system 100.
  • the members may interface with each other via central controller 200 as part of an online development community.
  • the administrator interface 300 through which the administrator communicates with central controller 200 comprises a local admimstrator computer 302 executing network accessing software, such as a conventional web browser, and a modem (not shown) or other interfacing hardware capable of establishing an input/output data transfer link to a network interface 202 (see FIG. 2).
  • network accessing software such as a conventional web browser
  • modem not shown
  • FIG. 3B each member interface 400 is constructed in a similar manner with a remote user computer 304 connected to central controller 200 via a network.
  • an Internet service Provider (ISP) 306 provides the remote computer 304 with a connection to a global network. Network connections in this manner are well known to those skilled in the art and will not be further described herein except to the extent set forth below.
  • ISP Internet service Provider
  • central controller 200 includes the network interface 202, which is capable of establishing an input/output connection with the admimstrator interface 300 and member interfaces 400.
  • a conventional server 204 supports the administrator's website code 208, such as hypertext markup language ("HTML").
  • the website code 208 causes the administrator's website display to be downloaded to the accessing interface upon establishment of a connection between the admimstrator' s or member's interface 300, 400 and network interface 202 of central controller 200.
  • the server 204 also supports system operating source code 210, which will discussed in detail later herein, that allows members of system 100 to conduct various functions in accordance with the invention without establishing a direct interface with the administrator.
  • server 204 may be provided and operated by a contracted service provider, such as an ISP. However, it is understood that the administrator may itself provide and operate server 204 and remain within the scope of this invention.
  • the server 204 also supports one or more data storage devices 212 containing the various databases that are part of system 100.
  • the databases house member information (e.g., tasks, shares), accounting information (e.g., payments, amount of sales) and electronic commerce information (e.g., products sold, purchaser information).
  • the databases preferably include the completed projects in the form of a file storage system.
  • one or more databases may be established for storing and managing the various data used in accordance with the present invention.
  • system 100 can be further described in a client-server context in which the clients (i.e., user computers 304) each preferably run on a general- purpose computer system such as an IBM compatible, Apple, or other equivalent personal computer that allows a developer to communicate with server 204 via an electrical connection, such as the plain old telephone system via direct-dial system, a global computer network, local area network (LAN) or wide area network (WAN).
  • the general- purpose computer system further includes a network interface that allows for communications with the computer network and may include, for instance, any Internet capable software program such as Netscape Navigator, Microsoft Internet Explorer, Mosaic, or their equivalents.
  • Server 204 is preferably a general-purpose computer system such as an IBM compatible, Apple, Unix type workstation, or their equivalents that can facilitate inquiries from multiple simultaneous inquiries. Server 204 must also have a network interface that allows for communications with the computer network and may include Internet server software. Of course, the server and clients 204, 304, respectively, need not be running on the same type of general-purpose computer for the present system to be operational. Although described in the context of computer source code, it is to be understood that a software product as contemplated by the present invention includes any number of products capable of being produced in an electronic form. For example, such products may include books, music, screenplays, research papers, movies and the like in addition to source code. The collaborative software development system and method of the present invention will now be further described with reference to the flow charts of FIGS. 4-10.
  • system 100 of FIG. 1 operates according to a flow diagram shown in FIG. 4.
  • system 100 implements an environment for facilitating collaborative product development by a plurality of remotely located users.
  • System 100 preferably executes a series of routines, described in detail below, as a function of input from the admimstrator and members for carrying out the invention.
  • the present invention calls for a project initiation stage 404, followed by project production and project completion stages 406, 408.
  • a project consisting of a number of tasks usually performed by different member developers, defines the product under development.
  • the project is allocated a total number of shares, or a share value.
  • Each user can earn a number of shares agreed upon between the user and the project manager, representing a percentage of the project's total share value, for the completion of an assigned task.
  • product packaging and sales take place at stages 410, 412, respectively.
  • the administrator compensates the member developers for their contributions to the project at stage 414 based on, for example, the number of shares in the project owned by each user and the amount of sales.
  • the present invention executes member account initiation and management stages 416, 418 along with a member services stage 420 for supporting the members.
  • the admimstrator computer 302 preferably executes routines, shown as administrator management code 308 in FIG. 1, for implementing the various steps of FIG. 4.
  • the idea generation stage 402 allows any member to define a discrete project based on an idea and become its "project manager.” As shown in FIG. 17, the initiating member may select another member to become the project manager.
  • the idea generation stage may involve the use of various aspects of the overall site. For instance, a member may search through other existing projects (see FIGS. 1, 15, and 16) looking for ideas.
  • a member may generate an idea based upon comments found in discussion strands, programming language forums or news items, all of which may be made available via server 204 or through other equipment.
  • the content may be generated by third parties, members to the site at large or members of particular projects.
  • the product initiation stage 404 helps members with ideas to turn those ideas into real, profitable products (e.g., new software, upgrades, manuals).
  • the invention sets forth certain major tasks to be performed. In general, tasks are divided into five main categories: design, development, testing, documentation, and administration. Each of the five categories of "parent” tasks may have any number of subcategories, or "child” tasks.
  • the data storage device 212 of central controller 200 preferably houses a "public resume" database, including members' skill levels and ratings.
  • the resume database provides a searchable set of resumes for members to search for qualified project managers.
  • Other tasks in product initiation stage 404 involve providing an "idea incubator" discussion area, helping members to find project managers who can implement their ideas.
  • An example of an idea incubator is creating a newsgroup-type discussion area on a centralized site, which may be accessible via the Internet, where members can talk about ideas for projects.
  • the idea incubator can be used as a computer bulletin board for members to publicly seek out project managers.
  • the stage 414 compensating members for generating ideas and organizing projects, depends on the status of the originating member as either a project manager/creator or simply the "project creator.” If the member is the project creator, he or she receives a share of project from the project manager's share (e.g., 20% of the project manager's fixed share). The allocation of shares is described in greater detail with respect to FIG. 7. Although the project creator has the ability to select a project manager, the present invention contemplates the project creator only having limited access to the project so the manager can maintain control.
  • project initiation stage 404 provides support to the project manager to help ensure the success of the project.
  • this stage calls for first determining the type of project at hand and the number of member developers that will be involved on the "team.”
  • data storage device 212 includes a database of project templates appropriate to various types and sizes of projects.
  • the manager can select one of the templates at step 504 based on the parameters determined at step 502.
  • the templates may define pre-allocated amounts of shares of the completed project for determining the amount of compensation for the team members. For example, the manager can use a template to assign shares and tasks, such as design, coding, testing, and documentation.
  • the templates preferably define high-level project tasks, with pre-allocated share amounts, to be completed by the team members.
  • the manager typically selects an appropriate project template when the project is officially started. However, if a template is not available for the particular type of project, as determined at step 508, system 100 proceeds to step 510 for providing a default template in which the manager allocates shares to various tasks.
  • project initiation stage 404 also allows members to request that a new template be created or that an existing template be modified at step 512. This may be accomplished by sending an e-mail to a special company address.
  • This stage also includes providing a "classified" section at step 514 where managers can solicit team members.
  • the present invention creates job posting screens allowing managers to specify the desired skills and type of work needed along with a description of the task at hand. Managers preferably specify a experience rating level that is appropriate for each position.
  • system 100 implements a "resume search" feature where managers can search through information provided by members who want work. In this instance, the data storage device 212 of central controller 200 houses a database of member resumes.
  • central controller 200 also includes a searchable database storing these project openings (see FIGS. 15 and 16). Consequently, a member can search for a new project using a variety of criteria including, but not limited to, project name, programming language, skill level required, project manager name, type of project (i.e., game, utility, device driver, etc.), project status (i.e., early development, beta testing, etc.).
  • project initiation stage 404 further provides means for maximizing the number of members who are involved in projects and for increasing website traffic, member loyalty, and member satisfaction.
  • One task in project initiation stage 404 for accomplishing this goal is to give members an incentive to become project managers. For example, project managers receive a fixed percentage of project shares (e.g., 10%), as a minimum compensation.
  • system 100 automatically and permanently assigns the fixed percentage of shares to the project manager.
  • project initiation stage 404 further includes a routine for encouraging and supporting an open-source development community.
  • the present invention first determines whether the new project involves the creation of open- source software. If so, the manager may choose to create an open-source project, having executable and source code that is freely available over the Internet. In the event that the manager specifies a project as open-source, all members can view and download the source code and executables, as indicated at step 604. In contrast, the non-team members only have read-only access to the files at step 606. If the code is not open, only team members have access to the code and executables at step 608.
  • FIG. 7 provides additional detail relating to the product production stage 406.
  • the present invention contemplates that experienced members and/or employees of the administrator provide project management assistance. This may be accomplished by posting frequently asked questions, and their answers, on an Internet website and/or answered questions posed by e-mail. A private newsgroup for each team to communicate about the project and make announcements also provides project management assistance.
  • the product production stage 406 also includes a routine for allocating shares between team members to ensure that the users are compensated fairly for completing their assigned tasks. As shown in the exemplary routine of FIG. 7, beginning at step 702, system 100 tracks share allocation.
  • the templates described above define shares for each project portion in one embodiment of the invention. If the project manager and team member agree on a new share assignment, as decided at step 706, central controller 200 stores the share data in another database at step 708. Among other things, the share data includes information about the transaction including the date/time that the member accepted the allocation. Proceeding to step 710, the invention accounts for changes in share allocations. If the project manager and team member agree on the changed share assignment, as decided at step 712, central controller 200 stores the share data in the share information database at step 714. Thus, the project production stage permits tracking changes to the allocation of shares for a project and keeping historical info ⁇ nation relating to the allocation.
  • the parent task categories described above include: design (e.g., documenting requirements and program specifications, defining screens and reports); development (e.g., construction of the code to follow the design); testing (e.g., testing of individual units of the product and/or the integration of product components); documentation (e.g., technical writing, user manual documentation, download instructions); and administration (e.g., correspondence, assigning tasks, task follow-up).
  • design e.g., documenting requirements and program specifications, defining screens and reports
  • development e.g., construction of the code to follow the design
  • testing e.g., testing of individual units of the product and/or the integration of product components
  • documentation e.g., technical writing, user manual documentation, download instructions
  • administration e.g., correspondence, assigning tasks, task follow-up.
  • the templates stored in data storage device 212 may define and allocate shares for one or more of these parent tasks, a combination of these parent tasks, or other parent tasks depending on the nature of the project.
  • the project manager can
  • the number of shares may not exceed the total number of shares allocated in the next higher task level (e.g., the "user documentation” task worth 500 shares under the "documentation” parent task can be further divided into “download documentation” worth 250 shares and "user manual” worth 250 shares.).
  • beta testing in addition to being one or more tasks of a project, could also be considered a project in and to itself.
  • system 100 provides a virtual beta testing facility, rewarding consumers for testing software by providing them the opportunity to share in some sum of shares, prizes or other remuneration.
  • any member can help test a product and, as a result, share in the profits from the product.
  • members including non-programmers, can contribute to projects by finding and reporting problems, or bugs, or enhancements relative to a particular software product and become eligible to receive shares in the future revenues of such product.
  • beta testing according to the invention differs from traditional testing methods.
  • Software companies have customarily distributed free, pre-release versions of software known as beta versions as part of their testing process to detect and remedy problems with the software.
  • the bugs that are reported during the beta release are used to make program improvements before the final version is marketed.
  • software products are typically marketed with bugs.
  • software companies often experience difficulty in finding enough people willing to participate and provide quality feedback on their beta product versions.
  • most traditional beta testers are merely compensated with free versions or discounts on the software they test, which is not likely to adequately motivate most beta testers to report bugs detected during testing.
  • a project manager submits a project for beta testing by changing the project status to "submitted.”
  • the administrator reviews the project to ensure it is generally safe and ready for beta testing, and may create a suitable installation package for the project.
  • the community members locate projects ready to download for beta testing by clicking the "Beta Testing" icon on a beta test interface.
  • a community member downloads and tests the project, and submits any bugs or enhancement ideas.
  • the community rates each member's change request(s).
  • the project manager determines what action to take on the change request(s) and assigns a point value to each bug or enhancement reported, which may be based on the first posting of each individual bug and/or enhancement.
  • the project manager assigns a point value ranging from 1 to 20
  • any member of the community (regardless of whether he or she is on the project team or has requested any changes) can rate each change request on a scale of 1 to 5 (1 being the least important; 5 being the most important). This rating is averaged along with the other ratings to provide the project team with an idea of the relative importance of the change request to the user community.
  • the project manager can enter a task reference number (e.g., 3.4.1) from the project task list in the field indicated. This will create a link to the task detail screen, allowing team members to view change requests related to tasks they have been assigned. A request may be removed from its task link by clicking "remove” (this will not delete the request altogether).
  • a number at the top of the project change request list can be used to represent the actual number of the project's total shares that the project manager has reserved for beta testers, preferably as a percent of total allocated shares.
  • project production stage 406 also tracks critical task information beginning at step 802.
  • system 100 queries whether critical task information, such as the project's status, the names of a team member, or a description of one of the defined tasks, has changed.
  • an audit trail database of central controller 200 preferably saves both the old and new values representing the critical information.
  • Step 808 refers to the share tracking routine of FIG. 7.
  • step 810 the invention calls for tracking additions, changes, and deletions to a file.
  • system 100 executes a source control application to track changes made by each member.
  • system 100 tracks downloads of closed- source project executables by non-team members at step 814.
  • the present invention determines whether a non-team member downloaded any files for an incomplete closed-source project. If so, central controller 200 makes a record of the downloads at step 818.
  • FIG. 9 illustrates routines performed in the project completion stage 408 of the invention.
  • the project completion stage 408 may not be required or even utilized.
  • project completion stage 408 ensures that completed projects fit the admimstrator' s company standards of quality. Project managers are charged with meeting certain quality standards before a project can be deemed completed.
  • a number of site members e.g., 10 or more
  • the admimstrator of system 100 sets forth preferred standards.
  • all software applications must include user documentation in HTML or PDF format.
  • Another example involves standardizing the software products by building products using most or all files and information contained in a source control database of central controller 200. Specific build instructions may be checked into the source control under the file name, BUILD.TXT, for example.
  • team members provide feedback regarding the performance of their project manager, and vice- versa.
  • the feedback affects the allocation of shares and, thus, affects the compensation received at completion of the project.
  • the feedback can increase the rating given the manager or member. Participating in projects also increases the skill, or experience, rating of a project manager and participating in projects that result in widely-used products increases his or her quality rating.
  • One feature of the collaborative strategy of the present invention is to encourage project managers to select new, inexperienced members for their projects. In so doing, the overall pool of qualified members increases. In this instance, inviting participation of new members increases a project manager's experience rating. Providing members with a share of project revenues based on the tasks they performed gives members an incentive to get involved in projects. In a manner similar to the feedback described above, the project manager preferably evaluates the performance of the members. The feedback can increase a member's rating. As with managers, participating in projects increases the experience rating of a member and participating in projects that have high customer satisfaction increases his or her quality rating.
  • step 902 begins a preferred rating process for evaluating the performance of each team member.
  • the administrator does not release compensation for the sale of a product to the project manager until he or she has given feedback on each team member.
  • the initial inquiry at step 904 is whether the project has been completed. Members who are involved in completed projects receive points that increase their experience rating. If the project is complete, the manager assigns points to the team members at step 906. Likewise, team members provide feedback on the project manager (and possibly other team members) at the end of the project. Although described in the context of a completed project, it is contemplated that ratings may be given before project completion without deviating from the scope of the invention.
  • the feedback system involves the use of a numerical value that determines an overall ranking in one embodiment.
  • the member supplying feedback may give a rating between - 2 and 2 , where - 2 is the worst possible rank and 2 is the best.
  • project members may be rated in various categories on a scale of 1 to 10 (see FIG. 20). As shown in FIG. 20, these categories may include quality of work, cooperation, knowledge, helpfulness, dependability, availability and more.
  • an overall feedback score is then determined as a function of individual feedback ratings.
  • team members receive a experience rating for participating in the project and the manager increases each team member's experience rating by a percentage of 10 that is equal to the member's percentage of shares in the project.
  • Project managers receive a experience rating bonus for managing the project at step 910. In one embodiment, project managers receive a experience rating bonus based on the number of team members that contributed significantly to the completion of the project. At step 912, this number is determined. Proceeding to step 914, system 100 operating in accordance with the present invention increases the project manager's experience rating by 2 points for each member who is among the top 80% of shareholders on the project.
  • step 916 project managers also receive a experience rating bonus based on the number of members of the team who do not have prior project experience. For example, step 918 assigns a experience rating bonus to the project manager on this basis.
  • step 920 the administrator of system 100 increases the project manager's experience rating by 2 points for each member who has never received shares from a project.
  • member ratings are made up of three main performance-based components: peer, experience, and quality ratings.
  • members rate their teammates and project manager and the project manager rates each member of the team based on factors such as quality of work, cooperation, knowledge, helpfulness, communication, dependability, availability, initiative, attitude, and turnaround time.
  • each member receives a rating based on his or her experience level and a rating based on the quality (i.e., success) of the project.
  • the following provides an exemplary experience rating for members: (member's shares/total shares for project) x (# of team members); and for Project Managers: (0.2 x # of team members) + (0.1 * # of newbies on team) + (team member experience points).
  • a member's quality rating measures the success of projects in which the member has participated.
  • the member receives this rating based on, for example, composite customer ratings of the product.
  • Each member's overall rating preferably comprises a weighted combination of the three individual ratings.
  • the peer rating could be 75%, the experience rating 20%, and the quality rating 5% of the member's overall rating.
  • other weights could be used without deviating from the scope of the mvention.
  • the product packaging stage 410 of system operation involves providing standard user interfaces and documentation for the products. This stage also creates a standard installation/setup program if possible.
  • the goal of the product sales stage 412 is to effectively and simply sell the products resulting from the collaborative development effort of the present invention.
  • customers purchase products via authorized credit card transactions and then download the products via the Internet.
  • Member accounts are preferably credited for sales upon collection for sales on account or other sales not collected via credit card transaction.
  • the team members receive their percentage of what the admimstrator receives from the third party. It is also contemplated that products will be packaged for physical, rather than electronic, sale. In these instances, the team members receive their percentage of the administrator's net income from sales of physical products. For informational purposes, the gross sales for each item sold are made available to all members of the team responsible for the product.
  • the compensation is preferably cross-tabulated in text and graphics showing correlation to gross sales and other data.
  • FIG. 10 illustrates routines performed in the member compensation stage 414 of the invention.
  • the goal of this stage is to compensate members responsible for the creation of a product with a percentage of sales of that product.
  • Team members responsible for a product receive a percentage of the company's sales of the product.
  • the development team receives a large portion (e.g., 75%) of the administrator company's revenue for each product sold and each team member receives a percentage of the team's share.
  • Each team member's percentage of the team's revenue is, for example, the same as that member's percentage of shares earned of the total shares for the project.
  • team members are paid according to the following formula:
  • the administrator provides branding for a shareware product and distributes it as a download from the administrator site or other distribution centers/websites. Under this option, the team receives 90%, for example, of the revenues.
  • the administrator not only provides branding and distribution for a certified product but also tests the product, sets up its installation, reviews the documentation, and provides limited post-release customer support. Under this option, the team receives 75%, for example, of the revenues.
  • the manager in example 3) also worked as a team member in the project of example 2), earning 300 shares.
  • the second product sold 250, 130, and 60 copies, respectively, in the previous three months.
  • the administrator preferably accumulates payouts.
  • the members can review their accounts at any time and request payouts, thus deciding generally when they want to be paid.
  • the system of the present invention provides a complete history of the various member accounts, including drill-down features that allow members to review all data relating to projects that they have worked on and their life-to-date payment histories.
  • the administrator performs payouts on a regular (e.g., monthly) schedule. If distributing payments throughout the month is desirable, the timing of the monthly payments can be based on the anniversary of the particular member's sign-up. It is to be understood that payment functions can be accomplished automatic via electronic transfers of funds to member bank accounts. In any event, the administrator preferably withholds payments that are less than a threshold amount (e.g., ten dollars).
  • a threshold amount e.g., ten dollars
  • FIG. 10 illustrates a method for compensating members according to an alternative embodiment of the invention.
  • members responsible for creation of a product are preferably compensated with a ranking that demonstrates their ability to create valuable products.
  • the administrator assigns a number of points to each member at step 1004 based on his or her participation and the success of the product.
  • Each team member receives one point at step 1006 when the member's share of sales is equivalent to 10 sales of the product.
  • Step 1008 defines a formula for calculating the points given member.
  • (# points for a product) (# of sales ⁇ 10 sales per point) x (# shares earned in product ⁇ total shares in product).
  • Step 1010 involves assigning points to each team member based on the monetary compensation that the member received for the product. For example, each team member receives one point for every $100 in compensation received for a product. Proceeding to step 1012, the success rating is determined by adding unit sale points to compensation points but fractional points are discarded at step 1014.
  • the administrator posts real-time rankings of top point-getters (cumulative, monthly, etc.) on its site with corresponding rewards and perks for success.
  • top point-getters cumulative, monthly, etc.
  • the administrator can develop productive competition and reinforce its objectives.
  • system 100 preferably executes routines for handling the collection of tax-related member information. First, only members that have communicated all of the required information will be paid. This information includes, for example, social security number, U.S. mailing address, and U.S. bank account. For relatively large payments (e.g., over $1,000), system 100 preferably submits the member's social security number for a validity check automatically over the Internet. System 100 also generates a report flagging all invalid and/or duplicate social security numbers, along with an e-mail to the particular member requesting that he or she update the necessary fields prior to any additional payments being made.
  • a representation within the sign-up screen verifies the accuracy of the member's profile and acknowledges that any employment or income taxes related to the payment of money to a member are the responsibility of the member. This statement is also used to advise the member to consult with a tax advisor.
  • the collaborative development system 100 also performs member initiation and account management stages 416, 418.
  • the administrator collects enough information on each member for compensation and verification needs.
  • the administrator provides members with information about their account and ratings at account management stage 418.
  • a members services stage 420 is provided for resolving disputes between members and the like.
  • the general-purpose computers of system 100 are controlled by a WINDOWS operating system, such as WINDOWS 95, WINDOWS 98, or WINDOWS 2000.
  • the present system would work equally well using MACINTOSH computers or even another operating system such as a LINUX, WINDOWS CE, UNIX or a JAVA based operating system, to name a few.
  • client i.e., computer 304
  • server 204 ⁇ a well- known manner dependent upon the technology of computer network - users will access various user interfaces, which may take the general form depicted in FIGS. 11-20.
  • FIGS. 11-20 These figures suggest the use of Java applets in a WINDOWS environment.
  • JavaAVTNDOWS type environment use of this environment is not required as part of the present invention.
  • Other programming languages and user-interface approaches may also be used to facilitate data entry and execute the various computer programs that make up the present invention.
  • FIG. 11 is an exemplary screen display of a member registration interface.
  • the prospective participant receives a log-in ID via e-mail after completing a membership application.
  • the log-in ID is then used when the participant accepts the terms of a membership agreement.
  • FIG. 12 is an exemplary screen display of a member home page.
  • each member has his or her own home page for obtaining project news, account information, current member statistics and the like.
  • the home page summarizes news from the computer, programming and technology worlds to encourage members to visit the home page to learn of new opportunities.
  • the home page may also include a summary of the members site statistics, including information regarding compensation due in future periods.
  • FIG. 13 is an exemplary screen display of an interface for assisting the member in completing and submitting his or her resume.
  • the resume provides a key mechanism for members to connecting with each other and for members to become active participants in the community.
  • the member may elect to hide his or her resume from the public. This option, if available, may be implemented at any time by the member.
  • FIG. 14 is an exemplary screen display of a discussion area interface.
  • System 100 preferably provides a community environment to encourage members to discuss and propose ideas for projects. It is contemplated that project teams will have their own discussion groups for private postings.
  • FIG. 15 is an exemplary screen display of a project search interface.
  • the project search interface preferably assists members in finding suitable projects. For example, the project search page enables the members to search for projects by type, project manager, or even those projects that are designated as "open-source.”
  • FIG. 16 is an exemplary screen display of an interface for project job postings to facilitate members in identifying desirable projects and joining them. In this example, a member can search for projects that are currently seeking team members and view individual job and project descriptions, e-mailing the respective project managers.
  • FIG. 17 is an exemplary screen display of an interface for initiating a project.
  • a member can, for example, specify the type of project (e.g., new software, an upgrade, a manual), and the public and private descriptions of the project.
  • the project initiation interface also permits the member to initiate a private project.
  • FIG. 18 is an exemplary screen display of a resume search interface.
  • system 100 permits searching for a project manager and team members. For example, if a particular member initiates a project, he or she has the option of being the project manager. The initiating member also has the option of searching member resumes for a project manager based on skill levels and ratings. Once a project manager is selected, the search interface permits the project manager to search for team members.
  • the project manager is eligible for bonus points, or shares, by selecting members who have yet to be part of a project.
  • the project manager can view resumes and send e-mail invitations to the prospective team members. It would also be possible for authorized users to utilize the resumes and evaluations on the site in recruiting computer professionals. In this way, the recruiters would receive some third party feedback on prospective candidates that may be useful in recommending or tailoring a search.
  • FIG. 19 is an exemplary screen display of an interface for the project manager to assign and manage tasks.
  • the project manager can obtain details on which member is performing which task, the progress of the task, and the share value of the task.
  • System 100 preferably provides such a screen display in its default form as a template for the project manager to assign shares and tasks, such as design, coding, testing, and documentation, to potential team members.
  • FIG. 20 is an exemplary screen display of an interface for the user to rate the project manager and other team members based on their performance. Typically, the peer review occurs before the project is completed. If the member is also the project manager, he or she will rate all members of the team. Following the review process, the project can generally be considered completed.
  • the team receives the majority of revenues generated by the sale/distribution of the product, according to each member's involvement (represented by shares).
  • the member home page preferably provides account balance information and facilitates the member becoming involved in another project.
  • the software which comprises an ordered listing of executable instructions for implementing logical functions, may selectively be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that may selectively retrieve the instructions from the instruction execution system, apparatus, or device and execute the instructions.
  • a "computer-readable medium” is any means that may contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
  • the computer readable medium may selectively be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium.
  • the computer-readable medium would include the following: an electrical connection (electronic) having one or more wires (such as the Internet), a portable computer diskette (magnetic), a RAM (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM or Flash memory) (electronic), an optical fiber (optical), and a portable compact disc readonly memory (CDROM) (optical).
  • an electrical connection having one or more wires
  • a portable computer diskette magnetic
  • RAM random access memory
  • ROM read-only memory
  • EPROM or Flash memory erasable programmable read-only memory
  • CDROM portable compact disc readonly memory
  • the computer-readable medium may even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via for instance optical scanning of the paper or other medium, then compiled, interpreted or otherwise processed in a suitable manner if necessary, and then stored in a computer memory.

Abstract

A computer information network system and method for facilitating the collaborative development of a product in an electronic format. A server connects a central controller to a network and supports a site on the network. The central controller includes a data storage device having at least one database storing the product being developed in an electronic format. The database is accessible at the site on the network by one or more selected users. A local computer executes an administrator interface for communicating with the central controller to manage administrative functions of the system. One or more remote computers situated remotely from the local computer and connected to the network each execute a developer interface for communicating with the central controller via the network. The developer interface permits the users to access the site supported by the central controller and establishes data transfer links between the remote computers and the central controller for the users to update the product being developed.

Description

SYSTEM AND METHOD FOR COLLABORATIVE PRODUCT DEVELOPMENT
BACKGROUND OF THE INVENTION
The invention relates to an electronic system and method that allows multiple participants to collaborate in the development of products, including software products, and, in particular, such an electronic system and method using a computer information network, such as the Internet, which allows participants to collaborate in the development of software products while situated at sites remote from each other and remote from an administrator site on which the software products are centrally maintained and to receive compensation related to each participant's collaborative effort.
With the evolution of wide area computer information networks, such as the Internet, it has become possible for persons to electronically access, download, and/or transmit information from or to a remotely located site. With the development of the Internet, businesses have increasingly turned to electronic commerce as an effective means for communicating with potential customers and conducting business. Typical business applications of the Internet include on-line auctions, catalog sales, want-ad sites and other forms of electronic commerce. Another application of on-line commerce provides an electronic forum in the form of a website intended to bring freelance software developers together with companies, individuals or other entities in need of software development. The architecture of present software development websites generally allows the company or other entity in need of software development to submit a proposed project to the website via a conventional Internet interface. Once approved by the administrator of the website, the project proposal is posted on the website where software developers who are registered with the site may interface with the site via an Internet interface and view the proposals. The software developers respond to the proposal by posting on the website their own bid/proposal for completing the project, including an estimate of the time and cost for developing the software. The submitting company accesses the website and reviews the bids and selects the developer who will develop the software. The developer then works, independently of the website, to develop the software, and is paid by the submitting company upon completion of previously agreed upon milestones.
One disadvantage of such a system is that it does not provide the ability for collaboration among remotely situated software developers to effectively collaborate in the development of a product. For example, the conventional system lacks a centrally located source code database where code can be centrally stored and accessed by the software developers. Thus, where several software developers desire to be involved in the joint development of a software product, the developers must either be co-located, must continually electronically transfer the source code back and forth to each other, or must use publicly available collaboration software independent of the systems on the Internet site. The larger the number of developers working on a single software product, the more logistically difficult this becomes.
One type of collaborative development website meets some of these needs, but is used to facilitate the development of "open source" software. Open source software is software whose source code is made available to the public at no cost via the Internet or other media. However, these websites do not provide administrative control and compensation for the developers. The administrator of the website publishes the software that is developed on the website or other media and makes it available to the public for free. In the conventional open source system described above, the software developers cannot share financially in the success of a well-developed product since there is no mechanism to measure the contribution of any individual developer and unclear ownership issues with respect to the underlying code.
There is a need, therefore, for a system and method which allows remotely situated software developers and others, such as beta testers, documenters, marketers, and the like, to more efficiently collaborate on the development of software products and to share financially in the success of the developed products.
SUMMARY OF THE INVENTION The invention meets the above needs and overcomes the deficiencies of the prior art by providing an improved system and method of collaborative development of products. Among the several objects and features of this invention is the provision of such system and method for collaborative software development that permit remotely situated software developers to collaborate on the development of software products via a computer information network; the provision of such system and method that facilitate the successful development of software products; the provision of such system and method that permit the software products being collaboratively developed to remain in a central storage location having controlled access; the provision of such system and method that permit an admimstrator to manage the operation of the system via a central administrative website; the provision of such system and method that permit project managers to maintain control of and manage the various product development projects independent of the admimstrator; the provision of such system that provides software developers with incentives to collaborate in the development of software products at the central administrative website; the provision of such system and method that permit software developers involved in collaborative development of software products to be financially rewarded from the successful marketing and implementation of the software products; the provision of such system and method that permit the software developers to be compensated in accordance with their respective levels of effort and success in developing the software products; and the provision of such system and method that are economically feasible and commercially practical.
Briefly described, a computer information network system embodying aspects of the invention facilitates the development of a product in an electronic format. The system includes a central controller that has a server for connecting it to a network and for supporting a site on the network. The central controller also includes a data storage device having at least one database storing the product being developed in an electronic format. According to the invention, the database is accessible at the site on the network by one or more selected users. The system also includes a local computer and one or more remote computers. The local computer executes an admimstrator interface for communicating with the central controller to manage administrative functions of the system. The remote computers are situated remotely from the local computer and connected to the network. The remote computers each execute a developer interface for communicating with the central controller via the network to permit the users to access the site supported by the central controller. The developer interface further establishes data transfer links between the remote computers and the central controller for the users to update the product being developed. In this manner, the system facilitates collaboration between the users to develop the product.
Another embodiment of the invention is directed to a method of developing a product in an electronic format. The method begins by providing a site on a computer network accessible by a plurality of registered users. The method also includes defining a project having a plurality of tasks to be completed for developing the product, assembling a team of one or more of the users, assigning a predetermined share value to each of the tasks, and assigning one or more of the tasks to each user on the team. According to the method of the invention, the product may be stored in an electronic format in a database that is accessible at the site on the computer network. In such a case, the users on the team store the respective portions of the product associated with their assigned tasks in the database. The method further includes the steps of awarding shares to the users upon completion of the project based on the assigned share values of the completed tasks and then compensating the users for revenues derived from sales of the product as a function of the shares awarded the users.
In another form, a computer information network system embodying aspects of the invention is for developing a product in an electronic format. The system has a central controller including a server and a data storage device. The server connects the central controller to a computer network. The data storage device has at least one database, accessible on the network by one or more selected users, storing the product in an electronic format. The product is defined by a project having a predetermined total share value and a plurality of tasks to be completed by the users, each task being is assigned a predetermined share value. The system also includes one or more remote computers situated remotely from the local computer and connected to the network. The remote computers each execute a developer interface for communicating with the central controller via the network to permit the users to access the product database.
Yet another embodiment of the invention is directed to a computer data signal embodied in a carrier wave for facilitating the compensation of one or more participants in a collaborative development effort. The computer data signal organizes a plurality of tasks leading to the completion of the collaborative development effort, allocates a limited number of shares to each of the tasks, assigns the one or more participants to work on the tasks, and distributes to each respective participant of the one or more participants upon completion of the collaborative development effort the shares allocated to each of the tasks assigned to the respective participant.
In another form, a method of facilitating the compensation of one or more participants in a collaborative development effort includes the steps of organizing a plurality of tasks leading to the completion of the collaborative development effort and allocating a limited number of shares to each of the tasks. The method further includes assigning the one or more participants to work on the tasks and distributing to each respective participant of the one or more participants upon completion of the collaborative development effort the shares allocated to each of the tasks assigned to the respective participant. Alternatively, the invention may comprise various other methods and systems.
Other objects and features will be in part apparent and in part pointed out hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a system for collaborative software development according to a preferred embodiment of the invention.
FIG. 2 is a block diagram of a central controller of the system of FIG. 1.
FIG. 3 A is a block diagram of an admimstrator interface of the system of FIG. 1. FIG. 3B is a block diagram of a member interface of the system of FIG. 1. FIG. 4 is an exemplary flow diagram illustrating the operation of the system of FIG. 1 according to a preferred embodiment of the invention.
FIGS. 5 and 6 are exemplary flow diagrams illustrating decision steps implemented by the system of FIG. 1 for executing a project initiation stage of the flow diagram of FIG. 4.
FIGS. 7 and 8 are exemplary flow diagrams illustrating decision steps implemented by the system of FIG. 1 for executing a project production stage of the flow diagram of FIG. 4. FIG. 9 is an exemplary flow diagram illustrating decision steps implemented by the system of FIG. 1 for executing a project completion stage of the flow diagram of FIG. 4. FIG. 10 is an exemplary flow diagram illustrating decision steps implemented by the system of FIG. 1 for executing a member compensation stage of the flow diagram of FIG. 4. FIG. 11 is an exemplary screen display of a member registration interface implemented by the system of FIG. 1.
FIG. 12 is an exemplary screen display of a member home page implemented by the system of FIG. 1.
FIG. 13 is an exemplary screen display of a resume interface implemented by the system of FIG. 1.
FIG. 14 is an exemplary screen display of a discussion area interface implemented by the system of FIG. 1.
FIG. 15 is an exemplary screen display of a project search interface implemented by the system of FIG. 1. FIG. 16 is an exemplary screen display of a project job postings interface implemented by the system of FIG. 1.
FIG. 17 is an exemplary screen display of a project initiation interface implemented by the system of FIG. 1. FIG. 18 is an exemplary screen display of a resume search interface implemented by the system of FIG. 1.
FIG. 19 is an exemplary screen display of a project management interface implemented by the system of FIG. 1. FIG. 20 is an exemplary screen display of a peer review interface implemented by the system of FIG. 1.
Corresponding reference characters indicate corresponding parts throughout the drawings.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
This invention provides a system and method for assisting in the creation of software, writing, music composition, visual art, inventions and other products by various participants who are not necessarily associated by common employer (or other grouping) while providing some measure of remuneration for each participant based on that participant's contribution to the project. The invention may utilize the Internet or other computer network to facilitate interconnection of participants around the globe. These participants may use the invention to find and join creative projects that are compatible with the participants' skills and aspirations. Teams are formed on a project-specific (sometimes even task-specific) basis. Upon completion of the project, the participants disband and may join new teams for other projects. Team members are compensated with shares in each individual project they contribute to, which should provide the participants with some remuneration if the project sells commercially. All phases of the creative process, from initial idea submission to final editing or de-bugging, may be facilitated and tracked by the system. The combined features of the system make possible an advanced "serial" approach to the creation of products and materials that can be produced through collaborative efforts.
With reference to the drawings, and in particular FIGS. 1 and 2, a collaborative software development system according to one preferred embodiment of the present invention is indicated generally at 100. The system 100 involves using a computer information network to collaborate the efforts of one or more users or participants (e.g., software developers, beta testers, documenters, marketers, and the like) situated in remote locations toward developing a software product to be distributed by an administrator of the system. The computer network is any computer network that allows multiple computer systems to communicate with each other such as a Local Area Network (LAN), Wide Area Network (WAN), Intranet or the Internet using standard communications protocols. It should also be noted that the computer network could comprise the public telephone network with the server acting as a dial-up bulletin board and the clients dialing in directly to the server via the telco network.
In one preferred embodiment, the computer information network is a wide area or global network such as the network commonly referred to as the "Internet." In general, connections to the wide area network known as the Internet provide computer users with access to a number of resources, including documents on the World Wide Web, a hypertext-based information service that allows web browser clients to access information from web servers. With an Internet connection via a web server, and using specific web browser software, a user can browse the World Wide Web. Examples of such software include Netscape Navigator® and Microsoft Internet Explorer™. Those skilled in the art recognize that a suite of protocols, referred to as TCP/IP provides a standardized format for Internet data communication between, for example, a server and client. The TCP/TP protocol suite is named for its two main protocols, i.e., the transmission control protocol (TCP) and the Internet protocol (IP). As is known in the art, web documents, or pages, are usually made up of multiple objects such as blocks of text, images, programs, audio clips and/or video clips. A hypertext transfer protocol (HTTP) provides for the transport of bitstreams representing these objects from a remote server to a local client and is the primary mode of transfer and presentation in this connection environment.
As used herein, the term "administrator" broadly refers to an individual, company or other entity responsible for providing and maintaining an electronic forum, such as a site on the world wide web, bulletin board, or other platform, accessible by software developers and others collaborating efforts to develop software products. The software products may be developed, for example, for distribution and/or sale by the administrator, or pursuant to a development agreement between the administrator and a company or individual seeking specified software products. The term "member" broadly refers to an individual, company or other entity that registers with the admimstrator, in a manner proscribed by the administrator, as a software developer interested in developing and/or testing software products developed in accordance with the present system. It is to be understood that the members may be situated remotely from each other and from the administrator while still being located in, for example, a single building. In network terms, two nodes are considered remote from each other if they have separate network addresses.
A system 100 generally comprises a central controller 200, an administrator interface 300 capable of an input/output connection with the central controller 200, and one or more developer or member interfaces 400 also being capable of input/output connection with central controller 200. Any number of members may interface with central controller 200 via the member interfaces 400 to access information or participate in software development in accordance with the present system 100. Moreover, the members may interface with each other via central controller 200 as part of an online development community. With reference to FIG. 3A, the administrator interface 300 through which the administrator communicates with central controller 200 comprises a local admimstrator computer 302 executing network accessing software, such as a conventional web browser, and a modem (not shown) or other interfacing hardware capable of establishing an input/output data transfer link to a network interface 202 (see FIG. 2). As shown in FIG. 3B, each member interface 400 is constructed in a similar manner with a remote user computer 304 connected to central controller 200 via a network. In this example, an Internet service Provider (ISP) 306 provides the remote computer 304 with a connection to a global network. Network connections in this manner are well known to those skilled in the art and will not be further described herein except to the extent set forth below. Referring further to FIG. 2, central controller 200 includes the network interface 202, which is capable of establishing an input/output connection with the admimstrator interface 300 and member interfaces 400. A conventional server 204 supports the administrator's website code 208, such as hypertext markup language ("HTML"). Preferably, the website code 208 causes the administrator's website display to be downloaded to the accessing interface upon establishment of a connection between the admimstrator' s or member's interface 300, 400 and network interface 202 of central controller 200. The server 204 also supports system operating source code 210, which will discussed in detail later herein, that allows members of system 100 to conduct various functions in accordance with the invention without establishing a direct interface with the administrator. It is contemplated that server 204 may be provided and operated by a contracted service provider, such as an ISP. However, it is understood that the administrator may itself provide and operate server 204 and remain within the scope of this invention. The server 204 also supports one or more data storage devices 212 containing the various databases that are part of system 100. Among other things, the databases house member information (e.g., tasks, shares), accounting information (e.g., payments, amount of sales) and electronic commerce information (e.g., products sold, purchaser information). In addition, the databases preferably include the completed projects in the form of a file storage system. Those skilled in the art recognize that one or more databases may be established for storing and managing the various data used in accordance with the present invention.
In the present illustration, system 100 can be further described in a client-server context in which the clients (i.e., user computers 304) each preferably run on a general- purpose computer system such as an IBM compatible, Apple, or other equivalent personal computer that allows a developer to communicate with server 204 via an electrical connection, such as the plain old telephone system via direct-dial system, a global computer network, local area network (LAN) or wide area network (WAN). The general- purpose computer system further includes a network interface that allows for communications with the computer network and may include, for instance, any Internet capable software program such as Netscape Navigator, Microsoft Internet Explorer, Mosaic, or their equivalents. Server 204 is preferably a general-purpose computer system such as an IBM compatible, Apple, Unix type workstation, or their equivalents that can facilitate inquiries from multiple simultaneous inquiries. Server 204 must also have a network interface that allows for communications with the computer network and may include Internet server software. Of course, the server and clients 204, 304, respectively, need not be running on the same type of general-purpose computer for the present system to be operational. Although described in the context of computer source code, it is to be understood that a software product as contemplated by the present invention includes any number of products capable of being produced in an electronic form. For example, such products may include books, music, screenplays, research papers, movies and the like in addition to source code. The collaborative software development system and method of the present invention will now be further described with reference to the flow charts of FIGS. 4-10.
In a preferred embodiment of the invention, the system 100 of FIG. 1 operates according to a flow diagram shown in FIG. 4. As shown, system 100 implements an environment for facilitating collaborative product development by a plurality of remotely located users. System 100 preferably executes a series of routines, described in detail below, as a function of input from the admimstrator and members for carrying out the invention. Beginning with the generation of a product idea at step 402, the present invention calls for a project initiation stage 404, followed by project production and project completion stages 406, 408. A project, consisting of a number of tasks usually performed by different member developers, defines the product under development. According to a preferred embodiment of the invention, the project is allocated a total number of shares, or a share value. Each user can earn a number of shares agreed upon between the user and the project manager, representing a percentage of the project's total share value, for the completion of an assigned task. After completion of the project, product packaging and sales take place at stages 410, 412, respectively. Finally, the administrator compensates the member developers for their contributions to the project at stage 414 based on, for example, the number of shares in the project owned by each user and the amount of sales. In support of the project stages, the present invention executes member account initiation and management stages 416, 418 along with a member services stage 420 for supporting the members. The admimstrator computer 302 preferably executes routines, shown as administrator management code 308 in FIG. 1, for implementing the various steps of FIG. 4.
The idea generation stage 402 allows any member to define a discrete project based on an idea and become its "project manager." As shown in FIG. 17, the initiating member may select another member to become the project manager. In general the idea generation stage may involve the use of various aspects of the overall site. For instance, a member may search through other existing projects (see FIGS. 1, 15, and 16) looking for ideas. In another example, a member may generate an idea based upon comments found in discussion strands, programming language forums or news items, all of which may be made available via server 204 or through other equipment. The content may be generated by third parties, members to the site at large or members of particular projects.
The product initiation stage 404 helps members with ideas to turn those ideas into real, profitable products (e.g., new software, upgrades, manuals). To complete stage 404, the invention sets forth certain major tasks to be performed. In general, tasks are divided into five main categories: design, development, testing, documentation, and administration. Each of the five categories of "parent" tasks may have any number of subcategories, or "child" tasks.
The data storage device 212 of central controller 200 preferably houses a "public resume" database, including members' skill levels and ratings. Among other things, the resume database provides a searchable set of resumes for members to search for qualified project managers. Other tasks in product initiation stage 404 involve providing an "idea incubator" discussion area, helping members to find project managers who can implement their ideas. An example of an idea incubator is creating a newsgroup-type discussion area on a centralized site, which may be accessible via the Internet, where members can talk about ideas for projects. In addition, the idea incubator can be used as a computer bulletin board for members to publicly seek out project managers.
The stage 414, compensating members for generating ideas and organizing projects, depends on the status of the originating member as either a project manager/creator or simply the "project creator." If the member is the project creator, he or she receives a share of project from the project manager's share (e.g., 20% of the project manager's fixed share). The allocation of shares is described in greater detail with respect to FIG. 7. Although the project creator has the ability to select a project manager, the present invention contemplates the project creator only having limited access to the project so the manager can maintain control.
Referring now to FIG. 5, project initiation stage 404 provides support to the project manager to help ensure the success of the project. Beginning at step 502, this stage calls for first determining the type of project at hand and the number of member developers that will be involved on the "team." In a preferred embodiment of the invention, data storage device 212 includes a database of project templates appropriate to various types and sizes of projects. The manager can select one of the templates at step 504 based on the parameters determined at step 502. The templates may define pre-allocated amounts of shares of the completed project for determining the amount of compensation for the team members. For example, the manager can use a template to assign shares and tasks, such as design, coding, testing, and documentation. In addition, at step 506, the templates preferably define high-level project tasks, with pre-allocated share amounts, to be completed by the team members. The manager typically selects an appropriate project template when the project is officially started. However, if a template is not available for the particular type of project, as determined at step 508, system 100 proceeds to step 510 for providing a default template in which the manager allocates shares to various tasks.
In a preferred embodiment of the invention, project initiation stage 404 also allows members to request that a new template be created or that an existing template be modified at step 512. This may be accomplished by sending an e-mail to a special company address. This stage also includes providing a "classified" section at step 514 where managers can solicit team members. As an example, the present invention creates job posting screens allowing managers to specify the desired skills and type of work needed along with a description of the task at hand. Managers preferably specify a experience rating level that is appropriate for each position. At step 516, system 100 implements a "resume search" feature where managers can search through information provided by members who want work. In this instance, the data storage device 212 of central controller 200 houses a database of member resumes. It is contemplated that employment recruiters will be authorized to search the skills and resume database for a fee. Members are given a way of searching for projects that have openings for developers with particular skills. At project creation, the manager can specify the types of skills needed to implement the project. The managers can also specify whether or not a project is "accepting applications." Preferably, central controller 200 also includes a searchable database storing these project openings (see FIGS. 15 and 16). Consequently, a member can search for a new project using a variety of criteria including, but not limited to, project name, programming language, skill level required, project manager name, type of project (i.e., game, utility, device driver, etc.), project status (i.e., early development, beta testing, etc.).
According to the present invention, project initiation stage 404 further provides means for maximizing the number of members who are involved in projects and for increasing website traffic, member loyalty, and member satisfaction. One task in project initiation stage 404 for accomplishing this goal is to give members an incentive to become project managers. For example, project managers receive a fixed percentage of project shares (e.g., 10%), as a minimum compensation. When the project begins, system 100 automatically and permanently assigns the fixed percentage of shares to the project manager.
Referring now to FIG. 6, project initiation stage 404 further includes a routine for encouraging and supporting an open-source development community. At step 602, the present invention first determines whether the new project involves the creation of open- source software. If so, the manager may choose to create an open-source project, having executable and source code that is freely available over the Internet. In the event that the manager specifies a project as open-source, all members can view and download the source code and executables, as indicated at step 604. In contrast, the non-team members only have read-only access to the files at step 606. If the code is not open, only team members have access to the code and executables at step 608.
FIG. 7 provides additional detail relating to the product production stage 406. At stage 406, the present invention contemplates that experienced members and/or employees of the administrator provide project management assistance. This may be accomplished by posting frequently asked questions, and their answers, on an Internet website and/or answered questions posed by e-mail. A private newsgroup for each team to communicate about the project and make announcements also provides project management assistance.
The product production stage 406 also includes a routine for allocating shares between team members to ensure that the users are compensated fairly for completing their assigned tasks. As shown in the exemplary routine of FIG. 7, beginning at step 702, system 100 tracks share allocation. At step 704, the templates described above define shares for each project portion in one embodiment of the invention. If the project manager and team member agree on a new share assignment, as decided at step 706, central controller 200 stores the share data in another database at step 708. Among other things, the share data includes information about the transaction including the date/time that the member accepted the allocation. Proceeding to step 710, the invention accounts for changes in share allocations. If the project manager and team member agree on the changed share assignment, as decided at step 712, central controller 200 stores the share data in the share information database at step 714. Thus, the project production stage permits tracking changes to the allocation of shares for a project and keeping historical infoπnation relating to the allocation.
The parent task categories described above include: design (e.g., documenting requirements and program specifications, defining screens and reports); development (e.g., construction of the code to follow the design); testing (e.g., testing of individual units of the product and/or the integration of product components); documentation (e.g., technical writing, user manual documentation, download instructions); and administration (e.g., correspondence, assigning tasks, task follow-up). It is to understood that the parent tasks described above are exemplary. The templates stored in data storage device 212 may define and allocate shares for one or more of these parent tasks, a combination of these parent tasks, or other parent tasks depending on the nature of the project. As an example of task assignments, the project manager can approve any number of child tasks under a parent task category. The number of shares, however, may not exceed the total number of shares allocated in the next higher task level (e.g., the "user documentation" task worth 500 shares under the "documentation" parent task can be further divided into "download documentation" worth 250 shares and "user manual" worth 250 shares.).
It is contemplated that beta testing, in addition to being one or more tasks of a project, could also be considered a project in and to itself. According to a preferred embodiment of the invention, system 100 provides a virtual beta testing facility, rewarding consumers for testing software by providing them the opportunity to share in some sum of shares, prizes or other remuneration. In a collaborative software development community, such as the one established by the present invention, any member can help test a product and, as a result, share in the profits from the product. During beta testing, members, including non-programmers, can contribute to projects by finding and reporting problems, or bugs, or enhancements relative to a particular software product and become eligible to receive shares in the future revenues of such product.
As described herein, beta testing according to the invention differs from traditional testing methods. Software companies have customarily distributed free, pre-release versions of software known as beta versions as part of their testing process to detect and remedy problems with the software. The bugs that are reported during the beta release are used to make program improvements before the final version is marketed. Notwithstanding the efforts of conventional beta testers, software products are typically marketed with bugs. Moreover, software companies often experience difficulty in finding enough people willing to participate and provide quality feedback on their beta product versions. Generally, most traditional beta testers are merely compensated with free versions or discounts on the software they test, which is not likely to adequately motivate most beta testers to report bugs detected during testing.
The following describes an exemplary beta testing process: 1. A project manager submits a project for beta testing by changing the project status to "submitted."
2. The administrator reviews the project to ensure it is generally safe and ready for beta testing, and may create a suitable installation package for the project.
3. The community members locate projects ready to download for beta testing by clicking the "Beta Testing" icon on a beta test interface.
4. A community member downloads and tests the project, and submits any bugs or enhancement ideas.
5. The community rates each member's change request(s).
6. The project manager determines what action to take on the change request(s) and assigns a point value to each bug or enhancement reported, which may be based on the first posting of each individual bug and/or enhancement..
7. When the project is complete, the allocated shares for beta testing are then divided among all community members whose change requests are awarded points by the project manager. 8. All members who received shares earn a portion of the product's revenues, just as would any participant in the project.
In one embodiment, only the first person to report a bug or change can be awarded any reward. In this way, the testers are encouraged to look and sift through the project for bugs or changes in an expeditious manner. In one embodiment, the project manager assigns a point value ranging from 1 to 20
(20 being the most valuable) to each request according to its value to the project. These points are important, because they represent the portion of the beta testing shares that the reporting member will receive. Since the total number of points is divided into the total number of shares allocated for beta testing, it is not advantageous for a project manager to assign trivial or low point values to change requests. The points are only important in their relation to each other. Preferably, team members are not eligible to receive beta testing points when they submit requests for their own project because they earn shares from completing tasks and to prevent abuse. As an example, the project manager can assign 1 or 2 points for spelling errors, 2 to 7 points for aesthetic errors, 6 to 13 points for usability errors (application is not intuitive), 10 to 17 points for functional problems, and 15 to 20 points for critical/system crash/data loss. In addition, any member of the community (regardless of whether he or she is on the project team or has requested any changes) can rate each change request on a scale of 1 to 5 (1 being the least important; 5 being the most important). This rating is averaged along with the other ratings to provide the project team with an idea of the relative importance of the change request to the user community.
Further to this example, if the change request requires an additional task to be added, the project manager can enter a task reference number (e.g., 3.4.1) from the project task list in the field indicated. This will create a link to the task detail screen, allowing team members to view change requests related to tasks they have been assigned. A request may be removed from its task link by clicking "remove" (this will not delete the request altogether). A number at the top of the project change request list can be used to represent the actual number of the project's total shares that the project manager has reserved for beta testers, preferably as a percent of total allocated shares.
In a preferred embodiment illustrated by FIG. 8, project production stage 406 also tracks critical task information beginning at step 802. At step 804, system 100 queries whether critical task information, such as the project's status, the names of a team member, or a description of one of the defined tasks, has changed. At step 806, an audit trail database of central controller 200 preferably saves both the old and new values representing the critical information. Step 808 refers to the share tracking routine of FIG. 7.
Referring now to step 810, the invention calls for tracking additions, changes, and deletions to a file. At step 812, system 100 executes a source control application to track changes made by each member. In addition, system 100 tracks downloads of closed- source project executables by non-team members at step 814. Proceeding to step 816, the present invention determines whether a non-team member downloaded any files for an incomplete closed-source project. If so, central controller 200 makes a record of the downloads at step 818.
FIG. 9 illustrates routines performed in the project completion stage 408 of the invention. In certain cases, shareware for instance, the project completion stage 408 may not be required or even utilized. However, where a product will be sold, project completion stage 408 ensures that completed projects fit the admimstrator' s company standards of quality. Project managers are charged with meeting certain quality standards before a project can be deemed completed. In one embodiment, a number of site members (e.g., 10 or more) must download the resultant product for testing before the project is considered complete. For software products especially, the admimstrator of system 100 sets forth preferred standards. For example, all software applications must include user documentation in HTML or PDF format. Another example involves standardizing the software products by building products using most or all files and information contained in a source control database of central controller 200. Specific build instructions may be checked into the source control under the file name, BUILD.TXT, for example.
In one embodiment, team members provide feedback regarding the performance of their project manager, and vice- versa. The feedback affects the allocation of shares and, thus, affects the compensation received at completion of the project. As described with respect to project completion stage 408, the feedback can increase the rating given the manager or member. Participating in projects also increases the skill, or experience, rating of a project manager and participating in projects that result in widely-used products increases his or her quality rating.
One feature of the collaborative strategy of the present invention is to encourage project managers to select new, inexperienced members for their projects. In so doing, the overall pool of qualified members increases. In this instance, inviting participation of new members increases a project manager's experience rating. Providing members with a share of project revenues based on the tasks they performed gives members an incentive to get involved in projects. In a manner similar to the feedback described above, the project manager preferably evaluates the performance of the members. The feedback can increase a member's rating. As with managers, participating in projects increases the experience rating of a member and participating in projects that have high customer satisfaction increases his or her quality rating.
Referring to FIG. 9, step 902 begins a preferred rating process for evaluating the performance of each team member. In general, the administrator does not release compensation for the sale of a product to the project manager until he or she has given feedback on each team member. The initial inquiry at step 904 is whether the project has been completed. Members who are involved in completed projects receive points that increase their experience rating. If the project is complete, the manager assigns points to the team members at step 906. Likewise, team members provide feedback on the project manager (and possibly other team members) at the end of the project. Although described in the context of a completed project, it is contemplated that ratings may be given before project completion without deviating from the scope of the invention.
As before, the administrator does not release compensation for a product's sales to a team member until feedback has been provided for the project manager. The feedback system involves the use of a numerical value that determines an overall ranking in one embodiment. For example, the member supplying feedback may give a rating between - 2 and 2 , where - 2 is the worst possible rank and 2 is the best. In another example, project members may be rated in various categories on a scale of 1 to 10 (see FIG. 20). As shown in FIG. 20, these categories may include quality of work, cooperation, knowledge, helpfulness, dependability, availability and more. In any approach, an overall feedback score is then determined as a function of individual feedback ratings.
At step 908, team members receive a experience rating for participating in the project and the manager increases each team member's experience rating by a percentage of 10 that is equal to the member's percentage of shares in the project. Project managers receive a experience rating bonus for managing the project at step 910. In one embodiment, project managers receive a experience rating bonus based on the number of team members that contributed significantly to the completion of the project. At step 912, this number is determined. Proceeding to step 914, system 100 operating in accordance with the present invention increases the project manager's experience rating by 2 points for each member who is among the top 80% of shareholders on the project.
Referring now to step 916, project managers also receive a experience rating bonus based on the number of members of the team who do not have prior project experience. For example, step 918 assigns a experience rating bonus to the project manager on this basis. At step 920, the administrator of system 100 increases the project manager's experience rating by 2 points for each member who has never received shares from a project.
In another preferred embodiment of the invention, member ratings are made up of three main performance-based components: peer, experience, and quality ratings. Upon completion of tasks, members rate their teammates and project manager and the project manager rates each member of the team based on factors such as quality of work, cooperation, knowledge, helpfulness, communication, dependability, availability, initiative, attitude, and turnaround time. In addition to the peer rating, each member receives a rating based on his or her experience level and a rating based on the quality (i.e., success) of the project. The following provides an exemplary experience rating for members: (member's shares/total shares for project) x (# of team members); and for Project Managers: (0.2 x # of team members) + (0.1 * # of newbies on team) + (team member experience points). A member's quality rating measures the success of projects in which the member has participated. The member receives this rating based on, for example, composite customer ratings of the product. Each member's overall rating preferably comprises a weighted combination of the three individual ratings. For one example, the peer rating could be 75%, the experience rating 20%, and the quality rating 5% of the member's overall rating. Of course, other weights could be used without deviating from the scope of the mvention. In a preferred embodiment of the invention, the product packaging stage 410 of system operation involves providing standard user interfaces and documentation for the products. This stage also creates a standard installation/setup program if possible. The goal of the product sales stage 412 is to effectively and simply sell the products resulting from the collaborative development effort of the present invention. As an example of the sales process, customers purchase products via authorized credit card transactions and then download the products via the Internet. Member accounts are preferably credited for sales upon collection for sales on account or other sales not collected via credit card transaction. If the developed products are sold to or through a third party, the team members receive their percentage of what the admimstrator receives from the third party. It is also contemplated that products will be packaged for physical, rather than electronic, sale. In these instances, the team members receive their percentage of the administrator's net income from sales of physical products. For informational purposes, the gross sales for each item sold are made available to all members of the team responsible for the product. Moreover, the compensation is preferably cross-tabulated in text and graphics showing correlation to gross sales and other data.
FIG. 10 illustrates routines performed in the member compensation stage 414 of the invention. The goal of this stage is to compensate members responsible for the creation of a product with a percentage of sales of that product. Team members responsible for a product receive a percentage of the company's sales of the product. In one embodiment, the development team receives a large portion (e.g., 75%) of the administrator company's revenue for each product sold and each team member receives a percentage of the team's share. Each team member's percentage of the team's revenue is, for example, the same as that member's percentage of shares earned of the total shares for the project. In general, team members are paid according to the following formula:
(monthly sales revenue) x (share %) x (team revenue %). Members preferably accumulate an account balance based on the monthly sales of the products on which they have earned shares. In one distribution option, the administrator provides branding for a shareware product and distributes it as a download from the administrator site or other distribution centers/websites. Under this option, the team receives 90%, for example, of the revenues. In another distribution option, the administrator not only provides branding and distribution for a certified product but also tests the product, sets up its installation, reviews the documentation, and provides limited post-release customer support. Under this option, the team receives 75%, for example, of the revenues.
The following are examples illustrating member compensation:
1) A project manager who earns 2,000 shares of a 10,000-share certified product receives 20% of the team's total 75% compensation. In a given month, if 100 copies of a $30 software product are sold, the member receives: (monthly sales revenue) x (share %) (team revenue %) - $3,000 x 20% 75% = $450.
2) A team member who does one task that is worth 300 shares of a 10,000-share shareware product receives 3% of the team's total 90% share of revenues. If the product sells 250 copies at $15 each in one month, the member receives: (monthly sales revenue) x (share %) (team revenue %) = $3,750 3% x 90% = $101.25. 3) The project manager in example 1) may not work on any projects for a few months but still reaps the rewards of his or her work. If the project manager does not request a payout for three months, in which the $30 product sells 100, 40, and 70 copies, respectively, in each month of the three-month period. The manager receives: (accumulated monthly sales revenue) x (share %) x (team revenue %) = ($3,000 + $1,200 + $2,100) x 20% x 75% = $945.00.
4) The manager in example 3) also worked as a team member in the project of example 2), earning 300 shares. The second product sold 250, 130, and 60 copies, respectively, in the previous three months. The manager (as a team member) receives: (accumulated monthly sales revenue) x (share %) x (team revenue %) = ($3,750 + $1,950 + $900) x 3% x 90% = $178.20.
In order to increase flexibility and lower costs of transmitting funds to members, the administrator preferably accumulates payouts. The members can review their accounts at any time and request payouts, thus deciding generally when they want to be paid. In addition, the system of the present invention provides a complete history of the various member accounts, including drill-down features that allow members to review all data relating to projects that they have worked on and their life-to-date payment histories. In a preferred embodiment, the administrator performs payouts on a regular (e.g., monthly) schedule. If distributing payments throughout the month is desirable, the timing of the monthly payments can be based on the anniversary of the particular member's sign-up. It is to be understood that payment functions can be accomplished automatic via electronic transfers of funds to member bank accounts. In any event, the administrator preferably withholds payments that are less than a threshold amount (e.g., ten dollars).
FIG. 10 illustrates a method for compensating members according to an alternative embodiment of the invention. Beginning at step 1002, members responsible for creation of a product are preferably compensated with a ranking that demonstrates their ability to create valuable products. The administrator assigns a number of points to each member at step 1004 based on his or her participation and the success of the product. Each team member receives one point at step 1006 when the member's share of sales is equivalent to 10 sales of the product. Step 1008 defines a formula for calculating the points given member. At step 1008: (# points for a product) = (# of sales ÷ 10 sales per point) x (# shares earned in product ÷ total shares in product).
Step 1010 involves assigning points to each team member based on the monetary compensation that the member received for the product. For example, each team member receives one point for every $100 in compensation received for a product. Proceeding to step 1012, the success rating is determined by adding unit sale points to compensation points but fractional points are discarded at step 1014.
As an additional incentive, the administrator posts real-time rankings of top point-getters (cumulative, monthly, etc.) on its site with corresponding rewards and perks for success. By rewarding successful members and providing ranking recognition, the administrator can develop productive competition and reinforce its objectives.
It is contemplated that the administrator may encounter certain issues relating to state and federal tax laws and desire to minimize its exposure to taxes related to the payment of compensation to members. According to the invention, system 100 preferably executes routines for handling the collection of tax-related member information. First, only members that have communicated all of the required information will be paid. This information includes, for example, social security number, U.S. mailing address, and U.S. bank account. For relatively large payments (e.g., over $1,000), system 100 preferably submits the member's social security number for a validity check automatically over the Internet. System 100 also generates a report flagging all invalid and/or duplicate social security numbers, along with an e-mail to the particular member requesting that he or she update the necessary fields prior to any additional payments being made. A representation within the sign-up screen (and a later reaffirmation prior to the member receiving his or her first payment) verifies the accuracy of the member's profile and acknowledges that any employment or income taxes related to the payment of money to a member are the responsibility of the member. This statement is also used to advise the member to consult with a tax advisor.
In one preferred embodiment of the invention, the collaborative development system 100 also performs member initiation and account management stages 416, 418. At initiation stage 416, the administrator collects enough information on each member for compensation and verification needs. The administrator provides members with information about their account and ratings at account management stage 418. A members services stage 420 is provided for resolving disputes between members and the like. In the present illustration, the general-purpose computers of system 100 are controlled by a WINDOWS operating system, such as WINDOWS 95, WINDOWS 98, or WINDOWS 2000. It is contemplated, however, that the present system would work equally well using MACINTOSH computers or even another operating system such as a LINUX, WINDOWS CE, UNIX or a JAVA based operating system, to name a few. Using the client, i.e., computer 304, to operably connect to server 204 ~ in a well- known manner dependent upon the technology of computer network - users will access various user interfaces, which may take the general form depicted in FIGS. 11-20. These figures suggest the use of Java applets in a WINDOWS environment. Of course, while the present disclosure is being made in a JavaAVTNDOWS type environment, use of this environment is not required as part of the present invention. Other programming languages and user-interface approaches may also be used to facilitate data entry and execute the various computer programs that make up the present invention.
FIG. 11 is an exemplary screen display of a member registration interface. In one embodiment of the invention, the prospective participant receives a log-in ID via e-mail after completing a membership application. The log-in ID is then used when the participant accepts the terms of a membership agreement.
FIG. 12 is an exemplary screen display of a member home page. In this example, each member has his or her own home page for obtaining project news, account information, current member statistics and the like. In one example, the home page summarizes news from the computer, programming and technology worlds to encourage members to visit the home page to learn of new opportunities. The home page may also include a summary of the members site statistics, including information regarding compensation due in future periods. FIG. 13 is an exemplary screen display of an interface for assisting the member in completing and submitting his or her resume. According to a preferred embodiment of the invention, the resume provides a key mechanism for members to connecting with each other and for members to become active participants in the community. In one approach, the member may elect to hide his or her resume from the public. This option, if available, may be implemented at any time by the member.
FIG. 14 is an exemplary screen display of a discussion area interface. System 100 preferably provides a community environment to encourage members to discuss and propose ideas for projects. It is contemplated that project teams will have their own discussion groups for private postings. FIG. 15 is an exemplary screen display of a project search interface. The project search interface preferably assists members in finding suitable projects. For example, the project search page enables the members to search for projects by type, project manager, or even those projects that are designated as "open-source." FIG. 16 is an exemplary screen display of an interface for project job postings to facilitate members in identifying desirable projects and joining them. In this example, a member can search for projects that are currently seeking team members and view individual job and project descriptions, e-mailing the respective project managers. FIG. 17 is an exemplary screen display of an interface for initiating a project.
Using the project initiation interface, a member can, for example, specify the type of project (e.g., new software, an upgrade, a manual), and the public and private descriptions of the project. In this example, the project initiation interface also permits the member to initiate a private project. FIG. 18 is an exemplary screen display of a resume search interface. Preferably, system 100 permits searching for a project manager and team members. For example, if a particular member initiates a project, he or she has the option of being the project manager. The initiating member also has the option of searching member resumes for a project manager based on skill levels and ratings. Once a project manager is selected, the search interface permits the project manager to search for team members. As described above, the project manager is eligible for bonus points, or shares, by selecting members who have yet to be part of a project. Using this search interface, the project manager can view resumes and send e-mail invitations to the prospective team members. It would also be possible for authorized users to utilize the resumes and evaluations on the site in recruiting computer professionals. In this way, the recruiters would receive some third party feedback on prospective candidates that may be useful in recommending or tailoring a search.
FIG. 19 is an exemplary screen display of an interface for the project manager to assign and manage tasks. In this example of a project tasks screen, the project manager can obtain details on which member is performing which task, the progress of the task, and the share value of the task. System 100 preferably provides such a screen display in its default form as a template for the project manager to assign shares and tasks, such as design, coding, testing, and documentation, to potential team members. FIG. 20 is an exemplary screen display of an interface for the user to rate the project manager and other team members based on their performance. Typically, the peer review occurs before the project is completed. If the member is also the project manager, he or she will rate all members of the team. Following the review process, the project can generally be considered completed.
In a preferred embodiment, the team receives the majority of revenues generated by the sale/distribution of the product, according to each member's involvement (represented by shares). As described above, the member home page preferably provides account balance information and facilitates the member becoming involved in another project. The software, which comprises an ordered listing of executable instructions for implementing logical functions, may selectively be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that may selectively retrieve the instructions from the instruction execution system, apparatus, or device and execute the instructions. In the context of this document, a "computer-readable medium" is any means that may contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer readable medium may selectively be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection (electronic) having one or more wires (such as the Internet), a portable computer diskette (magnetic), a RAM (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM or Flash memory) (electronic), an optical fiber (optical), and a portable compact disc readonly memory (CDROM) (optical). Note that the computer-readable medium may even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via for instance optical scanning of the paper or other medium, then compiled, interpreted or otherwise processed in a suitable manner if necessary, and then stored in a computer memory.
When introducing elements of the present invention or the preferred embodiment(s) thereof, the articles "a," "an," "the," and "said" are intended to mean that there are one or more of the elements. The terms "comprising," "including," and "having" are intended to be inclusive and mean that there may be additional elements other than the listed elements.
In view of the above, it will be seen that the several objects of the invention are achieved and other advantageous results attained. As various changes could be made in the above constructions and methods without departing from the scope of the invention, it is intended that all matter contained in the above description or shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.

Claims

CLAIMSWHAT IS CLAIMED IS:
1. A computer information network system for developing a product in an electronic format, said system comprising: a central controller including a server, said server connecting the central controller to a computer network and supporting a site on the network, said central controller further including a data storage device having at least one database storing the product in an electronic format, said product database being accessible at the site on the network by one or more selected users; one or more local computers connected to the central controller, said local computers executing an administrator interface for communicating with the central controller to manage administrative functions of the system; one or more remote computers situated remotely from the local computer and connected to the network, said remote computers each executing a developer interface for communicating with the central controller via the network to permit the users to access the site supported by the central controller, said developer interface further establishing data transfer links between the remote computers and the central controller for the users to modify the product thereby facilitating collaboration between the users to develop the product.
2. The system of claim 1 wherein the product is defined by a project having a plurality of tasks to be completed by the users, each of said tasks being assigned a predetermined share value and said project having a predetermined total share value.
3. The system of claim 2 wherein each user receives an amount of shares upon completion of the project based on the assigned share value of each task completed by the respective user, and wherein the data storage device includes a database storing information relating to the shares received by the users.
4. The system of claim 3 wherein the database storing information relating to the shares further stores information relating to compensation for each user for revenues derived from sales of the product as a function of the amount of shares received by the user upon completion of the project.
5. The system of claim 2 wherein the data storage device includes a database storing project templates, said templates defining one or more parent tasks in the project.
6. The system of claim 5 wherein the parent tasks are subdivided into child tasks, said child tasks having cumulative share values that equal the share values of the parent tasks from which the child tasks are subdivided.
7. The system of claim 5 wherein one of the users is selected as a project manager and wherein the project templates define an amount of shares to be received by the project manager upon completion of the project.
8. The system of claim 2 wherein the administrator interface includes a routine for tracking changes in allocating share values to the tasks and maintaining historical information relating thereto.
9. The system of claim 1 wherein the admimstrator interface includes a source control routine for tracking modifications to the product .
10. The system of claim 1 wherein each user receives a rating upon completion of the project, and wherein the data storage device includes a database storing information relating to the ratings received by the users.
11. The system of claim 10 wherein the administrator interface includes a routine for determining the rating for each user as a function of peer evaluations by the users on the project.
12. The system of claim 10 wherein the administrator interface includes a routine for determining the rating for each user as a function of one or more of the following: peer evaluations from the users on the project; experience on one or more prior projects; sales of product developed by the one or more prior projects; and customer satisfaction with product developed by the one or more prior projects.
13. A method of developing a product, said method comprising the steps of: providing a site on a computer network accessible by a plurality of registered users; defining a project having a plurality of tasks to be completed for developing the product; assembling a team of one or more of the users; assigning a predetermined share value to each of the tasks; assigning one or more of the tasks to one or more of the users on the team; awarding an amount of shares to one o rmore users on the team upon completion of the project based on the assigned share value of each task completed by the respective user; and compensating the users on the team for revenues derived from sales of the product as a function of the amount of shares awarded the users upon completion of the project.
14. The method of claim 13 further comprising the step of storing information relating to the shares awarded the users in a database accessible by the users at the site on the network.
15. The method of claim 13 further comprising the steps of defining one or more parent tasks in the project using a template.
16. The method of claim 15 further comprising the step of subdividing the parent tasks into child tasks, said child tasks having cumulative share values that equal the share values of the parent tasks from which the child tasks are subdivided.
17. The method of claim 15 wherein the step of assembling the team of users includes selecting one of the users as a project manager and wherein the template defines an amount of shares to be received by the project manager upon completion of the project.
18. The method of claim 13 further comprising the steps of tracking changes in allocating share values to the tasks and maintaining historical information relating thereto.
19. The method of claim 13 further comprising the step of tracking modifications to the product using a source control routine.
20. The method of claim 13 further comprising the step of rating each user on the team as a function of peer evaluations by the users on the team.
21. The method of claim 13 further comprising the step of storing the product in an electronic format in a database, said database being accessible at the site on the network by the users on the team for storing respective portions of the product associated with the assigned tasks.
22. A computer information network system for developing a product in an electronic format, said system comprising: a central controller including a server, said server connecting the central controller to a computer network, said central controller further including a data storage device having at least one database storing the product in an electronic format, said product database being accessible on the network by one or more selected users, said product being defined by a project having a plurality of tasks to be completed by the users, each of said tasks being assigned a predetermined share value and said project having a predetermined total share value; and one or more remote computers situated remotely from the local computer and connected to the network, said remote computers each executing a developer interface for communicating with the central controller via the network to permit the users to access the product database.
23. A computer data signal embodied in a carrier wave for facilitating the compensation of one or more participants in a collaborative development effort, the computer data signal comprising: means for organizing a plurality of tasks leading to the completion of the collaborative development effort; means for allocating a limited number of shares to each of the tasks; means for assigning the one or more participants to work on the tasks; and means for distributing to each respective participant of the one or more participants upon completion of the collaborative development effort the shares allocated to each of the tasks assigned to the respective participant.
24. The computer data signal embodied in a carrier wave according to claim 23 wherein the allocating means includes predetermined share assignment for each of the tasks.
25. The computer data signal embodied in a carrier wave according to claim 23 wherein the allocating means includes means for adjusting the limited number of shares allocated to a selected one or more of the tasks.
26. The computer data signal embodied in a carrier wave according to claim 25 wherein the adjusting means includes means for evaluating a technical contribution made by the respective participant on the selected task.
27. The computer data signal embodied in a carrier wave according to claim 23 wherein the assigning means includes a database of potential participants.
28. The computer data signal embodied in a carrier wave according to claim 27 wherein the assigning means includes means for searching the database of potential participants.
29. The computer data signal embodied in a carrier wave according to claim 23 wherein the assigning means includes: means for posting the tasks for review by potential participants; and means for communicating between a project manager of the collaborative development effort and the potential participants.
30. A method of facilitating the compensation of one or more participants in a collaborative development effort, said method comprising the steps of: organizing a plurality of tasks leading to the completion of the collaborative development effort; allocating a limited number of shares to each of the tasks; assigning the one or more participants to work on the tasks; and distributing to each respective participant of the one or more participants upon completion of the collaborative development effort the shares allocated to each of the tasks assigned to the respective participant.
31. The method of claim 30 wherein the allocating step includes assigning predetermined a share value for each of the tasks.
32. The method of claim 30 wherein the allocating step includes adjusting the limited number of shares allocated to a selected one or more of the tasks.
33. The method of claim 32 wherein the adjusting step includes evaluating a technical contribution made by the respective participant on the selected task.
34. The method of claim 30 wherein the assigning step includes searching a database of potential participants.
35. The method of claim 30 wherein the assigning step includes the steps of: posting the tasks for review by potential participants; and communicating between a project manager of the collaborative development effort and the potential participants.
PCT/US2000/027373 1999-10-05 2000-10-04 System and method for collaborative product development WO2001025910A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU79930/00A AU7993000A (en) 1999-10-05 2000-10-04 System and method for collaborative product development

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15776299P 1999-10-05 1999-10-05
US60/157,762 1999-10-05

Publications (2)

Publication Number Publication Date
WO2001025910A1 true WO2001025910A1 (en) 2001-04-12
WO2001025910A9 WO2001025910A9 (en) 2002-11-14

Family

ID=22565171

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/027373 WO2001025910A1 (en) 1999-10-05 2000-10-04 System and method for collaborative product development

Country Status (2)

Country Link
AU (1) AU7993000A (en)
WO (1) WO2001025910A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533034B2 (en) 1999-07-20 2009-05-12 Brainbank, Inc. Idea management
WO2010118472A1 (en) * 2009-04-17 2010-10-21 Stsa Australia Pty Ltd System and method for automated skills assessment
US7840673B1 (en) * 2002-06-17 2010-11-23 International Business Machines Corporation Method and apparatus for management of hosted applications
US20130060651A1 (en) * 2011-09-01 2013-03-07 Ram Sarma Konduri Method and system for web based job portal
US20150066971A1 (en) * 2013-08-29 2015-03-05 International Business Machines Corporation Accelerating collaboration in task assignment by using socially enhanced model
US9507609B2 (en) 2013-09-29 2016-11-29 Taplytics Inc. System and method for developing an application
US10176458B2 (en) 2015-12-04 2019-01-08 International Business Machines Corporation Natural language processing based monitoring and resolution of open technical issues
CN116700771A (en) * 2023-08-04 2023-09-05 深圳代码兄弟技术有限公司 Remote development management method, remote development management apparatus, and readable storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0485934A1 (en) * 1990-11-16 1992-05-20 Alcatel Cit Software development procedure

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0485934A1 (en) * 1990-11-16 1992-05-20 Alcatel Cit Software development procedure

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHANG K H ET AL: "SOFTWARE DEVELOPMENT AND INTEGRATION IN A COMPUTER SUPPORTED COOPERATIVE WORK ENVIRONMENT", SOFTWARE PRACTICE & EXPERIENCE,GB,JOHN WILEY & SONS LTD. CHICHESTER, vol. 28, no. 6, 1 May 1998 (1998-05-01), pages 657 - 679, XP000749025, ISSN: 0038-0644 *
GORTON I ET AL: "COLLABORATIVE TOOLS AND PROCESSES TO SUPPORT SOFTWARE ENGINEERING SHIFT WORK", BT TECHNOLOGY JOURNAL,GB,BT LABORATORIES, vol. 15, no. 3, 1 July 1997 (1997-07-01), pages 189 - 198, XP000722028, ISSN: 1358-3948 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533034B2 (en) 1999-07-20 2009-05-12 Brainbank, Inc. Idea management
US7840673B1 (en) * 2002-06-17 2010-11-23 International Business Machines Corporation Method and apparatus for management of hosted applications
WO2010118472A1 (en) * 2009-04-17 2010-10-21 Stsa Australia Pty Ltd System and method for automated skills assessment
US20130060651A1 (en) * 2011-09-01 2013-03-07 Ram Sarma Konduri Method and system for web based job portal
US20150066971A1 (en) * 2013-08-29 2015-03-05 International Business Machines Corporation Accelerating collaboration in task assignment by using socially enhanced model
US20150067043A1 (en) * 2013-08-29 2015-03-05 International Business Machines Corporation Accelerating collaboration in task assignment by using socially enhanced model
US9507609B2 (en) 2013-09-29 2016-11-29 Taplytics Inc. System and method for developing an application
US10169057B2 (en) 2013-09-29 2019-01-01 Taplytics Inc. System and method for developing an application
US10176458B2 (en) 2015-12-04 2019-01-08 International Business Machines Corporation Natural language processing based monitoring and resolution of open technical issues
CN116700771A (en) * 2023-08-04 2023-09-05 深圳代码兄弟技术有限公司 Remote development management method, remote development management apparatus, and readable storage medium
CN116700771B (en) * 2023-08-04 2023-12-12 深圳代码兄弟技术有限公司 Remote development management method, remote development management apparatus, and readable storage medium

Also Published As

Publication number Publication date
WO2001025910A9 (en) 2002-11-14
AU7993000A (en) 2001-05-10

Similar Documents

Publication Publication Date Title
US8499278B2 (en) System and method for software development
US20080196000A1 (en) System and method for software development
US7200571B1 (en) Computerized auction system for use with multiple purchasing media
US7080117B2 (en) System and method for exchanging creative content
US8560366B2 (en) Technology sharing during demand and supply planning in a network-based supply chain environment
US20010037241A1 (en) System and method for providing e-commerce based on a reward currency
US20030093322A1 (en) Automated system and method for managing a process for the shopping and selection of human entities
US20020147625A1 (en) Method and system for managing business referrals
US20020120461A1 (en) System and method for facilitating business relationships and business solution sales
CA2431786A1 (en) A distributed communication system for online sales
JP2009534736A (en) Network-based information technology solution development management system and method
US20040167796A1 (en) Systems and methods for network-based design review
US20100174603A1 (en) System and Method for Advertising Placement and/or Web Site Optimization
US20070282904A1 (en) Online referral system and method of use
US20010042038A1 (en) Method and system for conducting an auction for resources
WO2001025910A1 (en) System and method for collaborative product development
WO2000050967A2 (en) Computer system and methods for trading information in a networked environment
US11049057B2 (en) Systems and methods for providing a marketplace for accessories of a business automation system
Van Der Heijden Ubiquitous computing, user control, and user performance: conceptual model and preliminary experimental design
Fauska Business strategies and B2B E-Commerce opportunities of global narrow specialized companies
Gareis et al. Virtualisation of Labour Market Transactions: Technological Potential and Status Quo
Wijers IT Outsourcing Part 1: Contracting the Partner
AU2007221836B2 (en) System and method for incentivizing online sales
Lee The adoption and impact of inter-organizational information systems: An empirical study of the property and casualty insurance market
UGANDA THE ADOPTION INFORMATION AND COMMUNICATION TECHNOLOGIES (ICTs) IN SMALL AND MEDIUM ENTERPRISES IN UGANDA

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

AK Designated states

Kind code of ref document: C2

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP