- How do I...
-
| Category |
Featured projects |
| scm |
Subversion,
Subclipse,
TortoiseSVN,
RapidSVN
|
| issuetrack |
Scarab |
| requirements |
xmlbasedsrs |
| design |
ArgoUML |
| techcomm |
SubEtha,
eyebrowse,
midgard,
cowiki |
| construction |
antelope,
scons,
frameworx,
build-interceptor,
propel,
phing
|
| testing |
maxq,
aut
|
| deployment |
current |
| process |
ReadySET |
| libraries |
GEF,
Axion,
Style,
SSTree
|
| Over 500 more tools... |
|
On Friday, May 18, the normal maintenance window (17:00 Pacific time) will be extended for data center maintenance until 23:00 Pacific. No extended down-time is planned, but brief delays and interruptions are possible throughout the period.
Key Open Source "Best Practices"
supported in the Tigris project
|
Technical Communication |
|
Software developers spend a large part of their time communicating
with each other. Clear and effective technical communications
are needed to keep the team in synch and
to allow individuals with key knowledge to apply that
knowledge where it is
needed.
One tenet of the open source community is that techincal communications
should take place in public forums. Mailing lists are the
backbone of open source communications. Beyond that, open source
projects need support for precisely communicating technical details and
for group decision-making. |
| Version Control,
Document Management, and Distribution |
|
Every software
development project needs version control.
Open source projects need strong and flexible support for many
concurrent developers working on overlapping sets of files. Open
source projects also need standard templates for design documents,
technical documentation, and end user documentation.
A well organized web site is required to distribute these documents. But, the nature of open source
projects demands that these files are globally accessible, and that
administrative overhead be minimized and responsibility be spread
out over the members of the development
community.
|
| Quality Assurance |
|
Open source software products have achieved a remarkable degree of
quality. This is something that the closed source development world
has found to be one of the most difficult and costly aspects of software
development.
Open source software is high quality for three main reasons:
- Developers are self-selected by their interest andknowledge of the
application domain,
- requirements are tacitly understood by developers who
are themselves users of the software,
- technical communications (including bug
reports) are conducted in public. The public nature of open source helps
developers take pride in their successes and think twice before
releasing faulty code.
Furthermore, debugging is an activity that is
more effective when split among many people who have diverse
knowledge |
| Build and Test Management |
|
Development activity on open source projects is constant and concurrent
among many developers. Sometimes the changes made by one developer
interfere with those made by another developer.
Often the version control practices used in the open source community
resolve these conflicts, but sometimes they do not. Frequent automated
builds and tests of the software being developed are powerful tools that
help catch logical conflicts early |
| Project Management |
|
Every project needs explicit goals, resources, and a
schedule.
The open source community has addressed these issues in a uniquely
flexible way. Shared "to do" lists keep track of tasks that need to
be done. Personal "to do" lists keep developers on track.
Milestone lists set flexible deadlines for individual features based on
feedback from users and developers |
| Knowledge Management |
|
Knowledge is the valuable resource that sets experienced developers
apart from novice ones.
Sharing knowledge effectively has been key to the success of the open source community.
Explicitly managing knowledge can help reduce the learning curve
for novices which reduces the barriers to entry for potential
contributors while automatically keeping the load on the experts down to a
minimum in terms of training others.
|
|