Differences between revisions 18 and 19
Revision 18 as of 2008-01-29 12:09:41
Size: 12137
Comment: Ubuntu developers should contribute to Debian development
Revision 19 as of 2008-01-29 12:11:28
Size: 12099
Comment: formatting bibliography
Deletions are marked like this. Additions are marked like this.
Line 196: Line 196:
 *[29] http://www.techforce.com.br/index.php/news/linux_blog/scientific_study_about_debian_governance_and_organization http://techforce.com.br/index.php/news/linux_blog/scientific_study_about_debian_governance_and_organization  *[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

?TableOfContents()

Is the Debian Project a home for my programming skills?

It depends on your developer characteristics and skill.

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

For maximum results and satisfaction, it is better to have many or all of these characteristics below.

Some people may feel theirself more comfortable at other communities, with different social environment. But even so, you should contribute to Debian Project to improve other FLOSS projects [30] in many circunstances. Debian Project is like an "upstream" project for many distributions. Many Debian Developers contribute at upstream projects directly too. And all DDs 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]) evolved for 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 solutions in programming. Not afraid of non-orthodox 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 people 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 Debian Policy needs a disciplined developer for the work.

Able to work into a community

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

Debian Project has some guides [5] and rules [3], [0] that warrant your rights [4] and tell you some limitations for working and living into a social group.

You have rights and duties [6] for 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 already justifies some efforts to some minimal communication skill learning [14].

Want to work in the Project not for money

Debian Project is a not for profit entity neither does it 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 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 Debian Project evolved on pure community spirit and does not have resources for paying you in money. 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, code / bug bounties, etc, all from external sources to the Debian Project.

You will not work for free for a company. 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 internet a lot. Visit the library a lot. Develop and re-develop and restart from scratch many times using other approach until your solution could be 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 time studying [17], [18].

What are Debian Project advantages for a developer?

The ["WhyDebian"] page will explain this to you. And more.

Social Contract

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

Debian Project is not controlled by a board of investors, or 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 can not be sold, nor go bankrupt.

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

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 of sponsorship goodwill from a specific (steering) company / sponsor / donator / group. Or will it be eager to appease them.

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 to 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 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 of 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.

Debian Project even has a team dedicated to improve 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 to lazy developers and dumb or repetitive questions.

You will MUST do your home work 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 [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 maybe 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