devel-ideal-proj.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 22 Feb 2016 12:46:36 +0200
changeset 1905 fba288d59662
parent 1417 dbc31accad4a
child 1912 8b81a8f0f692
permissions -rw-r--r--
Include only local subsections into TOC. This prevent duplication of TOC when build single page HTML document. Also this make unnecessary CSS hack to hide document title as top level section.

.. -*- coding: utf-8; -*-
.. include:: HEADER.rst

=====================================
 Ideal software development project.
=====================================
.. contents::
   :local:

About ideal software development model.
=======================================

This file mainly discuss about open source software project.

Open source.
============

Open source software project have freedom on how organise project workflow and
which development toolchains to use.

Close source.
=============

Close source projects have proprietary nature because of:

 * interest to make money (another parties can not easily reproduce project to
   get monopoly on market)
 * low code quality (to stop stain company good name or to stop malicious
   attacks based on code analysis)
 * security consideration (to hide protocols and data format to make harder
   malicious attack)
 * business model (closed data formats allow vendor lock)

Disadvantages of closed source project (in many case):

 * you can not directly contact with developers (only through support)
 * low support quality (supported ugually don't have tech skills)
 * paid support (and you have no enough money)
 * can not access to product bug tracing system (you only can submit bug via
   crash report application or technical support; publishing internal bugs can
   damage product reputation)

Component of software project.
==============================

 * Sources.
 * Documentation.
 * Version control system (VCS).
 * Bug tracking system (BTS).
 * Project news/history/changelog.

Project home page.
==================

Project home page must provide:

 * project name
 * short info about project goal
 * project license
 * current project status
 * links to binary release
 * links to source release, how to get latest source from VCS
 * links to online/printed docs
 * how report bug (BUGS)
 * where send patch
 * contact info

Additionally:

 * help welcome, requirement to join to project
 * mail/news list for users/developers, how to subscribe/unsubscribe, where
   find archive, how search for keyword in archive
 * project history (NEWS, ChangeLog)
 * project policy (HACKING)
 * how build project (README, INSTALL)
 * list of contributor with contact info (MAINTAINERS, AUTHORS)
 * who use project

Docs.
=====

TODO

VCS.
====

TAGS: VCS, version control system, SCM, source code management, DVCS,
      distributed version control system.

 * CVS
 * SVN
 * Mercurial (hg)
 * git
 * bazaar