別館サイバー大学 別館サイバー大学

テクノロジー 2020.06.11

人生の転機は身近なところに

鶴長 鎮一 鶴長 鎮一 客員講師
人生の転機は身近なところに

OSSにおける個人の貢献とコミュニケーション

私が担当している「Pythonプログラミング演習」では、プログラミング言語の「Python」を学び、Web/スマホ/AI/IoTなど様々な応用事例を通してプログラミング演習を行っています。

Pythonはオープンソース(以降、OSS)のプログラミング言語です。インターネットを通してソースコードが公開され、誰でも開発に参加できるのが大きな特徴となっています。開発に便利なフレームワークやライブラリーも、その多くがOSSで提供されており、こうしたエコシステムがPythonの人気につながっています。

OSSで提供されている多くのソフトウェアはバザール方式(1)と呼ばれる開発体制でつくられています。バザール方式とは、市場(Bazaar)に訪れた人々がお互いに必要なものをやり取りするように、不特定多数の開発に関わる人々が持ち寄った技術やアイデアを交換しながら、設計や実装を行っていくことを指します。そのため開発コミュニティに参加している各個人の貢献とコミュニケーションが重要になります。

OSSへの携わり方

OSSの開発に携わることで、新たな情報や知見を得ることができます。OSSでは、開発コミュニティ参加者は能力の分け隔てなく、必要な情報に自由にアクセスできます。また開発コミュニティに関わることで、コミュニケーション能力が鍛えられます。OSSが業務と一切関わりがないとしても、こうして自ら獲得した情報や知見は、業務においても新たな発想につながったり、視野を広げるきっかけになります。

OSSへの携わり方は、コードを改修してGitHub(2)のようなリポジトリーにコミットしたり、バグを見つけて修正パッチをコミットしたりといった直接的な関わり方だけではありません。ドキュメントを整備したり、使い方やTipsをブログやSNSで公開して、これから利用しようとしているユーザの一助になるのも、立派な貢献になります。

ベンダーから提供されるプロプライエタリなソフトウェアであれば、ベンダーの統制により一元的な情報が展開されますが、OSSではコミュニティや個人から発信される情報がすべてになります。OSSに関する情報の中には、整理されていないものや、信憑性がはっきりしないものもあり、そうした不確かな情報がOSSの信頼性を下げたり、混乱を生むきっかけになっています。情報を整理して混乱を解消できれば、立派な寄与につながります。

情報の発信までできなくても、ユーザコミュニティに参加するだけでも、OSSコミュニティの盛り上げに寄与できます。各地では、ユーザコミュニティによる無料の勉強会や輪読会が開催されています。connpassDoorkeeperのようなイベント告知サイトで検索すれば、キャリアの転換になるようなOSSに出会うことができるかもしれません。

私とOSS

私のエンジニアとしてのキャリアのスタートは、地方にあったスタートアップ企業です。使える資材や予算は限られており、中古のワークステーションを購入するのが精一杯でした。増え続けるユーザに対応するべく導入したのが、PCをベースとしたサーバで、その際OSとして用いたのが「Linux」でした。

今はOracle社の一部となったSUN社のSolarisやSun OSが主流の時代、Linuxをサーバに用いた実績はありませんでしたが、デスクトップOSとしてLinuxを使い続けていた経験から、サーバやネットワークルーター用のOSとしての可能性を感じて導入しました。インターネットに求められる信頼性が、それほど高くなかったこともあり、障害や困難にあたりながらも、貴重な経験を積むことができました。

その後、RDBMSの「MySQL」やプログラミング言語の「PHP」、分散処理フレームワークの「Hadoop」、Webサーバの「Apache HTTPD」や「Nginx」、そして「Python」とOSSを渡り歩き現在に至っています。この辺りの話は別の機会にします。

ヒーローやカリスマに依存しないシステムづくり

成功したプロダクトを見つけると、開発に大きく貢献したヒーローを探したり、プロジェクトを成功に導いたリーダーをカリスマとして崇めがちですが、IT系システムに限らず、現在のマスプロダクトは一個人の活躍だけで成否を左右されることは稀です。OSSのバザール方式では誰でも開発に参加できます。それには献身性が必要だと説明しました。その対価として得られるのは、エンジニアとしての評価です。

GitHubでは誰がバグを指摘したのか、だれがバクを修正したのかが分かるようになっています。バグを出してしまったことを非難せず、バグを指摘したり直したりしたことを称賛するのがOSSの文化です。ドキュメントを公開すれば、必ずレビューされ感想が返ってきます。OSSの開発コミュニティに参加して、キャリアの転換につなげてみてはいかがでしょうか。もしかすると、世の中を変えるきっかけになるかもしれません。

(1) エリック・レイモンド著「伽藍とバザール」原文 日本語訳
(2) GitHubとは:ソフトウェア開発のプラットフォームで、オープンソースプロジェクトやビジネスユースまで、GitHub上にソースコードをホスティングすることで数百万人もの他の開発者と一緒にコードのレビューを行ったり、プロジェクトの管理をしながら、ソフトウェアの開発を行うことができます。

鶴長 鎮一
鶴長 鎮一
TSURUNAGA Shinichi
  • 客員講師
  • 専門科目

岐阜大学大学院在学中に地元ISPの起業に携わり、その後ソフトバンクグループ(株)とのM&Aにより東京へ。以後ソフトバンク(株)でサーバーやネットワークといった通信インフラの企画・設計・構築業務を担当。またスタートアップや社内企業の事業開発にも従事。そうした業務の傍ら、理工系書籍を長年執筆しており、技術系雑誌にも寄稿。日経Linuxでの連載は10年目に。