Differences between revisions 1 and 25 (spanning 24 versions)
Revision 1 as of 2007-05-03 02:07:56
Size: 2743
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 1: Line 1:
[[TableOfContents()]] #language en
##TRANSLATION-HEADER-START
||<tablewidth="100%"style="border: 0px hidden ;">~-''Translation(s): [[WhyDebianForDevelopers|English]] - [[zh_CN/WhyDebianForDevelopers|简体中文]]''-~ ||<style="border: 0px hidden ; text-align: right;"> (!) [[WhyDebianForDevelopers/Discussion|Discussion]] ||
Line 3: Line 5:
= Is Debian Project a home for my programming skills? =
It depends on your developer characteristics and skill.
<<TableOfContents>>
Line 6: Line 7:
For maximum results and satisfaction, it is better to have many or all characteristics below. = 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.
Line 8: Line 18:
You have pride of your well done work. No low quality short cuts. Do not want ugly hacks. No lazy programming. You want to create technically sound solutions. You have pride of your well done work.
Line 10: Line 20:
You want to create high quality solutions. The highest standards attainable. The measure others compare to. 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.
Line 13: Line 31:
You want to create high quality solutions [9].

The highest standards attainable.

The reference others compare to.
Line 15: Line 39:
You are not affraid of reading really LOTS of documentation before asking. You do your homework before. You are not afraid of reading really LOTS of documentation before asking. You do your homework before.
Line 17: Line 41:
You are not affraid of asking for help and hints from other developers to learn different approaches. You are not afraid of asking for help and hints from other developers to learn different approaches.
Line 19: Line 43:
You are willing to try different solutions in programming. Not affraid of non-ortodoxus ways of thinking. You are willing to try different programming solutions, and not afraid of unorthodox ways of thinking.
Line 21: Line 45:
== You are a commited people == == You are a committed person ==
Line 32: Line 56:
== You are a disciplined people for the work ==
You may like and practice radical sports. Or defend unusual ways of living, politcs, religions,etc. It does not matter at Debian Project (written in the Debian Constitution).
== 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]).
Line 35: Line 59:
But Debian Policy needs a disciplined developer for the work. But the Debian Policy needs a disciplined developer for the work.
Line 37: Line 61:
== Able to work into a community == == 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].
Line 40: Line 74:
Debian Project is not for profit entity.
Maybe you get some (temporary?) financial sponsoring from third parties. Or your employer pays you in order to push foward some working solution. Or your company wants to reduce development and maintenance risks 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.
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].
Line 43: Line 76:
But Debian Project was founded on pure community spirit and do not have resources for paying you. Debian Project has limited resources coming from donations and sponsoring. Most of developers do not work on Debian Project for any (direct) money. You have 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, etc.
== Not affraid of hard work ==
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.
Line 47: Line 78:
You will not work for free for a company. The Debian Project is not a company [0], [3].
Line 48: Line 80:
== 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].
Line 51: Line 93:
The ["WhyDebian"] applies for you. And more. The [[WhyDebian]] page will explain this to you. And more.
Line 53: Line 95:
== Constitution == == 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].
Line 56: Line 113:
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.
Line 58: Line 122:
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].
Line 60: Line 137:
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].
Line 62: Line 144:
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 =
 *[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

CategoryDeveloper

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