Google日本語入力Tech-talkに行ってきました

数日前から続いているごにょごにょエントリですが、5日目はばたんぎゅーしてしまったため、お休みします。

今日Googleさんにお邪魔してきました!

折角2週間居るのだから、勉強会充しようと色々探したのですが…
たまたま時期が悪いらしく、興味のある勉強会が見つからず、抽選だろうから当たらないだろうーと思い、日本語入力のイベントに登録したところ当たっちゃいました!という経緯です。

以下取れた分のメモです。

Google日本語入力ができるまで

20%プロジェクトとして生まれました。

→「もしかして」の大部分が既存のIMEの誤変換によるもの

プロジェクトが立ち上がるまで
  • 半年はディスカッションのみ
  • ある時コードが1行もないことに気づく(デザインばかりだった)

作って、レビューなどを繰り返しているうちに本プロジェクトになった。

    • 社内でのドッグフード(自分で使う)
    • 既存IMEとの互換性の要望が多かった
    • 本質としては必要ないが、ユーザに取って必要な細かい事(サジェストの内容等)を重視した。その細かい要望を実現する事を良さとしようとした。


機能追加→バグが増える→悪循環
なので、最初は本当に基本的な部分のみしか作らなかった。
※テストは実装の2・3倍

リリースプロセス
  • 社内
    • ドッグフード(毎日更新)→多くても100人単位
    • 落ちないかテスト
  • 一般
    • 開発版で一般ユーザに使ってもらう

→クラッシュレポート(落ちたときにミニダンプを保存・送信)
→利用統計(キータイプ数・第一候補が選ばれた回数とか)
この2つが送信される
※入力された文字は一切収集していません※

そしてオープンソース

IMEの基本機能がきっちりとカバーされている

質問タイム

Q.テストの十分・不十分さの判定はどうやって?
 A.最終的には人間の感覚。クラッシュレポート。すべてのバグをトラッキングしている。そのバクの優先順位を見る

Q.ユニットテストが書きにくいテストの仕方は?(UIのテストはどうやって?)
 A.出来るだけユニットテストに落とし込めるところは、落としこむ
  オートメーションをかけて、チェックしていきたい+手で動かしてみてやってみる。触ってみる。 みんなに集まってもらってやってみる+ドッグフード

Q.開発は何人月?2人でやったの?
 A.具体的な人数は言えない。が、2人でやっているわけでもないし、20%ルールでだけではない。結構な時間+人が掛かっている。今はフルタイムでやっている




あと残りは
Google 日本語入力の設計概要』
『Mozc ソースコードレビュー』
『ライトニングトーク』
があるのですが…
手でメモを取っていたり等という言い訳で、力尽きています…
公開するレベルではないため、ここまでにします。

守備範囲外+場違いすぎでした^^;

ただ、折角の機会だったので、聞いたお話を覚えておこうと思います。