This came from a brainstorm meeting around “What would be in the perfect development server?” Each member of a team of people developing a software product would have their own desktop (or laptop) computers, and there would be a server to coordinate their actions. What would be on that server?
We assume that it would be
- made almost exclusively of open source software.
- would not have dependencies on exotic technology, such as expensive database.
- packaged together and easy to download and install
- robust and reliable
- integrated access control and user id, secure, able to be hosted on the Internet.
It would have the following capabilities
- Requirement management application, allows for entering requirement, multi-user rating of them, entering estimates, approval cycles, subsets for release consideration, sorting and filtering of sets, totaling, combining multiple ratings with different weights, many reports and table exports.
- Source Management: Subversion, that is easy.
- Change Browsing: a web based ability to see all checkins, descriptions of fixes, and diffs of files.
- Code review: ability to comment on code, tags parts of code as bugs, allows others anywhere in the world see the comment with the code. Ability to maintain comments even as the source code is modified. Ability to check off comments when the issue is resolved.
- Bug tracking system: web based, REST, ability to link to bug reports
- Document storage, versioning
- Wiki for quick easy documentation within the team
- Discussion Forum
- Automated build and test, developers can do their own build, but the automated continuous integrations builds would be on the server.
- Statistics on past commits, builds, test runs. A place for testers to enter results of manual testing.
- Auto testing … local test runs would report results to the server statistics.
- Links for specialized tools
- DITA document generation from XML to PDF and web formats
- Configuration management
- installer tools