Notes on The Open-Source Community

Unix Standards

Unix standards originally developed to reconcile the APIs of the different branches of the family tree.

Later, during the Unix wars, technical standardization became something that cooperating technical people pushed for and most product managers accepted grudgingly or actively resisted.

In fact, on the the newer open-source Unixes (such as Linux) it is common for operating system features to have been engineered using published standards as the specification.

RFC (A Request for Comments ) Standard

The IETF Standards process is designed to encourage standarization driven by practice rather than theory, and to ensure that standard protocols have undergine rigorous peer review and testing.

The IETF (The Internet Engineering Task Force) Standards Process:

Internet-Drafts (focal points for discussion in a working group)
-> RFC (correct field experience with the specification)
-> Proposed Standards (the specification must be stable, peer-reviewed, and significants interests)
-> Draft Standard (the specification is mature and will be useful)
-> Internet Standard

Specifications as DNA, code as RNA

The Unix tradition's emphasis on modularity makes Unix programmers usually to scrap and rebuild. The IETF tradition teaches us to think of code as secondary to standards. The IETF showed us that careful standardization is to capture the best of existing practice.

Experience, and a strong tradition of collaborative development, had already taught Unix programmers that prototyping and repeated cycles of test and re-specification are a better way.

This standards-come-first scrap-and-rebuild culture of Unix tends to yield better interoperability over extended time than perpetual patching of a code base without a standard or to provide guidance and continuity.

Open standards and Open source

Open-source implementations of a published standard can both tremendously reducing your coding workload. With open-source code, you have a path forward, because you have access to source code, you can forward-port it to new platforms if you need to .

Practice defensive design - build on open source.

Documentation - Explaining your code to A web-centric World

Open Source - Programming in the Unix Community

Most contributors in Open-source development are volunteers contributing in order to be rewarded by the increased usefulness of the software to them, and by reputation incetives, thus Process transparency and peer review are the crucial steps in the open-source development.

reference