チャリティコードジャム
2012年1月25日
ここ数年、私の同僚数名が、開発者が集まって慈善活動のためのソフトウェアを開発するコードジャム[1]イベントを企画しています。ニューヨークで定期的に開催され、RapidFTRの開発に取り組んでいるコードジャムが良い例です。ニューヨークを拠点とするThoughtWorkerのChris Georgeは、2010年8月にニューヨークで一度限りのイベントを企画しました。そのグループは当日、期待していたほど多くの成果を上げることができませんでしたが、その後、バーでより定期的に集まることを決めました。それ以来、彼らは毎週会合を開いています。それはまだ主にThoughtWorkerとその友人たちで構成される小規模なグループで、中心となる3~4人が、大きなプロジェクトが町にあるときは12人にまで増えます[2]。(Chrisはより多くの人々がグループに参加してくれることを歓迎しているので、興味のある方は彼にメールを送ってください。)
多くの人が、これらのイベントは、日々の仕事の多くよりも充実感を得られる目的のために私たちのスキルを使う楽しい方法であり、新しいスキルを学び、異なるグループの人々から学ぶ方法であると感じています。そこで、イベントの立ち上げ方について、私たちの考えを共有すべきだと思いました。
まず、貢献するのに適した取り組みを見つけることです。私たちは、NGOのためのオープンソースソフトウェアを作成するプロジェクトに貢献しようとしています。オープンソースモデルは、そのような組織に適しています。私たちが最も関係を築いてきた2つは、RapidFTRとOpenMRSです。RapidFTRは、自然災害やその他の災難の後、家族を再会させるためのシステムです。行方不明の子供、または親のいない子供についての情報を迅速に入力し、それらを照合するための検索機能を提供することができます。OpenMRSは、さまざまな形態の医療提供活動を支援するために設計されたオープンソースの医療記録システムです。これは、世界中の多くの医療グループ(発展途上国だけではありません)で使用されています。
ニューヨークと同様に、私たちのコードジャムのほとんどは、一度限りのイベント、単一の夜間または終日のイベントとして始まります。最近は、大々的に宣伝し、地元の開発者の多くに参加してもらえることを期待しています。このような一度限りのコードジャムでは、実際にはあまり多くのことを達成するには短すぎるため、通常は有用なソフトウェアはあまり作成されません。しかし、それでも価値はあります。第一に、認知度を高め、地元の開発コミュニティに特定のプロジェクトと、NGOのためのオープンソースの取り組みに取り組むという概念の両方を提示します。より直接的には、定期的なコードジャムの種となる可能性があるため、後で再び集まることを促す活動をまとめることが役立ちます。
定期的なコードジャムは、ほとんどの週に参加する中心人物と共に、スケジュールに従って開催されます。このようなグループは、コードベースに大きく貢献することができます。人々が参加するのは、異なる共同開発者のグループと、(ほとんどのオープンソースプロジェクトとは異なり)他の開発者だけではないオーディエンスのために、いくつかの異なるテクノロジーに取り組むことができるからです。
有意義な進歩を遂げるためには、各コードジャムの準備をする人が必要です。そのためには、作業項目を、ジャムの間に完了できる程度に小さく分割する必要があります。人々が何を言ったり期待したりしても、コードジャムの時間外にプロジェクトに取り組むことはめったにありませんし、スケジュールがあまりにも infrequent なので、中途半端なことをしたままにしておきたくはありません。小さなタスクにより、チームは各ジャムで目に見える進歩を遂げることができ、モチベーションを高く保つのに役立ちます。私たちは、各イベントの前にこれらのタスクをオンラインで公開するようにしています。そのため、人々は、必要に応じて準備をしたり、私たちが何に取り組んでいるのかを感じ取ることができます。また、メーリングリストを設定して、ジャムに関する定期的なコミュニケーションを維持し、ジャム以外で貢献する人をサポートしています。
私たちの定期的なコードジャムは、イベントの企画を主導する数人の champion がいると、最も成功します。 champion は複数人いることが望ましいです。そうすることで、作業負荷に対処し、 champion がしばらく不在の場合の resilience を提供することができます。
私たちは、人々がすぐに参加して生産性を高められるように、開発環境をセットアップするようにしています。この多くは、継続的インテグレーションを可能にするために、プロジェクトで ohnehin 行っていることと同じ種類のことです。インストールとビルドが自動化されていることを確認して、人々がコードベースを迅速にインストールして動作させることができるようにします。イベントの広告でこれを言及することは重要です。人々はしばしば、これらの問題のために開始できないのではないかと心配して、参加をためらいます。それでも、各イベントには、コードベースとビルド環境に精通している人が少なくとも1人いるようにしてください。そうすれば、その人が他の人が自分の道を見つけるのを助けることができます。多くの場合、誰かがジャムの開始時に、システムが何をするのか、どのように動作するのかについて、新しい人々に簡単な概要を説明します。
私たちは通常、各イベントに食べ物を提供しています。これは、企業の貢献として私たちにとって簡単なことです。XPer なら誰でも知っているように、仕事中に食べ物を共有することは、チームをまとめる上で重要な部分です。
ですから、コードジャムのアイデアに興味があれば、試してみてはいかがでしょうか?貢献するのに適したプロジェクト、中心となる少人数のグループを見つけ、数回のセッションを費やして物事を始めましょう。(OpenMRSとRapidFTRの両方について、開発者ガイドがあります。これらのプロジェクトに興味があれば、始めるのに役立ちます。)安定した基盤で活動を始めた場合は、どこかのブログに投稿してください。そうすれば、私たちはどのようなコードジャムが利用可能かを確認し、それらをどのように始めるかについてより多く学ぶことができます。
参考文献
私の同僚であるJeff Wishnieは、長い間この世界に関わっており、ハッカソンがダメな理由(そしてダメである必要がない理由)を説明しています。
注記
1: 「コードジャム」は、これらのイベントにとって問題のある名前です。私が知る限り、「コードジャム」という用語は、もともとプログラマーがプログラミングの課題で仲間を打ち負かそうとする競技イベントに使用されていました。ここで説明するイベントは、多くのレベルでこれとは正反対ですが、同じ名前が付けられています。
2: チームの1人がポルトアレグレのオフィスに行ったとき、彼はそこで貢献するグループも得ました。