Posts for: #Business

部屋の片付けへの趣き

今日のバドミントン練習はエアシャトルでリフティングを10分、連続最大回数は322回だった。その後にショートサーブ30回、フットワーク10分の練習をした。リフティングは連続回数よりもラケットコントロールの質を求める練習に変えていく。昨日と同様、みなとのもり公園をジョギングで4週走った。fitbit によると 1.8km 走ったそうな。

プロジェクトマネージャーが手を動かすことの功罪

朝からお手伝い先の社内インフラサーバーが落ちていて待ち時間があったのでふと思い返してつらつら考えごとをしていた。

お客さんが選ばなければ、逡巡と葛藤の結果、最終的に私は品質を優先する

開発合宿の課題管理の雑談から引用

私はもっと仕組みを作るところに注力すべきだった。私自身がコンサル嫌いの、実務をやっている姿勢をみせてメンバーが参考にしてほしいという意識が強過ぎた。また開発は楽しいことから必要以上に手を動かし過ぎてコアな開発に入り過ぎたことで、自分がやらないと他のメンバーが担当しにくい体制になってしまった。「任せる」はずが「任される」ことになってしまった。バックエンドの品質は大事だから責任感もあった。もしかしたらお客さんが求める以上の過剰品質なモノづくりをしてしまったのかもしれない。そして、仕組みづくりの後はメンバーへ委譲すべきだった。いまメンバーへマネージャーを委譲しているが、マネージャーという業務はもともと得意でもなくこだわりもなかったがためにすんなりと委譲できた。

しかし、開発の方は得意分野、且つ好きであるために品質にこだわってしまう傾向があることを認識できた。そのことが裏目に出てしまった。これが自社プロダクトの開発ならばすべて自社の資産になるためにそれでもよかったかもしれないが、他社プロダクトでやってしまうと、自分の時間を必要以上に注ぎ込むことになってしまった。その結果、お客さんの信頼を得られてはいるものの、自社プロダクトの開発に着手できず、クロージングの時期が遅れて微妙な状況になってしまった。もしかしたら、お客さんもうちの会社との契約を終了できなくなってしまって困っているという考え方もできる。

rabbitmq の autoAck (noAck) の振る舞い

先週の続き 。id 連携のリクエストをし続けながら compose サービスを down させたときの振る舞いを検証する。理想的にはそれぞれのモジュールのサービスが graceful に振る舞って、それぞれの永続化する場所でデータが溜まってくれることを期待している。その1つがメッセージキューでもある。Persistence Configuration によると、rabbitmq のメッセージを永続化するには queue に対して durable の設定を行い、producer が送信するメッセージに対しても persistent の属性を付与すればよい。しかし、実際に検証してみると、サービスの再起動時にメッセージキューからメッセージが消失していることがわかった。consume メソッドに渡す仮引数に autoAck というパラメーターがある。コメントにもそれっぽいことが書いてある。

When autoAck (also known as noAck) is true, the server will acknowledge deliveries to this consumer prior to writing the delivery to the network. When autoAck is true, the consumer should not call Delivery.Ack. Automatically acknowledging deliveries means that some deliveries may get lost if the consumer is unable to process them after the server delivers them. See http://www.rabbitmq.com/confirms.html for more details.

ConsumeWithContext

autoAck という名前からメッセージを取得したら自動的にそのメッセージに対して ack を返すようなイメージで私は考えていた。しかし、どうやら consumer が subscribe して接続した時点で consume 扱いとなり、consumer がメッセージを実際に取得したかどうかに関係なく consumer の終了時にそのときに溜まっているすべてのメッセージが消失しているようにみえる。余談だが、rabbitmq のドキュメントにも noAck と autoAck という2つの用語が存在する。どうやらもともと noAck という名前だったのを autoAck という用語に変更したようにみえる。メッセージを永続化するには autoAck=false にしてメッセージに対する処理を完了した後に consumer が必ず ack を返すという実装にしないといけないことがわかった。このパラメーターは2年前から同じ設定だったので私がいま検証するまで誰もこの振る舞いに気付かなかったんやと驚いた。

部屋の掃除

19時に閉まる業務スーパーへ買いものへ行くために18時過ぎにお仕事を終えて、移動して買いものをして、炊飯開始して、ジョギングして、戻って晩ごはんを食べて、バドミントン練習をして、お風呂に入って、ストレッチして、なんとなくベッドに入って休もうとした。ここで22時半ぐらい。まったく眠れなくて寝室の掃除を始めたら、これが捗ってやる気が出てきて、部屋のレイアウト変更したりして少し片付けもできた。引っ越してからまったく進めていなかった部屋づくりが突発的に急に少しできた。これまでも時間がなかったわけではないが、まったくやる気がなくて手をつけられていなかった。それがなぜできたのかはわからないが、手をつけられていなかったことに手を入れられたことで心理的に楽になった気がした。明日も帰ったら少しだけ部屋づくりの作業をしようと思う。

より良くなって苦しくなる

お仕事の区切りが悪くて23時までコードを書いていたので今日のバドミントン練習はお休み。ひたすらテストコードを書いている。テストケースをみて、カバレッジをみて、アプリケーションコードを読んで、テストコードを読んでの繰り返しの日々。時間をかけてきたけれど、ようやく成果が出てきつつある。一番ややこしいところのカバレッジを 50.6% から 80.4% に改善したと報告をあげた。テストデータを細かく管理できるようになったのでカバレッジが上がっているだけでなく、複数設定の違いによる振る舞いの検証も進んでいる。

改善のための改善を繰り返すと苦しくなる

ちょうどいま私がやっていることのしんどさを代弁してくれているような記事をみかけた。

私もいまマネージャーやって、プロダクトの開発全般を改善して、また開発者に戻ってプロダクトのコードを改善して、ここ半年ほど技術的負債になってしまったところを改善しまくってきた。小さい規模ではうまくいったことが規模が大きくなる中での見直しや依存関係によって複雑化したり、自動化をしても自動化のための仕組みは保守しないといけない。改善にはいろいろ面倒くささがついてくる。その割にその成果がみえにくかったり分かりにくかったりする。やっている本人ですら微妙とか思ってしまうことさえあるものの、しかし、それをやらないとさらにひどい状況になるのでやらざるを得ない。

ひどいプロダクトやどうしようもないスタートアップなどはリアーキテクチャをやらないので直せないといった状況になってしまい、保守している人たちが苦労したり、鈍重な開発で苦しんでいるのをみかけたりする。少なくとも私がイニシアティブをとっているプロダクトでそんなことは起きない。常に改善しまくっているから短期でみた機能開発のスループットは高くないかもしれないが、中長期でみた開発を停滞させる要因はまったくない。

この「より良くしているのに、より苦しくなってくる」機序は、基本的に産業資本主義の特徴なのだろうと思っている。
時間軸上の価値体系の差異から価値を取り出す行為を回し続けないといけなくて、効率化して生産性を上げたなら、さらに上げ続けないと価値を取り出せなくなってしまう。

テストがなければそもそもテストの改善や見直しという作業は発生しない。開発したときにテストコードを書くという作業も発生しない。業務量はずっと下がる。もちろんその減った業務量は将来の不具合や鈍重な開発により後払いになるわけだが、いまテストを書いていてもその保守や改善のための作業が既存の開発に付加された形で将来に積み重なっていく。テストがなかった未来とテストがある未来を比較することはできないが、どちらの未来にも手に余る業務量が待ち受けているという展望はそれほど変わらないようにみえる。そこで自身の自己実現や成長といった目的がないのであれば、テストがある未来に得ているはずの利益を資本家が搾取するだけで労働者はなんら変わらないのではないかという気持ちが「改善すればするほど苦しくなっていく」と感じてしまう。

光るシャトル雑感

今日のバドミントン練習は公園で軽く打ち合いを15分ほどした。昨日は疲れて休んでしまってオフィスへもっていくご飯も炊いてなかった。お仕事もバタバタしていてほとんど何も食べずに夜まで過ごした。

光るシャトルの試し打ち

シャトルのコルク部分に LED がついた光るシャトルがある。amazon で検索してみつかるのはほとんど中国製で安かろう悪かろうな印象を受ける。試しに買ってみて4個で561円だった。注文してから届くまで3週間ほどかかった。amazon の配送状況もトレースできていなくて今週中に届かなければ返金しますというステータスになってから郵便受けに届いていた。値段も安いからシャトルの品質は粗悪なモノだった。軽く練習で使うならいいんじゃないかと私は許容範囲。

バドミントンのシャトルを打ち合いするには公園の街灯は光量不足でみえない。光るシャトルなら軌跡を追いかけられる。慣れればそれっぽく打ち合いできそうな雰囲気はした。今日は雨上がりで地面が濡れていたのと風も少しあったので軽く試し打ちにとどめた。また天気のよい日を探してやってみようと思う。なにもしないよりはラケットの制御やシャトルを打ち返す感覚を養うために使うのはよいと思う。一方で打ち合いするにはそんなレベル感で一緒にやってくれる人を探さないといけない。相手を探す方が難しい気はする。

電池交換は不可で10時間ほどで電池がなくなる。おそらくコルクに LED を取り付けたものだと状況によってはすぐ壊れるだろう。安いから使い捨てでも構わないが中国から取り寄せになるから購入に時間がかかる。品質のよい既存のシャトルに自分で電子工作して LED を取り付けたりできないやろか?と考える。そうすれば電池交換や修理対応も自分でできてコストも削減できて、品質がよければ他の人にも関心をもってもらえるかもしれない。

お風呂ウォーキング

光るシャトルの試し打ちを付き合ってもらってから、ながいさんと HATなぎさの湯 へ歩いて行ってきた。往復してきて15,000歩を超えていた。前回は3月26日に行っていた から半年ぶりになる。もう半年以上も経っていることに日記から気付く。毎日なにかしらに追われて生活しているとすぐ半年や1年がたってしまう。時間が早い。いつでも行けるはずなのに予定を作らないと私はなかなか行けない。ここのお風呂は温度はぬるめ。熱いお風呂が苦手な私でもゆっくり入れる。月曜日のせいか空いていた。最近はシャワーで済ます日の方が多く、お風呂はたまにしか入らない。久しぶりに足を伸ばしてお風呂に入ってリフレッシュできた。あと県立美術館前の広場やスペースも人がいなくてバドミントンの練習をするにはよさそうにもみえた。人が来なくて広いスペースを自然に探すようになってきた。

ひとりではできないこと

今日のバドミントン練習はエアシャトルでリフティングを30分した。連続最大回数は80回だが、ほとんどの試行は20回も続かずに失敗してしまう。難しい。

隔週の雑談

顧問のはらさんと隔週の打ち合わせ。今日の議題はこれら。

課題管理と adr の関係の考察

数年前から adr の話題や導入した会社の記事などをみかけるようになった。私はこれまで課題管理をうまくやっていれば adr はそれほど重要ではないとあまり重視してこなかった。しかし、世の中的に認知されて流行っているものはなにかしら意義があるのだろうと最近は少し見直してきているところもある。このスライドによると2017年から流行り始めたらしい。

  • 開発に関する情報を一元管理する、または全文検索ことにビジネスチャンスはある
    • 検索のニーズや要件は多様で言語によっても違い、技術もまだまだ発展的でもあるからずっとビジネスの種になる気はする
    • gitlab issues のコメントの全文検索は有料機能なので slack 通知したチャンネルを全文検索している
      • 課題管理システムのプラグインでテキストをシステム間連携することで検索システムを別途構築できる可能性がある
      • 検索できなくてもデータのアーカイブをするという視点でもビジネスニーズに応える?
  • ベクトル検索 を検索がまだ一般的にはなっていない?
  • wiki と adr の違いの1つとして wiki になにを書いてよいかわからない問題がある
    • 文章を書けるようになるのは経験や習熟を必要とする
    • adr のようなテンプレートがあることで経験の浅い開発者も書きやすくなる狙いはある
    • 課題管理システムの wiki に adr のラッピングをして別機能としてみせるのはよいかもしれない
    • 業務の引き継ぎにも adr は役に立つのではないか?
    • adr 一覧をみたり、そこから検索することで検索効率や精度は上がるという想定
  • 大きい会社でも巨大な課題管理システムと wiki が1つだけあって一元管理しているという噂は聞く
    • ある会社では wiki は誤っている可能性があるから信用するなという教訓があった
      • wiki の情報は更新されていない可能性があるから参考にしながら必ず裏をとって業務をしなさいという話し
    • wiki を編集したら必ずレビューが必要になるプロセス
  • notion のプロジェクト管理の使い勝手はどうか?
    • テンプレートを使ってガントチャートやカンバンを作れる
      • 基本的に自分でカスタマイズできることの良し悪しがある
        • db をどんどん改良できるが、それだけに魔改造してしまう
        • 時間とともに複数人が改良すると保守できなくなっていく懸念がある
      • 中核機能をパッケージ側で提供することは堅牢性を担保する上で重要ではないか
    • タスク管理と wiki がシームレスなところはよい、はらさんは日報を書いてリンクしている
  • 会社のインフラに日々の開発情報を書いていくと退職後に参照できない
    • フリーランスのような働き方をするにはナレッジデータベースをローカルに作りたいという欲求がある
    • 組み込みの課題管理システムにより、自身のナレッジデータベースをローカルに残すという目的はよいかもしれない

仕事は楽しいかね? の考察

まとめを見返しながら、だいたいの項目は理解または支持できる。1つだけ次の項目が私には欠けていることに気付いた。

毎日1つ試し続ければ必ず上達や進歩ができる

  • 新しいことを始めると、いまやっていることを継続する時間がなくなったりしないか?
  • プロダクト開発ではがんばってもあまり成果が出ないような時期もある
    • リファクタリングやテスト追加などはまさにそう
    • そういったときも1つでも変化をもたらせれば日々の生活が変わるのか?
  • はらさんのお奨めは梅原さんの 1日ひとつだけ、強くなる。 世界一プロ・ゲーマーの勝ち続ける64の流儀
  • 本書を読んではらさんのよかったところは「試してみることに失敗はない」
    • それまでも試すことはやっていたはずなのに躊躇してしまう理由として失敗したら時間の無駄だと考えてしまっていた
    • 失敗したら嫌だと考えてしまうところがあったが、この考え方があるから vision pro を購入できる
    • やりたいことをすぐやってみるという思考につながった
  • 面倒くさいときもなるべくパソコンを使うようにしてなにかしら調べる
  • 私はオフィスにいれば、家よりはなにかしら作業するモチベーションになる
  • 目標達成や成果をあげるには環境がもっとも大事
    • 個人の感情を信頼しない
      • 人間は面倒だとすぐ怠けてやめてしまう
    • 環境を整えることでワークフローを洗練させて習慣化する
      • 日記になにか書かないといけないから調べものをする
      • 嫌々ながらでもやっているうちに習慣になってくるとワークフローが洗練していく
      • 人間の運用を変えていくなにかは普遍的な価値またはビジネスチャンスがある
    • 調子の悪いときにどうやって早く脱却するかが大事
      • ひとりでは言い訳を作ったり怠けてしまう
      • このときに他人の助けがいるのではないか?
        • 話しを聞いてもらうだけでも前へ進むきっかけになる

go の結合テスト向けカバレッジ計測の考察

以前リリースパーティーで go 1.20 で結合テスト向けのカバレッジ計測の機能が入ったことを聞いていた。次のブログ記事でやり方が紹介されている。

将来的に結合テストを作るときにカバレッジ計測のカスタマイズを施したバイナリを使って api server を起動する仕組みにすればこの機能を使えることに気付いた。

まずは単体テストを実行して任意のディレクトリ (tests/coverage) にカバレッジ計測のための中間データを生成する。

$ mkdir -p tests/coverage
$ go test -cover ./... -covermode atomic -args -test.gocoverdir="$PWD/tests/coverage"
$ go tool covdata textfmt -i=./tests/coverage -o coverage.out

coverage.out がさまざまなツールの入力となる統計情報となる。例えば、このファイルを使って次のようにしてソースコードのヒートマップの html を作成できる。

$ go tool cover -html coverage.out -o coverage.html

nikolaydubina/go-cover-treemap を使うと treemap でカバレッジのヒートマップを確認できる。

$ go-cover-treemap -coverprofile coverage.out > treemap.svg

カバレッジ計測向けのバイナリをビルドする。そのバイナリを起動するときに環境変数 GOCOVERDIR に単体テストのカバレッジの中間データが含まれるディレクトリを指定する。

$ go build -cover -covermode atomic -o bin/api ./cmd/api/...
$ GOCOVERDIR="$PWD/tests/coverage" ./bin/api -verbose

このバイナリを使って起動した api server に対してリクエストを呼び出すことでカバレッジを計測してくれる。結合テストからバイナリ起動した api server に対してリクエストしたときに GOCOVERDIR に中間データが追加されていく。結合テストを完了したら最終的なカバレッジの統計情報を生成する。 

$ go tool covdata textfmt -i=./tests/coverage -o coverage.out

textfmt のヘルプをみたら同じディレクトリじゃなくてもよいみたい。

$ go tool covdata textfmt -help
...
Examples:

  go tool covdata textfmt -i=dir1,dir2 -o=out.txt

  	merges data from input directories dir1+dir2
  	and emits text format into file 'out.txt'

責任を扱うコミュニケーションの在り方

水曜日から継続していたメンバーのコードレビューをお昼頃に完了して、それからは自分の時間に集中して開発に取り組めた。途中、晩ご飯休憩もしながら翌2時頃までコードを書いていて issue を2つ fix した。

隔週の雑談

顧問のはらさんと隔週の打ち合わせ。ここ1-2ヶ月はあまり議題がなくて近況について雑談した。いまの開発フェーズが終わらないと、私が開発以外にリソースを割いていないので他のことに取り組む余裕はないかもしれない。開発プロジェクトにおける、議題の1つで次のインタビュー記事の内容について雑談した。

責任をすぐに相手に投げてしまわないこと。責任をこちらで負えるように日頃から信頼貯金を貯めていくことが大事です。責任を負うこと自体はたいへんだけど、仕事は楽になるんです。

でも、人は責任を負いたくないと考えてしまうんですね。気持ちは分かりますよ、責任を負うのには胆力が必要ですから。そして責任を負いたくないから「いつまでですか?」と聞いてしまう。その途端、スケジュールを決めるのは相手の裁量になる。責任から降りて、自分から立場を下にして、受発注の関係にしてしまっています。

何が事業貢献なのか分からなくなっていた伊藤直也さんが再認識したユーザーエクスペリエンスへのコミット

私自身、このインタビュー記事を読むまで相手に仕様や納期を決めてもらうことを、相手に責任を負わせるという視点をもっていないかった。しかし、その通りでもあると新たな気付きを得た記事でもあった。うちらはプログラマーという、システムを作る専門家なのでビジネス課題や解決したい業務課題について、その課題意識をもっている人 (ビジネスオーナー) から教えてもらうのを至極当然のように考えてしまう。そして、それ自体はいまの業務の在り方としてそうならざるを得ないところもある。

システム開発はそれぞれの専門職が分業によって行う。とくに規模が大きくなればそうなる。この構造そのものは一般的といえる。しかし、一緒にプロジェクトをやっていく働き方や考え方によってはその責任を分散させられるというのがこの記事に書いてあることだとわかる。そして、私自身これまで意識せずにそういった行動をいくらか取ってきているところもあり、それは「気付き」のレベルによって起こるものだとずっと考えていた。気付くからより多くの、より本質的な、より優れた改善のための行動ができる。そして、私の考え方も間違ってはいないと思うが、私は他人よりリスクを取りがちな性格があるから責任をこちらで負うという意識をあまりもっていなかった。つまり、私は自分の価値観でこうしたいと思って勝手にやっていたことを、別の見方では相手から責任を受け取って進めているという解釈もできる。

ちょうど 兵庫県知事の百条委員会の答弁 もみていて感じたことだが、私はこういったコミュニケーションを本質的に好んでいない。自分の責任ではないという議論をしても、モノゴトは前に進まない。世間では百条委員会の後も知事の説明は十分ではなかったとみられている。その所以である。誰かが責任をもってモノゴトに取り組む必要がある。その責任の所在を明確にすることも大事ではあるが、自身の責任ではないという主張だけでは物足りなさを感じる。普段の業務においてもそういう姿勢やコミュニケーションを取る人が少なからずいる。はらさんの経験でもその点においては同意していた。よくある状況だと思える。自身に責任を負うことをためらわないコミュニケーションを取る人とそうではない人の2通りがあるのだと気付いた。そして、私は後者の人とコミュニケーションを続けていると疲弊したり苛々したりすることがある。それゆえに私自身も結果に対して潔くあろうと努めるし、潔い人たちとウマがあうのだろうともわかってきた。

課題管理の文脈においては、コミュニケーションのやり取りから責任の綱引きがどのような場所でどのぐらい起きるのか。人間であれば読み取れるが、ai はその意図を解釈できるか。そういった業務の責任という概念を見える化することに意味はあるかもしれない。責任の押し付け合い、または責任分散、本質的にどうあるべきだったかをなんらかの指標をもって数値化できればおもしろいのではないかと思えた。

go における簡単な式の評価

テスト自動化のツールを作っていて、テストデータでちょっとした式の評価をやりたくて調べたらまさに次の記事で解決した。

この記事では go/types パッケージに定数や式の評価を行う機能がその使い方が紹介されている。簡単に使える。ふとサードパーティのパッケージならどうなるんだろう?とインターネットを検索したものの、自分ではみつけられなかった。chatgpt に問い合わせたら次のようなコードを紹介してくれた。そして、たしかにほとんどは正しくて意図したように動いた。次のコードでは http フレームワークの echo の定数を参照している。types.Package を生成するためのモジュールの読み込み方法について標準ライブラリはそのためのユーティリティが用意されているが、サードパーティのパッケージは用意されていなかった。

import (
    "fmt"
    "go/token"
    "go/types"
    "golang.org/x/tools/go/packages"
)

func eval(expr string) (types.TypeAndValue, error) {
	cfg := &packages.Config{
		Mode: packages.NeedTypes | packages.NeedImports,
		Fset: token.NewFileSet(),
	}
	pkgs, err := packages.Load(cfg, "github.com/labstack/echo/v4")
	if err != nil {
		return types.TypeAndValue{}, err
	}
	if len(pkgs) == 0 || pkgs[0].Types == nil {
		return types.TypeAndValue{}, fmt.Errorf("failed to load echo package")
	}
	mainPkg := types.NewPackage("main", "main")
	mainPkg.Scope().Insert(types.NewPkgName(token.NoPos, mainPkg, "echo", pkgs[0].Types))
	return types.Eval(
		cfg.Fset,
		mainPkg,
		token.NoPos,
		expr,
	)
}

このコードで expr に次のように echo の定数を指定するとその値を参照できる。

echo.MIMEApplicationJSON

動的型付けのノリで関数も実行できたりするのかな?と試してみたら (当たり前だが) できなかった。chatgpt になぜ関数実行できないかを尋ねたら次であるとのこと。静的型付けのコードを実行するには、本来コンパイルしないといけないのだから式の評価よりもずっとやることがある。

packages.Load を使用してサードパーティパッケージをインポートできているにもかかわらず、expr からそのパッケージの関数を呼び出しても結果が取得できない原因は、go/types パッケージがサポートしているのは、型や定数のチェック、構文解析、式の評価であって、関数の実行そのものはサポートされていないためです。

go/types の Eval 関数はあくまでコンパイル時の型検査や式の評価を行うもので 関数の実行や実行時の評価 (ランタイムの処理) は行いません。これは、Eval が式を評価して型と値を返すだけであり、動的な関数の実行などはできないためです。

実際に動くようになってからわかること

東京出張しての、隔週の定例会議にて、ある仕様について話しをした。これまでもずっとそういう仕様ではあったが、実際の本番運用が近づいてきて、実運用を考えているうちにある要件が出てきた。しかし、現状のシステムの構成上、その要件は満たせないことがわかった。1年半にわたって開発してきて初めてこの要件は現状のシステムの制約でできないと発言した。出来ないものは出来ないで仕方ない。それでも今更そんな要件が出てくるところに課題管理として出来ていなかった反省もあるし、気付きが足りなかった。私は20年も開発してきたからたいていの要件への対応は出来るだろうと、自身の経験から過信してしまっているところもあったなと思えた。やはりお仕事になるエンタープライズの要件はなかなか難しい。難しいからお客さんはお金を払って si 的なお仕事になるとも言える。自分への情けなさとそれでもできる範囲でやっていかないといけないという現実とを実感したひとときだった。

運動は瞑想

今日の運動は腹筋ローラー,スクワット,縄跳び(両足跳),散歩,ジョギング,ハンドグリップ,ダンベル,フリスビーをした。統計を 運動の記録 にまとめる。

みなとのもりの運動

前回の所感 。荷解きや梅雨で天気が悪いのもあってなかなか公園へ出掛けられていなかった。今日は梅雨の中休みで久しぶりに晴れた。もう蒸し暑くて少しカラダを動かしても汗がだらだら出てくる。岩盤浴のような汗のかきかた。それでもカラダを動かしているとテンションが上がってくる。嫌なことを忘れられる。今日はさごうさんが自転車で来られたので一緒にフリスビーをした。さごうさんは競技用っぽい速そうな自転車を乗っておられてあちこち行かれるのだという。相手がいると、フリスビーやバドミントンとか、カラダを動かすモチベーションになってよいと思う。さごうさんにジョギングしているところを撮ってもらった。カラダの線がだいぶスマートになってきたかな。

夕方にカフーツさんへ行った時点で消費カロリーが3000を超えていた気がする。結果的には4061カロリーを消費した。朝から運動するとエネルギー消費が先行して気分がよい。

体脂肪コントロールの総括を始めた

1月のどこかで 70kg という目標設定したと思うが、日記には書いてなかった。すでに 体重目標を達成 している。体脂肪コントロールが想定以上にうまくいったのでその総括をしておきたい。体重計と連携する eufylife アプリ の月間レポートが見栄えがよい。これまでの記録で3-6月分の4つを確認できる。eufylife や fitbit の測定データなどもまとめて公開してしまおうと考えている。私の個人データだからオープンにしてなにかの分析に使えるなら世の中に役に立ててもらおうと思う。

ストレッチ

先週は引っ越しでお休みしたので2週間ぶりのストレッチ。ここ2週間はあまり運動できていないため、筋肉痛や関節痛はおさまっている。しかし、引っ越しで荷物を運んだ影響があって腰の張りが強かった。トレーナーさんも気を使って腰回りのストレッチを重点的にしてくれた。特定の部位の張りが強いわけではないが、足周り全般もギクシャクするような、あまりよい感じはしなかった。先週休んでメンテできていないせいかもしれない。ベアリングやパッキンの不良で動きの悪い機械のような感触。今日の開脚幅は開始前149cmで、ストレッチ後155cmだった。

カフーツさん訪問

ながいさんは毎週末の夕方にカフーツさんへ行っていると聞いたので私も時間があればちょくちょく行ってみようかなと、今日も行ってみた。本当は溜まっているお仕事しないといけないのだけど、、、。いまはモチベーションなさ過ぎて易き易きへ流れる、典型的なダメ人間の状態になっている。燃え尽きの回復期といったところ。カフーツさんでいろいろな話しを聞いたり、出来事があった。覚えている範囲で書く。

  • 住居の実勢価格

    • 社宅の固定資産税評価証明書 から住んでいるところの固定資産税評価額が520万円だとわかった
    • ながいさんに住居の実勢価格を聞いてみたら4000万円は超えるだろうとのこと
      • 固定資産税評価額と実勢価格は乖離している
      • 同じマンションの 2LKD-3LDK が 5280-5780万円で売られていたから妥当な数字
    • 仮に4000万円だとして月額の家賃で割ってみると約24年かかる
      • 固定資産税や修繕などを考慮すると、こういう住居を投資目的で購入して利益にするのは難しそう
    • 将来的に住居をどうするかをこれから考えていかないといけない
      • 実家へ帰る
      • 神戸にこのまま住み続ける
        • 賃貸
          • 三宮・元町エリアは住むのに便利
        • 購入
          • 購入はもっと田舎の方に行かないと厳しそう
  • SPINE SALON の予約

    • ながいさんのテナントで運営している著名な理学療法士さんがいるとのこと
    • ここ数年ずっと右股関節がよくないので周りから診察してもらった方がよいと促された
  • キャンプ飯部のなにか

    • しちりんやはんごうを使ってコワーキングスペースで焼きものや揚げものをした
    • おいしかったし、油がパチパチ言ってて風情があって、めちゃくちゃ楽しかった
    • こんな発想はどこから出てくるんやろな
      • コワーキングに集まる人たちの個性に出会うと楽しい
    • 材料費の大半をながいさんが負担しているのでいくらか支払いたい
      • 返報性の原理 としてもらいっぱなしはよくない
      • 今度行ったらなんらかの文脈で費用負担できる話しをしたい
  • 本屋で待つ

    • 文脈を忘れてしまったけど、いとうさんから読めと言われたので購入した
  • ソフトウェア (アプリケーション) の保守コスト

    • ソフトウェアは新規開発するよりも保守にお金がかかる
    • 作ったものを何もせずに置いておけばいいのに、なぜ毎年お金がかかるのか?
      • アプリケーションが動くサーバーを稼働させるには電気代と土地代 (データーセンター) がかかる
      • ハードウェアは定期的にリプレースしている
        • サーバーもストレージも、機械は必ず故障する
          • サーバーを数百台管理していると、毎週数台は故障する
        • メーカーは7年ぐらいしか部品を提供しない
        • データは半永久的に活用できるが、ハードウェアは常に置き換え続けないといけない
      • ソフトウェアはバグ修正や改善をしてこまめにバージョンアップをしている
        • 現代は オープンソースソフトウェア を使った開発が当たり前になった
          • アプリケーションを構成するフレームワークやライブラリなどのモジュールを常にアップデートし続けないといけない
        • バージョンアップをこまめにやらないと変更内容の追跡が難しくなって、影響を把握できなくなるからバージョンをあげられなくなる
          • バージョンをあげたときにトラブルが発生する確率が高くなる
          • トラブルが起こったときに原因調査やその対応を行うのにより多くの手間暇がかかる
            • そういう面倒ごとをやってくれるエンジニアは少なく、且つ安い単価ではやってくれない
        • とくにセキュリティ対応などは互換性を壊してでもやらないといけない
        • ソフトウェアをバージョンアップし続けるにもエンジニアの人手が常にかかる
      • 外からみてまったく同じ動きをするソフトウェアを維持するにも裏ではたくさんの作業をしている

おもしろい話しをたくさん聞いたはずなのに、私が飲み過ぎて酔っ払っていたのであまり覚えていない。楽しむモードになっていたのでメモもとってなかった。あと持参した焼酎を飲みきらないといけないと構えていたのもあって、気付いたら飲み過ぎてしまっていた。おそらく羽目を外しすぎて周りに迷惑をかけたのではないかと推測する。申し訳ない。お酒は少し控えよう。自分が40歳を超えてみて、老若男女が集まれるコミュニティというのは想定以上に少ない。カフーツさんは比較的、年齢層が高めな方が集まっている気はするが、コワーキングならミドル世代の人たちも自然に集まって話せる。私のような、ひとりの人間にとっての居場所にもなる。

おひらきになったのは2時頃だったと思うが、ながいさんはそれからテナントへ戻って掃除するという。日々の業務を淡々とこなしているところがすごい。私も見習いたい。

ひとり会社は相談相手がすべて

今日の運動は背筋,縄跳び(両足跳),散歩,ジョギング,ハンドグリップ,ダンベルをした。統計を 運動の記録 にまとめる。

経営よろず相談

朝一で 兵庫県よろず支援拠点 へ融資の相談へ行ってきた。予約をとるときに融資相談なら元銀行員がよいだろうとのことで鹿島さんというコーディネーターが相談にのってくれた。後でサイトのプロフィールをみて知ったことだけど、プロフィールによると都市銀行で法人営業を担当して30年1500社の経営相談にのってきたとある。とても話しやすかったし、金融機関の担当者が知りたいことやチェックする要項などを的確に教えてくれて、とても参考になった。前に「専門家は質問する」という記事を読んだことがある。まさに鹿島さんはそんな感じに質問を繰り返した。

人に自分の知識を話すのが専門家の仕事ではない ということだ。 専門家はどのような質問をすべきかを心得ており、自分の知識をその場の状況に応じて柔軟に適用する。専門家であるということは、TPO を高度にわきまえた、 分別ある決定ができる人間であるということなのである。

あなたは専門家か? (Are You An Expert?)

鹿島さんの質問に答えているうちに、うちの会社が融資を受けるためにやらないといけないこともかなり明確になってきた。うちの会社は財務も安定しているし、約5年分の実績もあるし、金融機関側からみたら貸し倒れのリスクが小さいことが伺えて融資のハードルは低くみえると仰っていた。あとは私がやりたい課題管理の事業を、非専門家が理解できる形で言語化したり、ビジネスモデルを作るところができれば融資を受けるのはそれほど難しくないだろうとのこと。法人として自信もつけたので次は事業計画書を作ってレビューに伺おうと思う。

みなとのもりの運動

前回の所感 。月・火曜日と雨降りだったので2日ぶりに公園へ行った。ジョギングをしても縄跳びをしても休養明けなのでカラダが軽い。どちらも普段よりもよいスコアが出たと思う。昨日が大雨だったせいか、今日の公園はいつもより人が少なくて芝生のスペースを広く使えて快適だった。あと夕方は蚊が飛んでいるのが目につくようになってきた。暗くなってからかゆい部位もあるので蚊が気になる季節になってきた。あと何日ぐらい公園に通えるかなぁ。

能楽師はどのように能を演じているのか

今日の運動は腕立て,散歩をした。統計を 運動の記録 にまとめる。夜にお出掛けしたので運動のお休みも兼ねて軽めにした。

ipad air 試用

先日 注文した ipad air 11インチ が届いた。会社名を刻印してみた。会社の備品にするときは刻印するのがよいな。近くにある iphone と同期して自動的に設定をコピーして、ソフトウェアアップデートして、ほんの20分ほどですぐ使えるようになった。この仕組みはよくできていると思う。初期設定とか面倒なのでこの作業をスキップすると ux が高い。知人からスピーカーがよいという評判を聞いていたので youtube で適当な音楽を流して聴いてみた。私がこれまで使っていたものは2016年モデルなのでハードウェアの進化を考えると当たり前だと思うけど、たしかに音質がよいことは素人にでもわかるぐらい音質に違いがあった。画面サイズは 9.7 インチから 11 インチへ大きくなったが、それほど大きさの違いは感じない。それでもキングダムの漫画を読んでみると大きくなった分の迫力のようなものは少しあった。2016年モデルと比べて、ホームボタンがなくなっているところの操作の違いに慣れはいるが、大した問題ではない、画面上部の細いスイッチに Touch ID が実装されているのは嬉しい。角度をあわせないといけない Face ID よりも Touch ID の方がずっと使い勝手がよい。

能楽の勉強

たまにある「能のことばを読んでみる会」に、大阪の 扇町ミュージアムキューブ へ行ってきた。前回の所感はここかつて在原行平に愛を受けた姉妹《松風》 第38回/第39回【特別編】 能のことばを読んでみる会 の後半編、現役の 観世流能楽師 林本大 さんにお話を聴いてきた。朝原さんとは関西大学の能楽部の先輩・後輩の関係にあたるという。林本さんは1977年生まれなので私よりも2歳年上になる。1999年に入門して10年間の内弟子修行をしたとあるので22歳から32歳まで修行して、それから能楽師として独り立ちしたのかな?

前回の読んでみる会で松風の背景やあらすじはすでに理解していた。今日は林本さんに芸能として松風を演じる上での、能楽師ならではの視点などを、朝原さんが要所要所を質問しながら林本さんが答えるといった流れで2時間半ほど続いた。めちゃくちゃおもしろかった。これまで私は能を古典文学や歴史の書のように学んできたわけだけど、能は本来、舞台芸能であり、演じる上での感性の方がより能の本質に近いと言えよう。松風は室町時代から名曲と言われている。それは世阿弥作の、世阿弥自身が自画自賛していることからも伺える。世阿弥が残した書物にこんな一文がある。

松風村雨、 寵深花風 (ちょうしんかふう) の位歟 (くらいか)

「寵深花風」というのは世阿弥が能の芸を9つの段階に分類した 九位 と呼ばれる、9段階のレベルのうち、上から2番目に位置する。つまりレベルが高いことを表している。林本さんからも、若い能楽師は鬼の役やよく声を出すような役を演じるという。そして能楽師として円熟して40歳前後?になったときに初めて松風を演じるという。

松風は一般論として美しい曲だと言われている。演じる上でも美しさを表現しないといけない。しかし、松風のシテ (主役のこと) はあまり動かない。動かずにどうやって美しさを表現するかが問われる。ここで林本さんの師匠から松風の美しさとは、儚い物語であるものの強さを表しているという。動かないのに強さを表現しようとしたら「こめる」必要がある。能の世界でいう「こめる」とは外にチカラを出さずに内へ入れることを指し、これがとてもシンドイという。観客が外からみてもわからないところで強さ (美しさ) を表現する。そういった難しさが若い能楽師は演じず (演じさせてもらえない?) 、松風がベテランの登龍門のように言われる所以だという。先に紹介したように、世阿弥も松風は名曲でレベルが高いと評価している。

他にも古典文学を学ぶだけではわかないことの1つとして、次の謡に一文がある。

忍び車を引く汐の 跡に残れる溜り水 いつまで澄みは果つべき

この一文にある「引く」というのは2つにかかり、

  • 車を引く
  • 汐が引く

能楽師が演じる上で車を引き、さらに「溜り水」というのは、実際に車を引いた跡に水たまりがあるという風景を表現しながら、松風村雨の情念が残ったまま成仏できないという想いも表現している。この情景を芸能としてどのように演じて表現するかが能の難しさだという。そしてその謡を理解していると能楽師の所作の1つ1つに意味があって観客も楽しめるという。能を楽しむには教養がいる。しかし、現代人は教養がないので能を楽しむのは難しいということも、こういった解説を知ることで実感できるようになってきた。

あとおもしろかったのが、能面を付けていると基本的に周りはみえないという話し。能面の視野はかなり狭く、周りはほとんどみえていない。先ほどの車を引くときにツレから車をひくための紐を手渡されるのだけど、能面を付けているとその紐はみえないため、紐のどの位置を手渡されたのかを確認できない。小道具の車を引かないといけないから紐の長さを知る必要があって、どうやって紐の長さや距離を測るかを、能を演じながら観客に違和感を与えないよう表現するコツのようなことも話されていた。こういう所作も能面を付けているためにみえないからこそ、そういう動きになるのかと工夫が伺えておもしろかった。

松風という能の結末は松風・村雨という2人の海女の幽霊が出てくる話しだが、これは坊さんの夢だったというオチで終わる。そして、最後の一文が次になる。

村雨と聞きしも今朝みれば 松風ばかりや残るらん 松風ばかりや残るらん

松風の幽霊は行平への想いのあまり、物狂いとなる狂乱の能になる。一方で妹の村雨の幽霊は姉の松風とは対照的に理性をもった振る舞いをしている。話しが進むにつれて、行平への想いが溢れていって松風が狂っていくといった情景が表現されている。そして、その最後に村雨は本当にいたのか?という問いかけのような一文が書いてある。松風と村雨の2人が成仏できず幽霊としてさまよっているのか、本当は村雨はいなくて松風1人だけだったのではないか?という解釈もできるように終わっている。観た人や読んだ人の想像力に委ねるという結末も、やはり現代でも使われるコンテンツの手法だなと思える。とてもおもしろい。

林本さんは 能meets という講座を主催している。能楽師が能の体験や解説をするワークショップなどを行っている。また機会があれば行ってみたいと思う。

人口動態とビジネスの戦略

今日の運動は腹筋ローラー,腕立て,ハンドグリップをした。足の疲労がピークに達しているので今日は筋トレのみにした。統計を 運動の記録 にまとめる。

人口減少カレンダー

この前、というよりももうずっと前だが、散髪屋さんで理容師さんから未来の年表という本に書いてある人口減少カレンダーの紙をもらった。マネーの虎の南原さんも人口動態からビジネスの戦略を立てる ことを言及していた。南原さんの本を読む前にこの紙をもらっていたので人口動態の研究とビジネスの戦略はセットで行わないといけないと考えていた。たまたま部屋の資料などを整理していて、その紙をどうしようか悩んで、ひとまずここにテキスト化しておく。

  • 2017: 「65-74歳」人口が減り始める
  • 2018: 75歳以上人口が「65-74歳」人口を上回る
  • 2018: 18歳人口が大きく減り始める。やがて国立大学も倒産の懸念
  • 2019: 世帯数が5307万とピークを迎える
  • 2019: IT (情報技術) を担う人材がピークを迎え、人手不足が顕在化し始める
  • 2020: 女性の過半数が50歳以上となり、出産可能な女性数が大きく減り始める
  • 2021: 団塊ジュニア世代が50歳に突入し、介護離職が増え始める
  • 2022: 団塊世代が75歳に突入し、「ひとり暮らし社会」が本格化し始める
  • 2023: 団塊ジュニア世代が50代となり、企業の人件費はピークを迎える
  • 2024: 団塊世代がすべて75歳以上となり、社会保障費が大きく膨らみ始める
  • 2025: 東京都の人口が1398万人とピークを迎える
  • 2026: 高齢者の5人に1人が認知症患者 (約730万人) となる
  • 2027: 献血必要量が不足し、手術や治療への影響が懸念されるようになる
  • 2030: 団塊世代の高齢化で、東京郊外にもゴーストタウンが広がる
  • 2030: IT を担う人材が最大79万人不足し、社会基盤に混乱が生じる
  • 2033: 空き家が2167万戸を数え、3戸に1戸は人が住まなくなる
  • 2033: 老朽化したインフラの維持管理・更新費用が最大5兆5千億円程に膨らむ
  • 2035: 男性の3人に1人、女性の5人に1人が生涯未婚という「未婚大国」になる
  • 2039: 死亡者数が167万9000人とピークを迎え、火葬場不足が深刻化する
  • 2040: 全国の自治体の半数近くが「消滅」の危機に晒される
  • 2040: 団塊ジュニア世代がすべて65歳以上となり、大量退職で後継者不足が深刻化する
  • 2042: 高齢者数が3935万2000人とピークを迎える
  • 2045: 東京都民の3人の1人が高齢者となる
  • 2050: 世界人口が97億3000万人となり、日本も世界的案食料争奪戦に巻き込まれる
  • 2050: 現在の居住地域の約20%が「誰も住まない土地」となる
  • 2050: 団塊ジュニア世代がすべて75歳以上となり、社会保障制度の破綻懸念が強まる
  • 2053: 総人口が9924万人となり、1億人を割り込む
  • 2054: 75歳以上人口が2449万人でピークを迎える
  • 2055: 4人に1人が75歳以上となる
  • 2056: 生産年齢人口が4983万6000人となり、5000万人を割り込む
  • 2059: 5人に1人が80歳以上となる
  • 2065: 総人口が8807万7000人で2.5人に1人が高齢者となる
  • 2076: 年間出生数が50万人を割り込む
  • 2115: 総人口が5055万5000人まで減る

今期の予算づくり

今日の運動は腹筋ローラー,散歩,バスケットボールをした。統計を 運動の記録 にまとめる。

隔週の雑談

顧問のはらさんと隔週の打ち合わせ。今日の議題はこれら。

  • 税理士さんの変更に伴ういろいろな共有
  • 第6期の予算共有
  • 課題管理の働き方についての認定証を個人に与えるなにか
  • (時間があれば) 社宅の契約のいろいろ

まだ本格的にスタートするのは半年ほど先になる予定だが、先月から顧問を1人増やしている。はらさんは ui/ux の専門家であり、1人で20年以上会社を経営してきた個人経営の専門家としても私は評価していて、うちのようなマイクロ法人の経営についてアドバイスしてもらうのは最適だと考えている。先月に追加した顧問はさらに技術寄りの、一般的に言えば技術顧問に相当する。その方はある sier の cto を何年も務めているので実績も十分にある。本格的に始動するのがもう少し先なのはよいとして、技術顧問から課題管理ビジネスについて、いまから準備してやっていけることもあるのではないか?という意見が出た。

それは正しくはあるのだけど、私の時間がないというのが現状になる。

課題管理に関する情報収集も、現実の開発における poc も、この3-4年ずっとやってきたことの累積があるから十分にインプットを蓄積できている。これからやらないといけないのは、そういった溜め込んだ1次情報を見直し、整理し、体系化し、会社の戦略として練り直せないといけない。資料を読み、考え、フィードバックを得て洗練させる。地道で時間のかかる作業が必要になる。この時間が私にはいまない。体重を減らすために運動に時間を費やしているのもある。もう一つ、いまのお手伝い先の受託開発で私が開発の実務もやってしまっているというのがある。開発の実務をやると途端に時間がなくなる。なぜならば、プログラミングというのは製造業における設計に相当する業務なので、開発に終わりはないし、無限に品質を上げるための取り組みに注力してしまえるから。お手伝い先の受託開発で実務から離れない限りは課題管理のビジネス作りに時間を割く余裕がないというのが現状になる。

スクラムという開発方法論について調査した issue はいくつもある。そして、たとえば「スクラムのよくないところ」といった話題ではらさんと軽く話し始めたら20分は議論が尽きない。この話題で私はいくらでも話せるが、やらないといけないことは、そこからさらに洗練させて言語化しないといけない。そういったノウハウや概念の体系化や整理には得てして時間がかかる。

今期の予算を策定して現時点ではざっと500万円弱の赤字を見込む。今期から投資フェーズへ移行したいと考えている。役員報酬はすべて役員借入金にして会社のキャッシュアウトをなくせば、ほぼとんとんで会社は維持できる見込みで想定している。他社の実務は受けないけど、付加価値の高いコンサル案件なら多少は受けて赤字を減らすための施策はできないか?と思ったりもするけれど、なかなか難しいかなとも考えている。

バスケットボール

近所にある みなとのもり公園 でバスケットボールをしてきた。先日購入したバスケットボール をもって行った。幸いコートが1つ空いていて自由にドリブルやシュートの練習をしてみた。個別に自由練習できるからボールを2個買っておいてよかった。2人で練習していたら、途中から3人グループがやってきて、混ざって練習していた。私は別に独占する意図はないから人数少なかったらこうやって一緒に混ざって練習するのもいいかもなと思えた。それなら3つのコートが空いていなくても、人数の少ないコートに行って入れてもらってもよいかもしれない。もしくはミニゲームを申し込んでやってもよいのかもしれない。

1時間ほど練習したり1on1したりした。相手がわざわざ西明石から出てきてくれたので晩ご飯も食べにいった。夜に行ったことのない ISOGAMI餃子バル TOMAKO へ行ってみた。お客さんよく入っているし、お店の雰囲気もおしゃれだし、女性客も多い。よいところなのだろう?と勝手に思っていたけれど、実際に行ってみるとそれほど特別とも感じなかった。もちろん個々の単品はおいしかったし、十分に平均以上のお店ではあるのだけど、なにか小さくまとまった感があって、前を通る度に外からみて人気店なのだろうと上がっていた私の期待値に応えるほどではなかった。でも、軽く晩ご飯を食べて1-2時間ですぐ帰るといった用途にはよさそうに思えた。