Linuxカーネルメンテナーの1人であるGreg Kroah-Hartman氏は12月14日(米国時間)、「Lessons learned in 25 years of Linux kernel development|Opensource.com」において、これまでのカーネル開発の経験から得た9のベストプラクティスを公開した。オンラインでコミュニケーションを取りながら開発をするようなプロジェクトに適用する教訓として興味深い。
掲載されているベストプラクティスをまとめると次のとおり。
- 短い周期でのリリースを繰り返す
- 権限を分散化し、階層化した開発モデルを実現し、開発プロセスのスケーラビリティを広げる
- 適切なツールを使う(BitKeeperを使うまでは本当に苦労した。Gitに変えてからはさらに簡単になった)
- 変更を取り入れる際、ほかの開発者のコンセンサスを必要とするモデルが大切
- リグレッションを発生させないというルールも重要
- 企業でフルタイムで雇われている従業員による開発は重要、ただし、特定の企業だけに肩入れするようなやり方はアウト
- 担当をカーネルの特定のサブシステムにのみ限定するのではなく、広くカーネルの他の部分も変更できるような仕組みにしておくことが大切
- どんなソフトウェアであっても、最初は小さなソフトウェアから開発が始まったことを忘れないこと
- 多くのユーザーと協力して継続的に開発を続けることで、特定のグループのみで開発を続けた場合よりもよいものが出来上がる
Linuxカーネルは世界中の開発者が参加して開発が進められている。現在では世界中の企業が自社にフルタイムで開発に取り組むLinux開発者を雇用し、自社が必要とする機能の開発およびコードの提供などを実施している。