Project Management Technology Review: SourceForge Date: [submission date] Copyright (c) 2000 Frank V. Castellucci All Rights Reserved 1 Overview The intent of this document is to provide feedback from analysis of products that are comparable to the general goals of the project. The focus is on key technological areas with an overriding concern in regards to role collaboration capability. 2 Product/Service Profile 2.1 Name of offering SourceForge 2.2 Publisher/Author/Service-provider VA Linux 2.3 URL for more information http://sourceforge.net 2.4 Type - one or more of local client, client/server, web service, etc. SourceForge is a web-service which provides free hosting for open source software (OSS) project management. 2.5 Pricing/Availability Free hosting for Open Source Software (OSS) projects. The SourceForge source code is itself OSS complient and available for download and personalization. 2.6 Assessment based on hands-on experience or info-only? Hands on, I am the project originator for two open source projects and belong to one other that seems to have died on the vine (the originator has fallen off the face of the earth). 2.7 Reviewer comments Its free, it works, and it can use work. Should be considered for a quick implementation alternative to get a presence going. In the long run, the lack of an object layer and the fact that this project is being driven towards higher level functionality, render the SourceForge current code base untenable. 3 System Constraints 3.1 Physical Limitations System resources, MySQL limits. 3.2 Software Limitations (operating systems, plug-ins, drivers) Server: PHP, MySQL, Client: Web-browser 3.3 Implementation Limitations (number of projects, tasks per projects, users, roles) Limited only by the underlying technology (system resources, MySQL, PHP) 3.4 Does the software assume a specific project management methodology, if so which one(s)? Not applicable. 3.5 Reviewer Comments SourceForge is currently hosting 7,000 projects with 42,000 registered users. It is reasonably responsive on a 56k line. Scalability and performance with the addition of higher level functionality is unknown. 4 Collaboration 4.1 What is the interaction model? (Real-time dynamic views, publish/subscribe, email, user queries, etc.) Real time views of project states (PHP with MySQL), publish and subscribe events for various tools in the environment, mailing lists, pre-canned parametric searches. 4.2 When used in project planning mode, is team communication supported? The Task Manager model used by SourceForge allows tasks to be annotated with comments. There is no notification capability to alert anyone to changes. 4.3 When used in project monitoring mode (more modest a target than project management), how is team member interaction handled? ('project-manager-centric' or peer interaction; is there an ad hoc issue management facility, etc.) Collaborations are relevant to the tools being used in SourceForge: +-----------------+----------------------------------------------------- -----------------------------------+ | Tool | Collaboration | +-----------------+----------------------------------------------------- -----------------------------------+ | Forums | Reply to message, forum can be monitored enabling e-mail notification for new messages | +-----------------+----------------------------------------------------- -----------------------------------+ | Mailing Lists | E-mail based interchange | +-----------------+----------------------------------------------------- -----------------------------------+ | Bug Tracking | Add comment to entry, changes made can be posted to e-mail | +-----------------+----------------------------------------------------- -----------------------------------+ | Task Manager | Add comments to entry | +-----------------+----------------------------------------------------- -----------------------------------+ | Support Manager | Add comment to entry, changes made can be posted to e-mail | +-----------------+----------------------------------------------------- -----------------------------------+ | Project News | Add news items to project page. | +-----------------+----------------------------------------------------- -----------------------------------+ 4.4 What are the 'key indicators' used to keep project team members and stakeholders informed of the state of the project? There is no "indicator" as to the overall state of a SourceForge hosted project. instead, individual areas and sub-elements have state based on the toolset to which they belong. +-----------------+----------------------------------------------------- ----------------------------------+ | Tool | Key Indicator | +-----------------+----------------------------------------------------- ----------------------------------+ | Defects | Bold typeface used if greater than 30 days | +-----------------+----------------------------------------------------- ----------------------------------+ | Tasks | Bold typeface used if task is still open beyond projected completion date | +-----------------+----------------------------------------------------- ----------------------------------+ | Support Entry | Bold typeface used if greater than 15 days | +-----------------+----------------------------------------------------- ----------------------------------+ | Project Summary | Contains instrumentation as to the open and total counts of the individual tool area. | +-----------------+----------------------------------------------------- ----------------------------------+ 4.5 Does the product or service's concurrency features facilitate or hinder team member collaboration? It is a reasonable facilitator. 4.6 Security features All SourceForge users must log in to be allowed comment, posting, annotations, etc. The project administrator can limit the visibility of the tools to only those that are designated as team members. The project administrator can limit the accessability of project objects on a per team member basis. 4.7 Reviewer Comments The current implementation suffers from a lack of continuity between the project, tools, and the stakeholders. The Task Manager seems the likely place for more collaborative tools, but sadly lacks any. Functionality is being added to "patch" some of these problems but lack the "feel" of coherinse throughout the project. 5 Role Support A Role characterizes the system participants of in terms of responsibility. A role can be people or other systems. For example, a developer is a role that has different responsibility than a SQA tester. In this section, we will provide what provisions the system under review provides for describing the person/role, and what processing rules that it may imply. 5.1 What is the 'person/role' model? SourceForge pre-defines four (4) roles: * Project Administrator - Can administer all aspects of the project. * Technician - can be assigned Bugs, Tasks, Support and Patches * Tool Administrator - All the permissions of Technician, and can administer changes to the specific tool area where assigned. * Editor - Can update, edit, and remove documentation in the Documentation Manager. These assignments are set for individuals that are part of the project team. There is no notification given to the person(s) when their roles change. 5.2 How are 'person/role' elements related to 'organization/group' elements? Outside of the pre-defined roles, the functionality of organizational roles are not supported. 5.3 Can one person fill many roles? Can one role be filled by many person? (resource/skill pools, etc.) On a per tool basis in the context of a project, one member can have different role access based on the tool areas. So, while a person can be the Administrator of the message forums, they may only be the Technician for BugTracking. There is no organization of resources. 5.4 Reviewer Comments SourceForge, historically, has had more of a project management as it relates to the implementation phase of development, rather than a project management as exists across the full life cycle perspective. The staff is making changes to enable more useful features for the latter, but there does not seem to be an indication that SDLC Roles are being addressed. 6 Concurrency Concurrency is defined by the implementations locking and transaction model. As such, the granularity of the locking will determine the liveliness of the system. The finer the granularity of locking, the more lively the interactions may be. Another aspect of concurrency is in regards to work-flow and the transaction model, does the system support "conversational or long-term transactions" for example. 6.1 Single or multi-user SourceForge support multiple users that can participate in zero or more projects concurrently with other logged on users. 6.2 What is the implementation technology supporting concurrency? World Wide Web provides the concurrent access to the system, MySQL provides concurrency support on object tuples, CVS provides concurrency for project files (source, web pages, etc.). 6.3 Revision Management SourceForge uses CVS for project files as subjectively identified. The system is backed up nightly, in addition to the projects CVS tree being tarred for download on the same schedule. 6.4 Reviewer Comments Given the implementation, the concurrency and liveliness of the project activity is mainly focused on the CVS "check-in" model for development objects. 7 Accessability In this section, we wan't to capture how accessable the system is from both a human interaction capability as well as support for the interchange of information from other systems. 7.1 Web-based Yes. In addition, each project member is given a shell account on it's Linux servers. The shell account supports file exchange using SSH tunnels through TCP/IP. 7.2 Interchanges support (MS Project, XML, RDF, etc.) None at this time, although the group has started architectural investigations such as the implementation of an object supporting client applications. 7.3 Import/Export (MS Project, text, etc.) Functionality not available for cross product exchanges. CVS supports imports of existing CVS repositories. 7.4 Mobile Users Any web accessable interface is supported. 7.5 Reviewer Comments 8 Project Proposal Management Is there a business processing rule that supports the tenet that before a project there is a proposal? If so, what are the processing rules that govern it's description and acceptance? 8.1 Vision/Goals specification User defined, not a feature supported by the system. 8.2 Business Processing Rules User defined, not a feature supported by the system. 8.3 Implementation Specific Rules Not applicable. 8.4 Reviewer Comments Nothing to comment on. 9 Requirements Management The tasks of creating a software system are usually (but not always) bound to initial requirements elucidated by analysis of the problem space. To what extent, if any, does the system under review support the requirement phase of the Software Development Life Cycle (SDLC)? 9.1 Documentation Controls While a Documentation Manager function has recently been added to SourceForge, there is no relationship (other than subjectively defined by the project team) to requirements engineering. 9.2 Relationship to Task Management Functionality does not exist. 9.3 Implementation Specific Rules Functionality does not exist. 9.4 Business Processing Rules Functionality does not exist. 9.5 Reviewer Comments Nothing to comment on. 10 Task Management 10.1 What is the 'activity/task' model? SourceForge has a flat task model which provides the ability to create multiple Task Lists per project. There is no way to define relationships between any two (2) tasks lists. 10.2 How are roles related to activity/tasks? Tasks can be arbitrarily assigned to any one (1) of the team members, even if that team member does not have the permission to modify the tasks. 10.3 Is the product/service 'project-manager-centric' or can team members extend and/refine the plan within the realm of their own activity? If the team member is assigned at least Tool Administrator authorization, they can modify any aspect of that tool where granted. This includes changing the Topic/Title, assignments, dependencies, due date, work completed percent, and hours. 10.4 Views: Predefined, user-configurable or both Task lists are viewed with a locus of the task group they belong to, or on a individual detailed page. The user can decide to sort the task list view by 10.5 Status reporting mechanisms (percent complete reports, 'flag-raising' or issue management features) Tasks can be marked as Open, Closed, or Deleted. 10.6 How are consumable/required task-specific resources handled? Functionality does not exists. 10.7 Reviewer Comments The lack of multiple resources assignments per task, calendaring, summary tasks, constraints, milestones, critical path specification, and reporting make this nothing more than a glorified to-do list. This is a poor model for Task models. Having conversed with the lead developer concerning these issues (prior to Project 24), they (SourceForge) have the benefit of some earlier work on Project Planning that I have done. The results of that work are unknown. 11 Task Constraints 11.1 Task Dependency Internal (intra-project) Within a SourceForge project, the TaskManager allows you to create multiple project plans. While you can assign multiple dependents of other tasks within the same group, it is not semantically enforced, you can not assign dependents on tasks in other project plans within the scope of the high level project. 11.2 Task Dependency External (inter-project) Functionality not available. 11.3 Resource constraints (expressed as percentage) Functionality not available. 11.4 User defined constraints Functionality not available. 11.5 Reviewer Comments Nothing to comment on. 12 Reporting 12.1 Pre-defined, user-defined or both Reporting is limited to regular tools display. There is some sorting options, but no filtering per say. For the remainder of the system, SourceForge itself has instrumentation (suspect at best, and I am on record for saying as much) for Activity, Page Hits, Downloads, and Message counts. Cookies track the last configuration on a per-member basis where applicable. 12.2 Publisher-push by project manager or team member dynamic views? Functionality not available. 12.3 Stakeholder-specific views? Members of the project can access tools (report views if you will) that are marked private for the team. There is no difference between the views a non-team member and team members see in this regard. 12.4 Multi-project analysis Functionality not available. 12.5 What-if analysis Functionality not available. 12.6 Security features Functionality not available outside of marking a tool area private. 12.7 Reviewer Comments Nothing to comment on other than there really is no report and analysis subsystem/function. 13 Multi-project Management 13.1 Role Template library? SourceForge has a system wide, hard-coded idea of the Roles involved in a project. Said roles include Administrator, Tools Administrator, Technician, Editor, and None. These assignments to an individual are on a per-project basis only. 13.2 Repetitive Task library? Functionality not available. 13.3 Reviewer Comments Nothing to comment on. 14 Post Mortem It is often desirable to look back upon a completed project and enumerate what problems arose, the quality of how they were handled, and a gauge to the positive or negative effect on the baseline plan. This is primarily used as an quality accounting about the software development process. 14.1 Analysis and Reporting Functionality not available. 14.2 Is there an interface to a 'reputation-building' rating system for team members? If so, is there a 'disputed assessment' system to resolve conflicting opinions. Functionality not available. 14.3 Review Comments Nothing to comment on. 15 Subjective Impressions 15.1 User Interface: Strengths/Weaknesses Reasonable for the functionality and model it represents. 15.2 Project Modeling: Strengths/Weaknesses Project Modeling, or the lack there-of, is it's weakness. 15.3 Technology Platform: Strengths/Weaknesses A full featured project management offering can not be accomplished with just PHP/HTML and a good RDBMS. It requires intelligent objects that can maintain state, respond to events and changes, and acknowledge dynamic domain constraints. 15.4 Overall 'Wow' factor: 1 (low) to 5 (high) SDLC = 0.5, Project Planning = 1, Project Management = 2, Product Development = 4, Product Maintenance = 4 15.5 Reviewer Comments While the body of this analysis would suggest that SourceForge is sub-standard in regards to SDLC functionality requirements, it should not be dismissed as being without value. SourceForge was one of the first available resources open to the public, and specifically geared at supporting the Open Source developer. At the time, the open source developer could only be described as the part-time, add code where I can, devoted, and distributed individual. In this regard, SourceForge is unequaled. The collaborative mechanisms fit nicely with the current mailing-list or off host chat discussions to synchronize efforts. SourceForge has done a good job at addressing the tools required for implementation and maintenance of project code, keystones of the Open Source movement, and in this regards it's features must be considered as valuable in a full life cycle suite offering. We must never loose sight that there is a reason for a project plan, and that is to develop, build, and deliver software. A recent "bell" that was added, and has significant value in the open source evolution, is the Jobs Board. Project administrators can post a "help wanted" here for almost every skill set. This is a great gateway to get more then just the "developer" involved in open source projects.