ニコヘルさんを例にソフトウェア開発ポリシーを語る
てきとうにニコヘルさん開発における思考の過程をダラダラと書くだけなので。普段の趣味でのソフトウェア開発もだいたいこんな感じに。
話をしよう。あれは今から36万・・・いや、1年半前だったか。まぁいい。
Project DIVAの2chスレにて、ニコ生(のユーザ生放送)はただの素人の雑談生放送と認識していたものが、ニコニコ動画の動画を再生できるということ(初音ミクのライブ)を知り、これは面白そうだとニコリクとPITA SEを試す。
ニコリクはNicoCookieImporter使ってもなんかエラーダイアログばかりで、まともに動作することが期待できずに破棄し、PITA SEによって初主デビューと相成った。事前に少しテストはしていたものの、各種ブラウザ対応を謳ってるわりにはNicoCookieImporterを使わないとうまく接続できなかったり、青文字アンダーラインは、昨今ではリンクの意味合いが強いのでこれクリックするとそのページに飛ぶんかなとクリックすると、生放送で動画が再生されてしまったり等のルックアンドフィールに合わない動作を行ったり、その他いろいろな点を鑑みて(自分の用途では)不合格だなと評価したので、自分で作ってしまうことにした。
既存ツールで満足できない、継続使用に妥協できない場合に作るのが、第一のポリシー。無駄な労力はないので。
まず、ソフトウェア開発の目的を決めるところから始めるので、ニコヘルさんの場合は、「ニコニコ生放送」、「リクエスト放送」、「Firefoxが使える」の3つ。
開発環境にはWindowsネイティブからJavaや.NETなどいろいろあれど、自分のメインブラウザであるFirefoxで問題なく動作してくれればいいから、さて、どれで開発しよう・・・と考えていると、Firefox Extensionで作ってしまえばいいんじゃね?ということに気付いたので、開発・動作環境が決定。この判断は正解だったようで、MacやLinux環境を使っているときにも使えるし、こいつぁ便利だと自画自賛。
そして「リクエスト放送」で使用するのが目的であるので、リクエストを受け付ける、主セレを扱える、プレイリストを記録できるの3点が重要で、コメント読み上げやカメラ(ストリーミング)放送などリクエスト放送には無縁な機能の全面的なサポートは不要と割り切る。そのため、リクエスト放送に妥当な機能であるか否かが、ニコヘルさん本体の機能になるか、追加機能になるかの、判断の分かれ目(例外は自身が非常に常用する機能であるかどうか)。要望がきた、需要が高いからと、何でもホイホイ実装していると、「リクエスト放送用」という題目に合わないのでね。PITAのようになんでもありも一つの手だけど、好みじゃないし、開発コストが上がるだけ。
そんなわけで、自動コテハン登録やコメント読み上げ、世界の新着ライクの生放送の機能は、そういった観点から本体の機能として妥当ではないという判断により、追加機能として実装されている。
使用者さんからの機能追加の要望も、同様な思考の過程を辿って、「リクエスト放送」に妥当であるか、有用であるか、興味深い機能であるか、過去との互換性に問題ないか、などなどを検討し、次に、「使いやすいインターフェイス」を考えて、大丈夫だ、問題ないと判断してから作業に取りかかるので、機能要望がある場合は、その辺を考えて提案してくれると、実装されやすい傾向になるだろう。正直、不要であると判断した機能はよほど気が変わらない限りは絶対に搭載しないので(ソースコードあるんだから勝手に追加してよ的な意味で)。あ、自分は男なので女性からの要望は判断指標がゆるくなります←
一つ例を挙げてみると、コメントリフレクション登録情報を枠が変わっても維持するのは、互換性の観点から実装されない。
次はUIについて。
操作性の善し悪しはソフトウェアの評価に直結するので非常に重要視しているポイント。これはゲーム開発者時代に学んだことで、さる有名な開発者と一緒に仕事したとき当人の操作性に関する意見に大いに納得、賛成して、今も大事にしている点でもある。PITA SEの操作性に不合格を出したのは、ダメなUIの例だと感じたから。とはいえ、完璧なUIというものは簡単にできるわけでもないので、ニコヘルさんも妥協のうちにUI設計しているところもあるのだけども、ちょっとこの辺問題なんだよなぁと思いつつ改善点が思いつかないところもあるが、おおむね満足している。
コメント表示順が上から下に向かう方向じゃない(公式と逆配置)のは、ツールバーがウィンドウ上部にあって、シャッフルやマイリス取り込みなどのタブ内のボタンも上部にあって、その状態で、ウィンドウ下部にコメント新着、コメント入力欄を配置すると、視線をウィンドウ上部、下部に移動させなくてはならなく、視認性に欠けるため、というため。公式と同じ配置にするかどうかは迷ったけど、結局は視線移動を考えたUI設計は利用者を楽にさせてくれるという判断から、あえて逆順にした。
設定について。
元々、国際化を考えていたので、デフォルト設定で英語が使われるのはそういった理由。途中から、ニコ生って日本だけのサービスだしもういいや・・・と止めてしまったけど。
原則としては、デフォルト設定のままでリクエスト放送でとくに支障がない状態にしておくのが一点、一度決定したデフォルト設定は絶対に変更しない(互換性の観点)で二点。ころころとデフォルト動作が変わるのは利用者の混乱の元であるので、今後、絶対にデフォルト値を変えない前提で決める。
動画情報が非常にシンプルなままにしているのは、ニコヘルさん利用者の利用スキル向上を誘導する目的があるため。この手のツールで何か変更したいと思った場合、まずは動画情報からだと思うので、シンプルなデフォルト設定は設定をいじる動機になるだろうと。そうすると、「設定」メニューに触り出すことになるので、設定ウィンドウ左側から、それほど利用スキルがなくても変更しやすい(と思っている)順に並ぶようになっている(基本設定→動画情報→運営コメント→リクエスト制限・・・略)。
ゲームと違ってチュートリアルはないので、初心者でも分かりやすくシンプルな設計、設定項目のカテゴライズ、突っ込んだ操作したい場合は、コンテキストメニューなどの追加部分で対応、というポリシー。なので、現状の設定項目数の多さは、ちょっと気になっている点ではある。
あと、一画面内に同居するチェックボタンは「~する」または「~しない」で統一。「~する」にまぎれて1つだけ「~しない」とかあったりすると、また混乱の元になるから、そのようなことはせず、デフォルトでチェックしておくなどで対処するように。
とか、だらだら書いてたらこんな時間なのでこのくらいで。
2011 年 2 月 20 日 15:48
[…] This post was mentioned on Twitter by 9 鉄, あまの. あまの said: New blog post: ニコヘルさんを例にソフトウェア開発ポリシーを語る http://miku39.jp/blog/wp/?p=1064 […]