Differences between revisions 23 and 25 (spanning 2 versions)
Revision 23 as of 2009-03-13 11:46:36
Size: 12378
Editor: hughszg
Comment:
Revision 25 as of 2009-03-16 03:31:53
Size: 12636
Editor: anonymous
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
||<tablewidth="100%"style="border: 0px hidden ;">~-''Translation(s): [:WhyDebianForDevelopers:English] - [:zh CN/WhyDebianForDevelopers:简体中文]''-~ ||<style="border: 0px hidden ; text-align: right;"> (!) ["/Discussion"] ||
[[TableOfContents()]]
||<tablewidth="100%"style="border: 0px hidden ;">~-''Translation(s): [[WhyDebianForDevelopers|English]] - [[zh_CN/WhyDebianForDevelopers|简体中文]]''-~ ||<style="border: 0px hidden ; text-align: right;"> (!) [[WhyDebianForDevelopers/Discussion|Discussion]] ||
Line 6: Line 5:
= 我的编程技术适用于Debian项目吗? =
这要依开发者的性格和技术而定。
<<TableOfContents>>
Line 9: Line 7:
首先,问问你自己为什么想要向一个自由软件项目做贡献。 [26], [27] = Is the Debian Project a home for my programming skills? =
It depends on your developer characteristics and skills.
Line 11: Line 10:
为了取得最佳结果和效果,性格最好是以下列出的组合。 First, ask yourself why do you want to contribute to a free (libre) software project? [26], [27]
Line 13: Line 12:
有些人感觉参加不同社会环境下社区更自在一些[31]。但尽管如此,你还是应该为Debian项目做些贡献以改进其它FLOSS项目[30]。Debian项目是许多发行版的“上游”项目。许多Debian开发者也直接向上游项目做贡献,所有的Debian开发者甚至是间接地做贡献。 For maximum results and satisfaction, it is better to have a combination of the characteristics listed below.
Line 15: Line 14:
== 想以正确的方式做事 ==
You have pride of your well done work.
Some people feel more comfortable being involved in other communities, with different social environments [31]. But even so, you should contribute to the Debian Project to improve other FLOSS projects [30]. The Debian Project is like an "upstream" project for many distributions.
A number of Debian developers directly contribute to upstream projects as well, and all Debian developers contribute at least indirectly.
Line 18: Line 17:
No low quality short cuts. == Want to do things the right way ==
You have pride of your well done work.
Line 20: Line 20:
Do not want ugly hacks in a hurry only to meet a deadline date. No low quality short cuts.
Line 22: Line 22:
No lazy programming. Do not want ugly hacks in a hurry only to meet a deadline date.

No lazy programming.
Line 29: Line 31:
You want to create high quality solutions [9]. You want to create high quality solutions [9]. 
Line 31: Line 33:
The highest standards attainable. The highest standards attainable. 
Line 35: Line 37:
== 每天都想学很多东西 ==
你不怕在发问之前阅读大量的文档。你以前也做过家庭作业的。
Line 38: Line 38:
为了学习不同的方法你不怕向其它开发者求助。 == Want to learn a lot every day ==
You are not afraid of reading really LOTS of documentation before asking. You do your homework before.
Line 40: Line 41:
你愿意尝试不同的编程方案,and not afraid of unorthodox ways of thinking. You are not afraid of asking for help and hints from other developers to learn different approaches.

You are willing to try different programming solutions, and not afraid of unorthodox ways of thinking.
Line 54: Line 57:
You may like and practice radical sports. Or defend unusual ways of living, politics, religions, etc. It does not matter at Debian Project (written in the Debian Social Contract [0]). You may like and practice radical sports. Or defend unusual ways of living, politics, religions, etc. It does not matter at Debian Project (written in the Debian Social Contract [0]). 
Line 68: Line 71:
Line 87: Line 91:
= Debian项目对开发者来说有什么优点? =
The WhyDebian page will explain this to you. And more.
Line 90: Line 92:
== 社会契约 == = What are Debian Project advantages for a developer? =
The [[WhyDebian]] page will explain this to you. And more.

== Social Contract ==
Line 101: Line 106:
 * You will not work for free for a company.  *You will not work for free for a company.
Line 146: Line 152:
Your proposed solution will very likely receive corrections, some of which may be extensive. The other developers want the best solution. And will discuss solutions extensively before implementation when needed. It is not about you. Your proposed solution will very likely receive corrections, some of which may be extensive. The other developers want the best solution. And will discuss solutions extensively before implementation when needed. It is not about you. 
Line 152: Line 158:
= 有用的链接 =
 * [0] Debian Social Contract http://www.debian.org/social_contract
 * [1] http://robitaille.wordpress.com/2007/05/02/going-from-c-to-c-the-fine-ubuntu-line-between-commercial-and-community/
 * [2] Progeny Linux went out of business http://www.osnews.com/story.php/17820/Progeny-Linux-Shuts-Down/
 * [3] Constitution for the Debian Project http://www.debian.org/devel/constitution
 * [4] Debian Voting Information http://vote.debian.org
 * [5] Debian Community Guidelines http://people.debian.org/~enrico/dcg/index.html
 * [6] Debian minimal mailing list code of conduct http://www.debian.org/MailingLists/#codeofconduct
 * [7] Debian Policy http://www.debian.org/doc/debian-policy
 * [8] Debian Developer Corner http://www.debian.org/devel/
 * [9] Debian Quality Assurance team http://qa.debian.org/
 * [10] Debian Mentors http://mentors.debian.net
 * [11] Debian mentors mailing list http://lists.debian.org/debian-mentors/
 * [12] Five geek social fallacies http://sean.chittenden.org/humor/www.plausiblydeniable.com/opinion/gsf.html
 * [13] Asperger's syndrome http://en.wikipedia.org/wiki/Asperger_syndrome
 * [14] Aspires : Climbing the mountain together http://www.aspires-relationships.com/articles_social_skills.htm
 * [15] The Emerging Economic Paradigm of Open Source. http://www.perens.com/Articles/Economic.html
 * [16] Meritocracy http://en.wikipedia.org/wiki/Meritocracy
 * [17] Debian New Maintainers' Corner http://www.debian.org/devel/join/newmaint
 * [18] New Maintainers site http://nm.debian.org
 * [19] Auto-apt http://packages.debian.org/stable/admin/auto-apt
 * [20] Dpatch http://packages.debian.org/stable/devel/dpatch
 * [21] Fakeroot http://packages.debian.org/stable/utils/fakeroot
 * [22] Debhelper http://packages.debian.org/stable/devel/debhelper
 * [23] Creating packages for Debian http://wiki.debian.org/HowToPackageForDebian
 * [24] Create multiple binary packages from one source http://wiki.debian.org/PkgSplit
 * [25] Will Open Source Developers be Well Paid? http://itmanagement.earthweb.com/career/article.php/11067_3687096_1
 * [26] The Economic Motivation of Open Source Software: Stakeholder Perspectives http://www.riehle.org/computer-science/research/2007/computer-2007-article.html
 * [27] Two Questions for All Serious Free Software Contributors http://etbe.coker.com.au/2007/08/08/two-questions-for-all-serious-free-software-contributors/
 * [28] FUN: How Nerdy Are You? http://www.blogthings.com/hownerdyareyouquiz/
 *
[29] Scientific study about Debian Project governance and social organization http://techforce.com.br/index.php/news/linux_blog/scientific_study_about_debian_governance_and_organization
 * [30] Ubuntu developers should contribute to Debian development https://wiki.ubuntu.com/ContributingToDebian
 * [31] A New User Guide to Linux Communities http://linux-blog.org/index.php?/archives/247-A-New-User-Guide-to-Linux-Communities.html
= Useful links =
 *[0] Debian Social Contract http://www.debian.org/social_contract
 *[1] http://robitaille.wordpress.com/2007/05/02/going-from-c-to-c-the-fine-ubuntu-line-between-commercial-and-community/
 *[2] Progeny Linux went out of business http://www.osnews.com/story.php/17820/Progeny-Linux-Shuts-Down/
 *[3] Constitution for the Debian Project http://www.debian.org/devel/constitution
 *[4] Debian Voting Information http://vote.debian.org
 *[5] Debian Community Guidelines http://people.debian.org/~enrico/dcg/index.html
 *[6] Debian minimal mailing list code of conduct http://www.debian.org/MailingLists/#codeofconduct
 *[7] Debian Policy http://www.debian.org/doc/debian-policy
 *[8] Debian Developer Corner http://www.debian.org/devel/
 *[9] Debian Quality Assurance team http://qa.debian.org/
 *[10] Debian Mentors http://mentors.debian.net
 *[11] Debian mentors mailing list http://lists.debian.org/debian-mentors/
 *[12] Five geek social fallacies http://sean.chittenden.org/humor/www.plausiblydeniable.com/opinion/gsf.html
 *[13] Asperger's syndrome http://en.wikipedia.org/wiki/Asperger_syndrome
 *[14] Aspires : Climbing the mountain together http://www.aspires-relationships.com/articles_social_skills.htm
 *[15] The Emerging Economic Paradigm of Open Source. http://www.perens.com/Articles/Economic.html
 *[16] Meritocracy http://en.wikipedia.org/wiki/Meritocracy
 *[17] Debian New Maintainers' Corner http://www.debian.org/devel/join/newmaint
 *[18] New Maintainers site http://nm.debian.org
 *[19] Auto-apt http://packages.debian.org/stable/admin/auto-apt
 *[20] Dpatch http://packages.debian.org/stable/devel/dpatch
 *[21] Fakeroot http://packages.debian.org/stable/utils/fakeroot
 *[22] Debhelper http://packages.debian.org/stable/devel/debhelper
 *[23] Creating packages for Debian http://wiki.debian.org/HowToPackageForDebian
 *[24] Create multiple binary packages from one source http://wiki.debian.org/PkgSplit
 *[25] Will Open Source Developers be Well Paid? http://itmanagement.earthweb.com/career/article.php/11067_3687096_1
 *[26] The Economic Motivation of Open Source Software: Stakeholder Perspectives http://www.riehle.org/computer-science/research/2007/computer-2007-article.html
 *[27] Two Questions for All Serious Free Software Contributors http://etbe.coker.com.au/2007/08/08/two-questions-for-all-serious-free-software-contributors/
 *[28] FUN: How Nerdy Are You? http://www.blogthings.com/hownerdyareyouquiz/   *[29] Scientific study about Debian Project governance and social organization http://techforce.com.br/index.php/news/linux_blog/scientific_study_about_debian_governance_and_organization
 *[30] Ubuntu developers should contribute to Debian development https://wiki.ubuntu.com/ContributingToDebian
 *[31] A New User Guide to Linux Communities http://linux-blog.org/index.php?/archives/247-A-New-User-Guide-to-Linux-Communities.html

Translation(s): English - ?简体中文

(!) ?Discussion

Is the Debian Project a home for my programming skills?

It depends on your developer characteristics and skills.

First, ask yourself why do you want to contribute to a free (libre) software project? [26], [27]

For maximum results and satisfaction, it is better to have a combination of the characteristics listed below.

Some people feel more comfortable being involved in other communities, with different social environments [31]. But even so, you should contribute to the Debian Project to improve other FLOSS projects [30]. The Debian Project is like an "upstream" project for many distributions. A number of Debian developers directly contribute to upstream projects as well, and all Debian developers contribute at least indirectly.

Want to do things the right way

You have pride of your well done work.

No low quality short cuts.

Do not want ugly hacks in a hurry only to meet a deadline date.

No lazy programming.

You want to create technically sound solutions.

You are not afraid to follow a strict development process (Debian Policy [7] and related/derived policies [8]) that has evolved over many years targeting the best resulting systems.

Want to create and implement the best solution

You want to create high quality solutions [9].

The highest standards attainable.

The reference others compare to.

Want to learn a lot every day

You are not afraid of reading really LOTS of documentation before asking. You do your homework before.

You are not afraid of asking for help and hints from other developers to learn different approaches.

You are willing to try different programming solutions, and not afraid of unorthodox ways of thinking.

You are a committed person

Users depend on your work.

Other developers depend on your work.

Community depends on your work.

Debian Project depends on your work.

Are you willing to be there when needed?

You are a disciplined person for the work

You may like and practice radical sports. Or defend unusual ways of living, politics, religions, etc. It does not matter at Debian Project (written in the Debian Social Contract [0]).

But the Debian Policy needs a disciplined developer for the work.

Able to work in a community

It is highly recommended that you have enough social skills to work in communities, or at least small groups and teams.

The Debian Project has some guidelines [5] and rules [3], [0] that warrant your rights [4] and tell you some limitations about working and living within a social group.

You have rights and duties [6] relating to a peaceful and productive work environment and learning experience.

You have a place to guide you in your first steps [10] and a place to ask for hints [11] at the initial phase.

Sure, you can talk with (almost) no one and only code [13]. Many very skilled developers do not have (almost) any people communication skill. It is not an obligation. But you may miss some opportunities to teach and learn interesting things from/to other very skilled people like you. These should motivate you to acquire some minimal communication skills [14].

Want to work in the Project not for money

The Debian Project is a not-for-profit entity and it does not employ developers. Maybe you get some (temporary?) financial sponsoring from third parties. Or your employer may pay you in order to push forward some working solution. Or your company wants to reduce development and maintenance risks by offering code to the Debian Project and invoicing your customers for technical support. Or you work on some programming bounties. Or got a kind of Summer of Code sponsoring. There are some methods of making money working with FLOSS [15], [25], [26].

But the Debian Project has evolved through community spirit and does not have resources for reimbursing you. The Debian Project has limited resources coming from donations and sponsoring. Most developers do not work on the Debian Project for any (direct) money. You need to have other (direct) work motivations. It is not cast in stone, but the "Debian culture" accepts sponsoring companies, donations, some indirect funding (travel, hosting, machines...), employers funding, code/bug bounties, etc., all from external sources to the Debian Project.

You will not work for free for a company. The Debian Project is not a company [0], [3].

Not afraid of hard work

You will have a lot of hard work ahead.

It will be very interesting. You will learn a LOT from documentation and from other very skilled people.

But you will have to study a LOT. Search the Internet a lot. Visit the library a lot. Develop and re-develop and restart from scratch many times using other approaches until your solution is accepted by your peers as a good technical solution.

You will have to dedicate MANY hours to hard work advancing your technical skill.

You will have to learn a very lengthy development process and tools. Be prepared for a very long period of study [17], [18].

What are Debian Project advantages for a developer?

The WhyDebian page will explain this to you. And more.

Social Contract

The Debian Project has a social contract [0] and a Constitution [3] and it is not a commercial entity, nor controlled by one.

The Debian Project is not controlled by a board of investors, or a board of directors or a benevolent dictator, or a private owner. It is a meritocracy [16] with yearly elected leader [3], [4] and meritocratic key functional positions.

It does not have to pursue profits, nor practice censorship for commercial advantages [1], nor can go out of business (it is not even a business)[2]. It cannot be sold, nor go bankrupt.

The Debian Project does not want to sell you anything, nor invoice you anything.

The Debian Project does not change directions at market profit trends. Does not 'show you the door' because you are not profitable anymore. Does not abandon users in light of profit margins or trends. It does not want to "milk" users/developers as hostages, forcing continuous un-needed upgrades, or have programmed obsolescence to keep profits.

  • You will not work for free for a company.

Nor will it be dependent on sponsorship goodwill from a specific (steering) company, sponsor, donator or group. Nor will it be eager to appease them.

The Debian Project is fully committed to user needs, as written here [0], [3].

Debian Policy

The enforced Debian Policy is the real technical differential of the Debian Project.

And it is practiced by the developers.

The tools and infrastructure only ease the repetitive work, freeing the developer for the really creative work and clever programming.

Following the Debian Policy, developers can achieve the high standards the distribution is known for.

Developer tool chain

If you ever tried to compile and package for other distros, you know "dependency hell".

The Debian Project has myriads of developer tools to help your task.

Read 'man' pages and docs about auto-apt [19], dpatch [20], fakeroot [21] and debhelper [22], as a small sample.

The Debian Project has almost all compiler and languages ever created in its repositories.

The Debian Project produces software that targets more than 11 different architectures, so your software must compile on all of these.

If you need help for this, Debian has 'porters' to help with that and it also has access for you to test your software on various developer machines with various CPUs.

Simple packages are really simple to accomplish [23]. Complex and advanced packaging tasks are simplified with debhelper and tools [24].

Project infrastructure

The Debian Project has scripts, remote services and resources for automatic processing to the maximum extent for almost every item of Debian Policy or aspect of software development.

You will be almost free of repetitive work, freeing your time to develop technically solid solutions.

The Debian Project even has a team dedicated to improving the quality [9].

Developer community

The Debian Project developer community is a VERY dependable one. The community is very organized and very vocal, with strong positions [29]. Intelligent and smart questions will always quickly find someone to help or point directions for research. But those very same skilled developers has almost zero tolerance for lazy developers and dumb or repetitive questions.

You MUST do your homework before asking for help.

Intelligent and solid questions (research done before asking) will attract attention from bright developers. They like a knowledge challenge, not a documentation or discussion list repetition. Or something easily solved by an Internet search or a trip to the next library.

As many skilled developers are harsh to deal with [13], you will likely not find soft talk or hand holding, but the most clever answers you could find anywhere.

Your proposed solution will very likely receive corrections, some of which may be extensive. The other developers want the best solution. And will discuss solutions extensively before implementation when needed. It is not about you.

It is because all Debian Developers are in the pursuit of technical excellence.

As you are.

Useful links

CategoryDeveloper