bug
#migrated

ソフトウェア変更の失敗 > v1からv2への変更 (何を主に変更するのか)

More than 1 year has passed since last update.

自分がよく使っていたソフトウェアがv1からv2にアップデートされてしばらくたつ。

問題はいくつかある。

  • UIが使いづらくなった
  • 基本機能にバグが入るようになった
    • データが消える
    • データの変更をソフトが把握できない
    • エラーで処理が止まる
  • 細かい部分でバグが入るようになった
    • 延々と処理を繰り返す
    • 動作が重くなる

メジャーバージョンアップの問題点

「今回のメジャーバージョンアップは何を主に変更するのか」をきちんと選択しないままバージョンアップしたように感じる。

少なくとも以下の変更がバージョンアップに含まれるようだ (フォーラム記載の内容からの推測も含む)

  • UIの変更
    • 「前のUIは良くないね」(根拠ない)
  • 開発環境の変更
    • 「マルチプラットフォーム対応しとこうか」
  • ライブラリの変更
    • 「ついでに新しいライブラリ使っとこうか」
    • 開発環境の変更にもよるかもしれない

現状

フォーラムを見ると以下のようなコメントがある

  • XXXの機能が使えません
  • 5分おきにログインを要求されます (仕事にならない)
  • 他のソフトウェアを使うことにしました (さよなら)
  • 今日一日作業したデータが消えました
  • v1に戻して欲しい(切実に)
  • オープンソース化しようぜ (君らの解決は時間がかかりすぎる)

現状の各種問題が修正されるまでに1-2年はかかるのではないだろうか。

小さなチーム

「我々は小さなチームだ。(だから、たくさんの不具合に対応できない)」というコメントをフォーラムで見かけた。

そもそも「小さなチーム」としてのバージョンアップをすれば良かったのではないか、と思う。

どういうバージョンアップかというと、上記の場合、

  • 「ライブラリだけ変更」してきちんとテストをして、安定版にする
  • 次に「開発環境を変更」してきちんとテストをして、安定版にする
  • (本当に必要なら)UIを変更して、きちんとテストをして、安定版にする

これらを順次きちんとこなすことで、v1から使用を続けるユーザに大きな問題を生じずにスムーズにv2に移行してもらえる。

by Linus Torvalds @ ソフトウェアの世界でキャリアを築く by Sam Lightstone

たった一回のジャンプで、高層ビルの上まで跳ね上がることはできません。一つひとつ階段のステップを歩んで行くものです。何か面白いところに辿り着くまでに100階以上登りつづけたとしても、決してそれは苦になることはないでしょう。遥かかなたの目標だけに目を向けていたら、足下の階段ですら気づかず一歩すら踏み出すことができないのです。

@ アップルを創った怪物 (Computer Geek to Cult Icon) by スティーブ・ウォズニアック

結果をあまり気にせず、今していることに集中し、それをできるだけ完璧に仕上げることが大事だということを学んだんだ。...途中のやるべきことをすっとばして最終段階だけをなんとかしようとする人をたくさん見た。そんなの、うまくいくはずがないんだ。絶対に無理なんだ。

オープンソース化の提案は良くなるかどうか分からない。
開発チームのメンバーがオープンソースで長年活動してきたのであれば良いが、そうでない場合、さらなる不確定要素が加わり、混迷が深くなるように思う。

現状のメンバできちんとバグを取りきることで信頼を回復するのが良いように思われる。一度離れたユーザが戻ってくるには強いインセンティブが必要になるだろう。

開発環境変更などの大きな変更が予想される場合は、安定版とベータ版の2つに分けて、両者をアップデートしていく方法もあったかと思う。ベータ版が安定化するまでは数年かかるかもしれないが、本当にそれが必要であれば、それだけの時間をかける意味はあるだろう。