お久しぶりです,杉本です
うちの研究室はローテーションでブログを書くことになっている仕組みを取っていますが,スケジュール的におそらく今回のブログがM2に最後となるであろうと思います(たぶん)
ということで今回は研究室に所属している中で感じた”完成”と”完成度”について話していきたいなと思います〜
完成と完成度
私がいう完成とは論文でも実装でも当てはまりますが「とりあえず動く,とりあえず提出する」といった状態のことを指しています
要するに「バージョン1.0」ということになります
そして”完成度”とはその名の通り「完成の度合い」のことを指しています
完成度が高いほどより良いものであり,逆に低いと品質的には悪いものとなります
しかし完成度を高めようとすると,無限に時間がかかってしまいます
無限に時間がかかってしまう,というより無限に時間をかけてしまう,という説明の方が正しいかも知れないです
とにもかくにも,完成度を上げるには時間がかかります.
論文を書いているそこのあなた,実装を頑張っているそこのあなた,グラフを出そうとしているそこのあなた,時間がかかっていますよね?(圧)
論文をはじめとして,実装や評価実験といった作業は締切が付きものであり,どこかのタイミングでは締めなくてはいけないものです
先ほどの説明から言葉を借りると,どこかのタイミングで”完成”させなくてはならないです
バージョン1.0の作成
我々は時間と完成度の塩梅を取ってバージョン1.0を作成し一度完成させなくてはなりません
ではこれはどちらが良いでしょうか
- 時間をかけて完成度の高いバージョン1.0を作る
- 時間をかけず,完成度の低いバージョン1.0を作る
それぞれメリットはありますが,我々学部,大学院生のような時間が限られている人間は後者のほうが適切であると思っています
例えば私の実装は人には見せることができないレベルでスパゲッティであり意味不明です
後から自分が見ても理解できないレベルで終わっています
しかしそれでも動く形に仕上げて評価実験をしました
評価実験をすると論文が書けます
その終わっている実装の機器を用いた研究を私は三本投稿しました
ただ実験が問題なくできるのであれば実装がどれだけ終わっていても,論文としては問題ありません
強いていうなら論文も同様で,正直投稿した論文を見直しても「こりゃひどい」となるものばかりです
でも論文投稿できています
ここで一番大切になるのは,バージョン1.0をすばやく作成する,ということです
バージョン1.0というのは心底完成度が低いもので良い,ということです
完成度を高めようとして論文の各章,実装の各コンポーネントに時間をかけすぎて「まだ完成していません」「まだ出来上がっていません」と報告をするよりも,「とりあえず書いてみました」「色々とボロボロですが実装してみました」と伝える方が良い印象を持たれる可能性は高くなります
完成度が低いことに対する抵抗
次はジレンマの話をしていきます
ここまで完成度が低くてもとりあえず完成させた方がよいという話をしてきました
しかし言葉では簡単に言えますが,実際に完成度が低い状態で完成させるのは「正直つらい」ことだと思います…(私も経験しています)
というのも作業している時にダメな箇所に気が付くと,そこを修正したくなってしまうからです
逆に言うと,
「ダメな部分に目をつむりながら先へ進めていく」ことになるので,治したいという気持ちを押し殺さなくてはならないです
これはある意味几帳面な人ほど陥ることなのかなと思います
(プログラムのコードを綺麗に書く人なんかはこれに強く当てはまるかもしれないですね…)
また完成度が低い状態で完成させると,レビューではかなり厳しいことを言われます
私は正直これは一番きつかったなと感じます
自分でもわかっているダメな部分を指摘されると「気が付いてるよ~…」「分かってるよ~…」というお気持ちになって,ショボンとしますね
という感じで,完成度が低い状態での完成にはいくつか乗り越えなくてはいけない壁みたいなものにぶつかることも多くなるかと思います
ただこういったことを考慮したとしても先に進めていく方が圧倒的にメリットが多いはずなので,なんとか歯を食いしばりながら前へと進めていってもらいたいですね
バージョン1.0のプロダクト
最後に実際にリリースされているプロダクトでバージョン1.0の例を取り上げてみようと思います
それが「Google Pixel Watch」です
Pixel Watchは先日発売されたばかりのGoogle初のスマートウォッチですが,iFixitによって分解された内部構造は非常に乱雑なものと評価されています
引用動画:Pixel Watch Teardown: Google’s 1st Gen Answer to the Apple Watch
動画から引用すると
iFixitの総評として,内部構造はApple Watchの洗練ぶりとは程遠いとして「醜い」とまで表現している.ただし,これは「第1世代の技術的雰囲気」(first generation Tech Vibes)を持っているということで,別に酷評というわけではない.
ということです
つまり第一世代のため,まだノウハウもなく,改良を積み重ねたものではないため「このくらいだろう」という評価である(ただ「酷い」と表現されてはいるけど…)
iFixitの別記事では「Apple Watchの背面ガラスを取り外せるようになるまで,Appleは9世代もかけている」と書かれていることもあるので,バージョンを積み重ねてもなかなか完成度を上げるのが大変である様子がよく分かります
本題に戻りますが,Googleも更に時間をかけ費用を費やせばもっと良い状態で仕上げることも可能であったはずですが,この状態でリリースしたということは完成までの時間と完成度の塩梅をここで取ったのだろうと思います
我々も,Pixel Watchのように批判は受ける覚悟でバージョン1.0をリリースするように心がけていけると良いですね
皆さんの研究が少しずつでも進んでいくことを祈っております