人気記事集約用のシェルスクリプトは自己流で書いてたのであまり自信がなかったので、ものは試しにと ChatGPT にリファクタリングしてもらった。今日の集計と昨日の集計と全期間の集計で似たようなコードがあるのにコードを共通化できていなかったので共通化を提案されたが、そのまま適用するとちゃんと動かない。重要な細かい仕様をなかったことにしたりもする。 Copilot も試してみたが似たような感じだった。生成 AI はチャットでベストプラクティスを聞いたり、細かい作法を尋ねたりするのには向いているかもだが、ソフトウェア開発者を丸々置き換えることはできないと思う。少なくとも現状は。実際に動かしてみて期待通りに動くかのチェックは絶対に必要だし、人間が細かいところで楽をすることはできるけど、完全に ChatGPT とか Copilot だけでシステムを構築するのは難しいだろう。 AI は人間が知ってることしかできない。人間が知らないことは人間にしかできない。
ソフトウェアは社会を変えない
Basecamp で従業員の大量離職騒動が起きていた。原因は社内で社会問題についての議論を禁止するという制度変更への反発。
Basecamp の制度変更の要旨
— morygonzalez (@morygonzalez) May 1, 2021
1. 社内での政治的な発言禁止
2. ジムなどの福利厚生終了(特定の価値観に基づくため)
3. 〇〇委員会禁止(仕事は個々人で)
4. 過去の決定を議論するの禁止
5. 360度評価終了(いい評価しか付かず役に立たないため)
6. 本業を忘れるな(ソフトウェアを作ることが仕事)
この制度変更の背景にはさらにややこしい問題があったようだ。
この記事にこれまでの出来事がまとめてある。 Jason Fried の制度変更表明はこれらの出来事に符合するものみたい。https://t.co/rys1Tx4BKG
— morygonzalez (@morygonzalez) April 30, 2021
この騒動を経て、以前 HEY を使ったときの感想として書いた以下の記事のことを思い出した。
ソフトウェアに必要なのは理念ではなく機能だ。そのことは Jason Fried も書いている。
6. No forgetting what we do here. We make project management, team communication, and email software. We are not a social impact company. Our impact is contained to what we do and how we do it.
ただ、 Jason Fried も DHH も本、 Twitter 、ブログで業務の一環かのように他社のソフトウェアやビジネスモデルに難癖を付けたりと舌鋒鋭い。その一方で従業員に社内で社会問題を議論をさせないのは矛盾しているような気がする。
以前書いた記事では、 Flickr は理念のみで機能が不足しているということを指摘した。 Basecamp の HEY については理念だけでなく、それを裏付ける機能があると支持した。しかし今回の騒動を見るに、理念の部分がだいぶ強すぎたと感じる。理念に引き寄せられて opinionated な人たちが集まったが、理念を表明して良いのは経営者だけで従業員は仕事だけして下さいと言われると反感を買うのは当然だろう。
理念や社会に対する意見があることは結構なことだと思う。しかしそれを声高に表明して回ることはソフトウェア会社の仕事ではないと思う。ソフトウェア会社の仕事はただ一つで、その理念に基づいたソフトウェアを作ることなはずだ。
そもそもソフトウェアで社会を変えられるのだろうか。自分はそうは思わない。世の中がソフトウェアをきっかけにして変わるだけだ。ソフトウェアは人々の内側にあった曖昧模糊とした欲求を具現化して解消しただけに過ぎない。 Uber で車と時間を持て余している人がお金を得られるようになったし、全然タクシーがつかまらなくて困っていた人はふっかけられることなく車で移動できるようになった。これは元々潜在的に存在していた需要と供給を顕在化させて結び付けただけだに過ぎない。どんなに画期的なソフトウェアやサービスも、人々に必要だと思われなければ意味がない。
崇高な理念や信念があったとして、それをいかにソフトウェアに吹き込むかがソフトウェア企業のやるべきことだ。自分は Rails エンジニアとしてソフトウェア業界に橋頭堡を築いたので DHH のことは尊敬しているけど、 Basecamp には人々に求められる良いソフトウェアを作ることにフォーカスして欲しいし、自分もそういう姿勢でソフトウェア開発に携わっていきたい。
万人受けする機能はない
※初出は HEY World の https://world.hey.com/hitoshi.nakashima/post-8214d314 です
ソフトウェアで万人に響く機能はない。なのでサブスクリプションのソフトウェアサービスでフルセットのプランだけを作ってそれを売るとユーザーから値引き要求がくる。フルセットのプランのうち、機能 A だけ必要であとはいらないので負けろと言われる。
ソフトウェアは限界費用が限りなくゼロに近いので、使える機能の多寡で価格を変えるのは売り手からすると合理的ではないし、複雑な商品メニューの維持管理、サプスクリプションのプラン変更によるアップグレードやダウングレード、決済プラットフォームの移行などを考えると極力支払いプランはシンプルにしておきたい。この辺りを複雑にすることで肝心なソフトウェアの機能開発スピードが落ちてしまったら本末転倒だ。
多分有償のソフトウェアは、コアとなる売りの機能があって、そいつを支えるサブ機能を追加していく戦略が正しいのだと思う。コア機能への従量課金だけを行い、あとはコア機能をもっと使いたくなるサブ機能を開発してそれらは無料にしてしまう。フリーミアム戦略を取るなら、フリーユーザーはフリーで使える分量を使っていると、コア機能をもっと使いたくなるサブ機能の魔力によってコア機能をついつい使い過ぎてしまい、お金を支払わざるを得なくなってしまう。こういう構造が美しいし、ユーザーからも納得してお金を払ってもらえる。
サブスクリプションのストレス
以前書いた Typinator 、 Version 8 が出ていたが有償アップグレードだったのでケチって Version 7 を使っていた。
Version 7 でも全く問題がなかったのだが、出来心で macOS を Catalina にしたところ起動しなくなってしまった。どうも 32bit アプリケーションだったみたいだ。 Version 8.2 以降は Catalina 対応しているみたいなので 1,500 円払って新バージョンにアップグレードした。
最近、いろんなソフトウェアがサブスクリプション形式になってきている。開発者としてはサブスクリプションにすることで財務が安定するのだろうけど、継続的にお金を払わないといけないのはソフトウェアを利用開始するにあたって結構なストレスになる。
最近、クリス・アンダーソンの『 Free 』を読んだけど、その中でマイクロペイメントはうまく行かないと書いてある。お金を払うに値するかどうかの判断自体がストレスで、そこに心理的なコストが発生してしまうからだ。だったらフリーにしてしまって、別の方法でお金を得た方が良いというのが筆者の主張。
サブスクリプションは買い切ると高いものを数百円から 1,000 円におさまる程度の月額利用料で使えるようにしたという意味で、買うかどうかの判断のストレスを軽減させたとは思うが、サブスクリプションが増えていくと毎月 1,000 円のサービスにすでに二つくらいは加入していて、その上でさらに払うべきかという問題になってくる。こうなると判断のコストは高くなってくる。やっぱり買い切りがいいなと個人的には思ってしまう。
PayPal で購入手続きを済ませると、開発元の Ergonis Software からライセンスキーが送られてきた。これでまた 2 年間くらいは月額利用料のことを気にせず安心してソフトウェアを利用できるという安心感と、自分がこのシリアルキーを購入することでインディーデベロッパーの懐にいくらかのお金が入ったんだという晴れ晴れとした気持ち。 20 年以上前から続くこのシェアウェア購入とアクティベーションのフローは体験として悪くない