チックタック戦略?
今は、Mirror-DTC Ver1.4.5の開発フェーズで、一通りの開発は終わったので、再度、インストール確認を行っている。今回追加する新機能は、クライアントからサーバーへの音声送信機能、だけ、の筈だったのだが・・・
このブログの過去の記事を読み返してみると、macOS版Mirror-DTC Ver1.4.5の開発は、3月24日から始めて、4月4日には公開しているので、更新内容の検討から、それを実装して公開するまでに、11日くらいしかかかっていない。
これに対して、Windows版の開発は、4月4日から始めて、まだ公開できていないので、今日の時点で、55日くらいかけて、まだ終わっていない事になる。
もっとも、このブログの読者であれば、作者の開発が約2ヶ月くらいかかっているのは良くある話だという事は判っているかもしれない。
と、いうか、作者的には、開発を始めて2ヶ月くらい経過すると、集中力が持続できなくなって、そこでタイムアウト! と、いう感じで、無理矢理にでも、開発を終了させている事も多い。
なので、Windows版Mirror-DTCの開発も、そろそろ2ヶ月が経過しているので、公開は間近な筈なのだが、macOS版の開発に11日しかかからなかったにも関わらず、Windows版の開発に2ヶ月を要しているのは、作者が手を抜いている訳ではなくて、Windows版には、特有の課題があったからだ。
具体的には、今回、これからの主流になる! と、専門家が予言しているARM64版Windowsに向けて、ARM64ネイティブ版を開発する事にしていたので、今回の更新に関係ない筈の既存コードの多くも、変更対象になった訳だ。
更に、そういった処理コードの多くは、自前のC++クラスに纏めていたので、そのC++クラスを更新するとなると、そのデバック環境も問題になった。
何故なら、Mirror-DTCでは、そういったクラスの全てのメソッドを使っている訳ではなかったからだ。
なので、そういった自前のC++クラスの更新内容をデバックするためには、それらのコードを使用しているAmuseGraphicsに関しても、同時に、ARM64化する必要があった訳だ。
その結果として、今回のMirror-DTC Ver1.4.5の開発では、過去に例を見ない事態、つまり、同時にAmuseGraphics Ver1.4.5も開発する! という事態になってしまったので、自ずと、開発期間は伸びてしまった訳だ。
もっとも、ARM64化作業については、特に、AmuseGraphics用のDirectShowフィルターなんかで特別な対応が必要になったので、少し手間取ったのだが、それでも、5月16日には、完了宣言をしていた。
しかし、気がつけば、それから既に2週間くらい経過してきている訳だ。
その2週間、何をやっていたのか、というと、主に、TiWebRemote関連の改良を行っていたのだが、その中には、TiTrayExtenderに「スタートアップ」属性を追加した、という改良もあった。
ブログ記事的には、まず、TiTrayExtenderの改良の話を書いた筈なのだが、この改良をしようと思ったのは、TiWebRemoteを真面目に使える様にしようと考えたからだ。
そのためには、TiWebRemoteは、管理者権限で、最初から自動起動しておく必要があったので、TiTrayExtenderの改良が必要だった訳だ。
更に、現行版のTiWebRemoteでは、画面解像度の変更とスリープへの対応ができていなかったので、その対応を行ったのだが、この作業を通して、Windowsは大昔のスリープとは異なるスリープ、というか、巷では、モダンサスペンド、と、呼ばれるスリープが行われる様になっていた事を知った訳だ。
なので、元々、スリープ発生時に特別な処理を行っていたMirror-DTCサーバーだとかAG-デスクトップレコーダーにも、モダンサスペンド対応処理を入れる事にしたので、作業量は、更に、増大していった。
と、言う事で、開発期間はどんどん伸びていったのだが、前述の様に、作者の限界は約2ヶ月なので、そろそろ、今回の開発は終わる筈の今日この頃だ。
ちなみに、今日の表題はどういう事なのか、というと、作者のソフト開発も、結果的に、インテルがずっと続けていたCPU開発戦略と似た様な感じになっているかなあ、と、思ったりしている、という事だ。
具体的には、新機能の開発と、その地盤となる部分の開発は、交互に行う事になる、という事だ。
今回の開発では、新機能の開発量は少ないのだが、その地盤となる部分の開発量は多い。
これは、一般的な話としても、例えば、本を読んで知識を蓄えた後、その知識を応用して何かしらの行動を行う、というのは普通だ。
しかし、本を読んで知識を蓄え続け、自分は頭が良いんだ! と、巷の一般人を馬鹿にしながら何もなさずに死んでいく! みたいな人は、巷からは評価されない筈だ。
また、常に行動優先で、知識を蓄える事もなく、行動ばかりしている人は、その内、自分の中にあるポテンシャルを使い果たしてしまうので、何もできなくなるか、疲れ果てて自死を選ぶ事になる筈だ。
なので、知識を得る事とその知識を応用して行動する事は、交互に行う事を心がけるべきで、だからこそ、芸能人なんかでも、充電期間を置く! みたいな事を言って、仕事を休んだりしている訳だ。
まあ、作者的にも、充電期間? 甘ったれるな! と、若い頃には思ったりした事もあったのだが、仕事ばかりしていると、その内、人間はダメになってしまう事を経験したりもしたので、今では、充電期間の必要性も理解している気がする。
と、言う事で、今回の開発は、新規機能の実装は少なく、新しいAPIへの対応を色々と行なっているので、ある意味、充電期間になる筈なのだが、その割には、何故か、作者的には、疲れ果てている今日この頃だ。

