[GSOC][opensource]Google Summer of Code 2011受付開始

今年もGoogle Summer of Codeの時期がやってきた。もう受付が始まっているが、応募したいと思っている人にアプリケーションを書く上で一般的な注意点を。

ゴールを明確に

最初にどんな機能を実装したいのか、明確/簡潔に書く。難しい英語の表現など使わなくていいので、ワンパラグラフくらいで、最初に明確なゴールを定義する。

具体的に

どんな機能をどのように作るか。ここで具体性を欠くと、応募しているそのプロジェクトに対する理解度を疑われる。ソースコードをチェックアウトしてビルドし、全体像を眺めるくらいはやっておいて欲しい所。

  • ダメな例: Add a cool visualization engine to this JavaScript library.
  • いい例: To solve rendering performance issue in current engine, add WebGL support for 2D view.
  • ダメな例: Cleaning-up messy API in module A.
  • いい例: Module A has too many public API and some of them violate Single Responsibility Principle. It is very confusing when 3rd party developers use it. The goal of this project is minimizing the API and moving unnecessary functions to Module B.

タイムライン

提示したゴールが現実的なものかどうか、GSoCの期間をいくつかに区切って、どのタスクにどれくらいの時間を使うかを見積もる。実際にスケジュールを作ってみてキツいと感じたら、あまり欲張らず、多少機能を割り引いても完遂出来る計画を立てる。

今まで作った事のあるものへのリンク

これは必ずしも必要ではないが、GithubGoogle Codeなどに公開されたコードがあればなお良い。


これは今までメンターをして来た感想だが、殆どのメンタリング組織でも似たような選考基準を持っていると思う。一番いいのは、自分が普段使っているようなプロダクトへ応募する事。当然使い込んでいれば、最低でもユーザーの視点は持っているので、問題点なども理解しやすい。その他の注意点としては、

スーパーハッカーである必要性は無い

各プロジェクトから出ているアイデアリストを見れば分かると思うが、プロジェクトの難易度は様々。何も物凄いハッカーである必要は無く、一般的なプログラマリテラシーを持っていれば参加出来るものもたくさんある。ここで言うリテラシーとは、

  • SCMの使い方
  • Wikiなどによる情報共有の仕方
  • 他人が読む事を意識して書くコーディングスタイル

と言ったものだ。

英語は簡潔に

英語は多くの日本人にとって問題だ。しかし、非英語圏でもインドや中国、南米や東欧などからの応募は非常に多い。あまり細かい所はこだわらず、シンプルに、でもどうにか伝わる、と言うような事を心がけて欲しい。多くの人は既にやっていると思うが、表現で迷ったら、Googleでフレーズ検索して通じる表現かどうかを確認すると言うのも一つの手。

是非日本からも参加を!