Episode11: AIエージェントにて開発の半自動化

健康DXとしてGoogle HealthConnect上のデータを、Google SpreadSheetに出力するスマートフォンアプリを作っています。下の図のようにChatGPTにソースの生成をお願いしては、ソースを書いてもらって、そのソースをAndroid Studioに貼り付けて、ビルドしたりデバッグしたりとしています。ビルドでエラーがでるとChatGPTにエラーを伝えてさらに修正案を出したもらったりと開発者を中心に生成AI(ChatGPT)とIDE(Android Studio)を行き来して開発を進めています。

生成AI(対話)を用いた開発の課題

生成AI(ChatGPT)は、対話を重ねることでプログラムもサポートしてくれソースを示してくれるなどプログラミングもずいぶんと楽になりました。今回のスマートフォンアプリを作る時にKotlinというJavaベースの開発言語を使っていますが、私にとっては初めての取り組みです。それでもChatGPTのサポートを得ながら、プロジェクトを作り、ソースを一つ一つ足していき、テストをしながら徐々に機能を改善してきました。

ただ、課題もありそれはやり取りがとても多くなることです。何かを考えるのはChatGPTとやり取りを重ね、具体的なソースコードができれば、IDE(Android Studio)を使ってビルド。ビルドエラーが出ればChatGPTと確認し、改善版のソースを取得。改めてIDEでビルドの繰り返し。ビルドが通れば実機でのテスト。テストの状況によってはさらにChatGPTとのやりとりを重ね修正や改善をひたすら繰り返す。その間、状況を見失わないようにバックログもChatGPTで管理してもらっています。

ChatGPTはとても役立っていますが、こちらの能力不足も重なってかなりやり取りが多くなっています。もう少しゆだねることができればと思うところです。

AIエージェントの活用

最近では、AIエージェントを用いた開発が取りざたされています。開発でやりたいことを伝えて開発者の代わりにAIエージェントがソースを書き、問題があれば自己解決を図り、さらにテストやビルドも実行させることが可能です。今回、ChatGPTを利用していることもあり、CODEXを利用します。最近ではGitHub Copilot, Claude Codeなどのコーディングアシスタントも出てきていますが、まずはChatGPTの契約の範囲内で利用できるCODEXを使うことにしました。

それぞれの関係は以下のようになります。開発者とAndroid Studioとの間にCODEXが介在するようなイメージです。実際にはAndroid Studio上のターミナルでCODEXを実行していますので図としては少し違和感があるかも知れません。

生成AI関係性の変化

CODEX利用の前後で生成AIに期待する役割が変わってきます。以下表にまとめます。

フェーズChatGPTのみChatGPT+CODEX
プログラミング内容の検討ChatGPTと対話で検討同左。さらにCODEXへの依頼用のプロンプトの作成を依頼。
ソースコードの作成・修正ChatGPTと対話で生成されたソースをAndroid Studioに貼り付ける。まれにソースが正しくないこともあり、その場合は現在のソースをChatGPTに貼り付けて見直し案を出してもらう。CODEXで開発の計画と段取りを検討する。その後、ソースの修正を検討する。実ソースを見ながら検討してくれる。検討したものが妥当か開発者に確認する。
※この過程で別の問題を検出したりもする。
ビルドとビルドエラーへの対応IDE上でビルドを指示し、エラーメッセージがでたら、エラーメッセージをChatGPTに貼り付けて修正案を作ってもらい、また上記とおなじようにソースを修正する。CODEXの中でエラーを検出し、自動的に修正再度ビルドと自律的に改善を進めることもできる。内容によっては開発者に続行してよいか判断を求める。
テスト開発者がテストコードを書くか、画面操作しテストを行う。テストで問題が生じれば、またChatGPTとやり取りしつつ改修を進める。テストの内容を指示し、パラメーターのバリエーションを試すことができる。その後、ある程度確認ができた段階で、開発者がテストを行う。

対話型の生成AIの利用は、開発者の能力を補完する目的で使います。対話で開発や修正の内容を考えたり、ソースコード作ってもらったり。但し、実際の開発は開発者がIDEと行います。まれにIDE上のソースコードとChatGPTが返すソースコードがマッチしない場合もあり、そういう時にはIDE上のソースをChatGPTに渡して再検討を促したりもします。基本的には開発者の能力を補助する役割で利用しています。

一方、AIエージェント(CODEX)を適用した時には、開発者がソースコードは書かなくてもよくなります。細かいところや開発者としての手直しはこれまで同様IDEを使って行えます。ただ、基本的にはやりたいことを文章で伝えて、CODEXが内容を咀嚼しどのソースをどう修正するかとか、新たなクラスを追加しようとか考えて実装案を示してくれます。開発者はCODEXは、判断が必要なところでは開発者に継続してよいかなど問い合わせを出してきます。例えば、開発内容をもらい具体的な開発の段どりがて来た時などです。それに対して進めるか、さらに修正するか、やめるかなど判断します。

開発者と絵には書きましたが、エージェントを使った場合はCODEXも開発者となり、人間の開発者はCODEXの行いを監視し、問い合わせに答えることで開発をマネージメントします。役割が少し変わる印象です。

実際にエージェントと開発を行う

今回、スマートフォンアプリの修正が進むにつれソースの規模も増えていき、ChatGPTが生成するソースをIDEへコピペする作業も増えていたこともあり、エージェント開発への切り替えを行いました。以下のような実際の開発項目を実施してみました。

  • 睡眠時間の集計方法見直し(origin単位)
  • 画面スクロール制御や手入力の値を分かりやすく見直し

実際にこれらを進める上で、課題も出てきました。以下に課題と対応を記載します。

課題1.CODEXヘの指示が書けない。

これまでChatGPTと対話で解決していたことを、一つの指示でCODEXに渡す必要があり、どれだけ細かく指示を書くかなど頭を悩まします。これは、ChatGPTにCODEX向けの指示プロンプトを書いてもらうことで解決をしましたが、詳しくはまだ検討中です。毎回すべての指示を書く必要が無いように README.mdにこのアプリのことを書いたり、Project_map.md にプログラムの構成を書いたりとするのですが、それらもすべてChatGPTに作ってもらいます。それらをIDE内のプロジェクトフォルダに置くことで必ず理解して欲しい内容をもれなく伝えることが可能になります。そういうCODEXの使い方については継続してChatGPTにサポートしてもらっています。

課題2.CODEXを過信し、挙動がおかしくなった。

睡眠時間の集計方法を見直しを指示した時に、もともとうまく動いていた機能が動かなくなる問題が発生しました。具体的にはスマートフォン上のHealthConnectデータへのアクセス宣言が取れていない時に、これまでは権限設定画面を出して設定を促していましたが、なぜか勝手にエラーを表示する処理になっていました。

今回のように明確に気が付けは、今回の修正でこれまで上手くいっていた処理がうまく行かなくなったことを具体的にCODEXに伝えて処理の復元を指示することも可能です。また、本来はこのようなミスが起きないように、修正を必要最低限にとどめるとか関係ないソースには手を出さないような指示を付け足すこともします。修正内容の確認があった時に気づけた内容でもあったため、あまり内容を見ずにOKを出すとこのようなことも起きるのでしっかり内容を吟味し作業の継続の可否を判断する必要があります。

課題3.安心して開発するために。

これはgitを適切に運用しましょうという話です。エージェント開発に限らず復元できるポイントを決め、上記の課題2のような問題が発生し、ソースを改造し続けることが困難になった場合、適切なチェックポイントに戻ることをできるようにします。

その為、CODEXと修正を進める前にチェックポイントを設け、開発・テストが終わって問題がないことを確認したらコミットするなどのgitを適切に運用することで安心してエージェントにソースを作ってもらうことができるようになります。私自身、gitの操作を忘れがちになる為、CODEXの中でgitまで指示ができるようになればとは考えています。

最後に

エージェント開発への開発手法の変更は、やるまえはかなり大変だと思っていましたが、環境はかなり整っており、ChatGPTのサポートを受けながら比較的順調に進めることができました。今後、少しづつ難しい内容の修正にもチャレンジしエージェントを用いた開発手法にも慣れていきたいと思います。

カテゴリー: Story | タグ: , , , , | コメントする

Episode10: Google HealthConnect連携スマホアプリを実用レベルへ更新

前回のおさらい

前回、新たなスマホアプリを作り、Google HealthConnectから情報を取得し、Google Apps Scriptを介してGoogle SpreadSheetへ記載するルートを開通しました。以下の赤いルートです。

但し、現在登録できたのは以下のような表で歩数も実際よりはかなり多く、他の項目が空欄になっています。おそらく収集した数値がすべてstepsに偏っていたり、余分な数字が計上されていたりとすると考えられます。

健康DXツールの改善

今回、前述のトラブルを解消し、歩数、体重、体脂肪率、睡眠時間をHealthConnectから正しく収集し、SpreadSheetへ記載できるようにする。その他、以下のような改善も行う。

  • 計測値の問題確認と改善
  • UI開発

最終的には、以下の図のようにもともと手でデータを入力していた左側の2か所(Appsheet, Google Fit)特にAppsheetにはすべての項目を手入力していました。Google FitやFitbitにも体重や体脂肪を個別に入力し、それぞれのアプリ用に使っています。それを改め、HealthConnectからの取得とアプリ上での入力に集約し、データ入力負担を軽減することを目的としています。

第一段階: 問題の原因把握

問題: 複数種類のデータ発生源(Origin)のデータを集計していた。

前回歩数だけ実感を上回るデータが書かれていた問題は、複数のデータ発生源(Origin)のデータを合算していたことでした。

私の環境はスマートウォッチ(Fitbit)とスマートフォン本体の両方で歩数が計測されている状態であり、この場合、データ発生源(Origin)別にHealthConnect上に記録されている。前回の結果は、複数のデータ発生源(Origin)のデータを合計したことによって実態より大きい数字となっていた。

Android Studioに自身のスマートフォンをつないでデバッグ機能を使ってみてみると、Fitbit、android.apps.fitness、androidの3種類のデータ発生源(Origin)があることが分かりました。androidで始まる二つはどちらも同じ値でHealthConnectとAndroid OSとしてとの2つだと想像します。

HealthConnectに書き込み権限のあるスマートウォッチや歩数計などがあるとデータ発生源(Origin)が増える為、必要に応じてどれかを選択する必要があります。今回の場合は、専用デバイスを優先するとしてFitbitを採用したいが、もう一つ課題がありました。以下の別日のデータを見てください。

この日はFitbitの値がかなり小さく見えますが、実は、スマートウォッチの電源がきれて計測できない時間があったためです。私のデバイスは数日に一度充電を必要とする為、充電を忘れると日中に電池がきれて計測できなくなります。また、充電中も置きっぱなしの為、計測できない状態となります。その間は、スマートフォン本体の計測値を優先したくなります。

ただこの6108歩も実感よりかなり小さい、実はトレッドミル上で歩いたり、走ったりする場合、私はスマートフォンを置いていたため、歩数か計上されていないこともあり、その点も課題です。

解決策: Originの優先度を決める、手入力補正画面を設ける。

こられの問題については、以下の仕様で対応を行うことにします。

  • (仕様1) 基本、複数のOriginの内、日単位に最も大きな値を計測したOriginを採用する。
  • (仕様2) 本アプリでもHealthConnectに直接データ入力を可能とし、新たなOriginでデータを追加する。※いずれのOriginのデータもおかしい時の補正目的。

その他の問題についても、まずは仕様を明確にし、それらをバックログとして抜け漏れなく開発を進めることとする。

Tips: ChatGPTにバックログを管理してもらう

対応すべき内容の管理としてバックログをChatGPTに管理してもらいます。私の場合は以下のようなプロンプトで管理と状況確認をしています。

バックログへの追加

この項目をバックログとして管理してください。
・複数のOriginの内、日単位に最も大きな値を計測したOriginを採用する。
・本アプリでもHealthConnectに直接データ入力を可能とし、新たなOriginでデータを追加する。

バックログの状況確認(完了、未着手、保留などのステータス単位にバックログを表示)

現在のバックログの状況をステータス毎に示してください。

次の取り組みを検討(残っているバックログのなかで何に手を出すか示してくれる)

次に手を付けるべきタスクはどれですか?

相変わらず使っているプロンプトはシンプルに語りかけているような使い方ですが、おおよそ期待通り頑張ってくれています。

第二段階: 値の取り込み方

第一段階で歩数にOrigin毎に値があることが分かり、他の項目について改めて値を見つつ取り込み方を考えます。

問題: 項目別の特徴と解決すべき課題

項目Originセッション有無課題(後述)
歩数Fitbit, 本体あり(前述) 複数Origin、手入力
睡眠時間Fitbitあり日の区切り、複数セッション
体重Google Fit(手入力)なし手入力
体脂肪率Google Fit(手入力)なし手入力、小数点入力

前述の歩数のようにデバッグログを見ると上のような特徴で特に「セッション有無」や課題に書いた内容への対応が必要でした。以下に課題について補足します。

  • セッション有無: 歩数や睡眠時間は、値だけでなく07:00-09:00などの時間の開始終了と共に記載されており、これをセッションと称します。歩いたり、休んだり、寝たり、起きたり(例えばトイレに起きるなど)、昼寝だったりで日中に何度も区切りが入ります。複数のセッションの値を合算する必要があります。体重や体脂肪は日時を指定し日に何度も記録はできますが、日ごとの結果を集めたい目的では最新の値を集めればよいため簡単です。
  • 複数Origin: 前述の歩数のところで記載したデータ発生源(Origin)毎に値が記録される為、どの値を採用するか選択が必要です。
  • 手入力: 私の環境では自動的に記録されない体重と体脂肪率の入力手段として、電池が切れたり充電中は記録できない、歩数と睡眠時間の入力をする手段が必要です。
  • 日の区切り: 睡眠時間をどこで区切るか。夜10:00に寝て朝6:00に起きる場合をどう区切るかの問題。前日の睡眠時間として8時間とするか、0時で区切って2時間と6時間と日を分けて記録するか。
  • 小数点入力: 体重と体脂肪率はGoogle Fitで手入力も可能でHealthConnectにも記録されるのですが、体脂肪率は整数値(例22%)しか入力できず、少数点を含む値(例21.8%)を入力したかった為、入力手段が必要です。

解決策: 値毎の特徴を踏まえデータの取り込み方を検討

前述の仕様1,2も改めて記載しています。

  • (仕様1) 基本、複数のOriginの内、日単位に最も大きな値を計測したOriginを採用する。
  • (仕様2) 本アプリでもHealthConnectに直接データ入力を可能とし、新たなOriginでデータを追加する。
  • (仕様3) 歩数と睡眠は、複数セッションの値を合計を行う。
  • (仕様4) 睡眠時間は、区切りの時刻を決めて前日に値を集計できるようにする。例6:00区切り等。
  • (仕様5) 手入力時、体脂肪率は少数点を含むデータの入力を可能とする。
  • (仕様6) 手入力の値を最優先とする為、Originの優先度を見直す。
  • (仕様7) 睡眠と歩数を入力時は、セッション情報を作らずHealthConnectには入力せず一時的なデータとして本体に管理する。

仕様7についてはセッション付きの情報作りが複雑になる為、日に何歩歩いた、日に何時間寝たかを知りたい程度ですので、セッション情報を作らない方針としました。

実際の開発は、Android Studioでデバッグログを見ながら仕様を理解し、ChatGPTでソースを出力しつつ、またAndroid Studioでソースを改変しリビルド、スマホと接続しデバッグの繰り返しで徐々に改善をしていきました。最終的には以下のように値をSpreadsheetに記録するところまでたどりつきました。

今回、バックログをChatGPTで管理しながら部分的に作っていく方法は、現状の把握と何をするかを明確にすることができ進めやすいと感じました。ただ、会話にソースやログを貼ったり、ソースを生成してもらったりと情報量が多くなるにつれ、対話がどんどん重たくなってきているのは課題を感じています。今時のAIエージェントを使った方法ではもっとうまくできるのか今後トライしてみたいと思っています。

第三段階: UI, GAS作り込み

ユーザーインターフェイス(UI)は、主に以下の機能を作りました。動作確認用の物から必要な機能を随時足しながら改善を加えた結果です。

    画面機能
    初期画面GAS通信設定と動作確認
    メイン画面日々のメイン画面、同期機能、入力や設定の呼び出し
    入力画面体重、体脂肪率、歩数、睡眠時間を必要に応じて入力する機能
    設定画面GAS通信機能の設定、睡眠時間の区切り時刻等

    メイン画面は、現在以下のような形です。起動直後は、HealthConnect上のデータの読み書きに関する設定が出たのち、初期画面でGAS通信に必要な項目の設定を行います。以下のような項目です。

    ・GAS URL
    ・シークレット(合言葉)
    ・スプレッドシートID
    ・シート名

    相対するGASのスクリプトも生成し、GASで設定を行います。接続テストがうまく行ったら右のメイン画面が表示され、表示期間(3,7,14日)に応じてデータが表示されます。

    補正入力ボタンで4項目の入力画面が表示され、日時を決めて必要な箇所だけ入力を行います。手入力した個所は、下線と*をつけて補正値であることを分かるようにしています。

    体重と体脂肪率は毎日入力する為、すべて補正値となります。3/12の歩数についてはFitbitの電池も切れ、スマホを置いていたこともあり凡その値を入れています。

    最後に

    今回作ったスマホアプリHc2Spread(HealthConnect to Spreadsheet)を使ってFitbitやGoogle Fitから入ってくる歩数、睡眠時間を取得。入ってこない体重と体脂肪率は、本アプリからHealthConnectに書き込み。値がおかしい時は、本アプリで変更を加えてGASを介してSpreadsheetにデータを更新できるようになりました。

    Appsheet上のアプリが不要にできればよかったのですが、グラフでの可視化など優れているので入力項目だけ削減し利用を継続しています。果たして改善できているのかは難しいところですが、生成AIを使ってHealthConnectに接続しデータを活用しやすいようにSpreadsheetに格納できるようになったのはかなり満足です。

    今後、さらに効果を高められるように「自動化」などにも取り組んでいきたいと思います。

    カテゴリー: Story | タグ: , , , , | コメントする

    Episode9: Google HealthConnect連携で自動入力時の課題と対策

    健康DX進捗確認

    今回も健康DXツール利用者の進捗状況と課題を抽出します。前回から1か月程度経過しています。

    • 体重: 継続して1kg/月ペースで減少中。比較的順調。
    • 体脂肪率: 途中で体組成計を切り替えて数値が変化している。
    • 歩数: 8,000歩前後で少し下回る日が増えている。
    • 睡眠: 継続して5h未満が多く、少な目。

    前回、各グラフに目標値を設定し、体重には移動平均を追加されており、目標を目安として分かりやすくなり、移動平均で日々の数値に一喜一憂しない意識も変わってきています。

    健康DXツールとしての良い点と課題

    前回の取り組みで実施したことを含めて良い点と課題を実感としてまとめます。

    • 良い点
      • ボタンで食事を入力できる操作性の改善は、日々の入力を軽減できている。
      • 各グラフの目標値は、日々の目安として目標が分かりやすい。
      • 体重の加重平均追加で、日々の体重の増減に一喜一憂しにくくなった。
    • 課題
      • スマホ上にすでにある値の再入力(歩数など)は負担

    今回もトレーナーと相談しつつ改善を進めますが、今回は健康DXでのダイエットのアドバイスは割愛します。比較的安定して進んでもおり、トレーナーも現状のまま続けることを推奨しているためです。今回は主にツールの改善を進めていきます。

    健康DXツールの改善

    今回は「スマホ上にすでにある値の再入力」の改善を考えます。例えば歩数や睡眠時間は、スマートウォッチやスマホ自身で取得され、Androidスマホの場合は、Google Health Connectに蓄積されています。機能構成を図に示します。

    機能構成図(改善前)

    その値を、FitbitやGoogle Fitのアプリで値を確認し、Appsheetに転記し、Appsheetを介して最終的にGoogle Spreadsheetに記録しています。ここの転記作業の軽減を行いたいと考えています。具体的には下の図のようにスマホ内に新たなアプリを開発し、そのアプリがHealth Connectからデータを取得し、Google Apps Scriptを経由してSpreadsheetに値を登録するようにします。

    今回の対策は、この対策ルートの構築を行います。ただし、今回はこのルート構築にはかなりの苦難があり、生成AIを活用し改善を進めてきましたのでその問題と対処をまとめて行きます。

    第一の壁:ビルドと依存関係の構造理解

    今回、初めてのAndroidアプリの開発(Android Studio)、初めてのKotlin、Gradleと初めて尽くしでした。ChatGPTを使ってプログラム開発も進めていきますが、あまりにも基礎知識が足りずビルドができるまでかなりの時間を要しました。Health Connectヘアクセスするためのソースと依存関係について出力されたものをAndroid Studioの最もシンプルな画面アプリにくみこんだものの、コンパイルを通せずはまりましたが、主に以下のような問題でした。

    • SDKバージョンの指定 (compileSdk, targetSdk, minsdk)
    • 依存関係を最小構成に整理
    • Gradle Syncを行わないことによる未反映状態

    1.SDKバージョンの指定 (compileSdk, targetSdk, minsdk)

    メインのソースは MainActivity.kt、依存関係は build.gradle.kts に記載し、Android Studio でビルド、ビルドエラーをChatGPTに渡して改善を繰り返します。上記2つは3つのSDKバージョンを指定することで対応が可能でした。

    • compilesdk = 36 #コンパイル時に利用するSDKバージョン
    • targetsdk = 34 #実行時のSDKバージョン、ビルドエラーを解消するためにcompilesdkより少し下げた
    • minsdk = 26 #下限の動作保証SDKバージョン、今回はHealth Connectが利用可能なバージョンを指定

    細かくバージョンを指定することが大事でした。しかし、各値の根拠を細かく追及はしていません。ChatGPTに考えてもらい、ビルドが通らない為、targetsdkを下げたりとした次第です。

    2.依存関係を最小構成に整理

    こちらもChatGPTとの試行錯誤です。最初に生成されたソースには含まれていたimplimentation内で衝突が発生したようです。改めて別のチャットにソースを渡してみてもらうと以下の2つに結果絞り込まれました。

        implementation("androidx.health.connect:connect-client:1.1.0")
        implementation("com.squareup.okhttp3:okhttp:4.12.0")

    1行目はヘルスコネクトのライブラリ、2行目はGAS(Google Apps Script)の呼び出しに利用するライブラリです。

    3.Gradle Syncを行わないことによる未反映状態

    こちらは不慣れにより気づかなかったのですが、Gradleの定義を更新すれば随時依存関係は最新化され、必要なライブラリが読み込まれると考えていました。しかし “Gradle sync” の操作が必要でした。

    Android Studioでは、以下の画面操作で “Gradle sync” が可能です。

    • 画面右上の象のアイコン “Sync Project with Gradle Files” をクリック
    • 又は “CTRL + SHIFT + O”

    第二の壁:実行環境と権限モデルの理解不足

    こちらも不慣れと生成AI依存により、知識不足が招いたこともあるのですが、生成AIが出力したコードはそのまま動くというより動かして障害を解消して動かす必要がありました。当然、分かっていたつもりでしたが、いろいろとてこずりました。

    特に、Health Connectが動いているか判定するところは、SDKバージョンによって数字の意味が違うところには気が付かず、しばらくHealth Connectが使えないと勘違いしていたことです。最終的にはHealth Connectの判定は以下のようになりました。

    val status = HealthConnectClient.getSdkStatus(this, HC_PROVIDER)
    val statusLabel = when (status) {
        HealthConnectClient.SDK_AVAILABLE -> "SDK_AVAILABLE"
        HealthConnectClient.SDK_UNAVAILABLE -> "SDK_UNAVAILABLE"
        HealthConnectClient.SDK_UNAVAILABLE_PROVIDER_UPDATE_REQUIRED -> "SDK_UNAVAILABLE_PROVIDER_UPDATE_REQUIRED"
        else -> "UNKNOWN($status)"
    }
    Log.d("HC", "Health Connect SDK status = $statusLabel ($status)")

    これにて Health Connectが利用可能な状態であると分かり、先に進むことが判断できました。

    第三の壁:非同期処理とネットワーク設計

    知らないと気付かないことは多々あります。例えば 「ボタン操作の延長で通信をしてはならない。」 というようなルールもあるとのことで、こちらもChatGPTで最初に生成されたソースではボタン操作の延長での通信としていましたが、上に書いたような問題が指摘され、さらにChatGPTで対処法を確認し改善しました。

    具体的には、以下の3点の対処を行いました。

    • post処理を suspend 関数へ変更
    • withContext(Dispatchers.IO) でラップ
    • Coroutineのimport追加

    書くと簡単なのですが、自身では解決には至ることはなく、ChatGPTがなければ改善はできないものでした。もう少し最初から問題が出ないようにしてくれればと思うものの、解決ができ満足です。

    Google Apps Scriptを追加し、Spreadsheetを更新

    こちらも生成AIでソースを生成し、登録を行いました。Spreadsheetの認識する処理がなくその点を指摘すると追加してくれ、意外とスムーズに実行できました。ソースの行数は20~30行程度のシンプルなものです。

    実行すると、A列のdate、B列のstepsのところに数値が記録されました。F列を見ると4日ほど経過して2回実行していることが分かると思います。その都度、過去3日分のデータを集計して記録しています。

    最後に

    無事、Health Connectと連携し、Google Spreadseetにデータの登録はできましたが、実はこのデータは間違っています。実際よりかなり大きな数字になっていますし、体重、体脂肪率、睡眠時間がとれていいないのでさらに改善が必要です。祖のあたりは次の機会に対応を進めたいと考えています。

    今回は、一連の処理の穴あけができてことを良しとして、終わりたいと思います。

    カテゴリー: Story | タグ: , , , , | コメントする

    Episode8: Appsheetでダイエット目標と食事入力 -健康DX-

    健康DX進捗確認

    社員の健康管理を自分たちで作っていこうという話の続きです。前回スプレッドシートからAppsheetに作り直したところで2週間ほど経過し、さらにデータを増えてきました。前回同様、健康DXとしてのダイエットの取り組みと、仕組みについてもさらに見直しを考えていきます。

    • 体重: 全体的に減少傾向、1kgぐらい平均的に減少。
    • 体脂肪率: こちらも1%程度減少。
    • 歩数: 平均的に9000歩以上
    • 睡眠: 5h未満が多く、少な目。

    少し効果が出始めている気がしますが、以下に仕組み面での課題や、トレーナーとの健康DXの状況の確認と改善を進めていきます。

    健康DXツールとしての良い点と課題

    前回の取り組みでAppsheet化したことでの良い点と課題を実感としてまとめます。

    • 良い点
      • スマホでの入力ができる為、どこでも入力がしやすくなった。
      • ダッシュボードでグラフを使い見やすさが改善。
    • 課題
      • 目指すべき目標値も入れて分かりやすく。
      • 体重は上下が多いいので、傾向で分かりやすくする。
      • 数値は手入力なのでもっと入力しやすくしたい。

    まずは、トレーナーと現状の相談を進めていきます。

    トレーナー(ChatGPT)との現状確認と今後の対応検討

    現状のデータをトレーナーに与えて、現状の数値の確認と今後の対応を相談します。以下は前回から継続している取り組みです。

    現在の取り組み
    • 運動: 8,000歩/日歩く、朝晩のストレッチと軽い筋トレ(器具なしで腹筋20回、腕立て10回)
    • 食事: ベジファースト(毎食最初にサラダ)、晩御飯だけ白米は少なく(麺類などは減らさない)、朝食にプロテインを追加。

    現状分析と対策

    前回同様にデータをトレーナーに与えて、現状の確認行いました。トレーナー曰く「まだ減少傾向になったとは言えない」との厳しいご意見です。ただ数字は一部減少を認めるので以下をやってはどうかとの意見でした。

    取り組みの推奨案
    • 運動・食事: 現状を維持し、ただ食事の内容を理解する為、記録すること。
    • 睡眠: 30分でも増やせば減少傾向が強まる可能性があること。

    睡眠は、努力するとして、食事の記録についてツールの方で検討してみます。

    健康DXツールの改善

    冒頭に記載した課題と、トレーナーからの食事記録についてツールで取り組みます。今回は、以下の4点です。

    • 対策1 目標値の追加: 目指すべき目標値も入れて分かりやすく。
    • 対策2 移動平均の追加: 体重は上下が多いいので、傾向で分かりやすくする。
    • 対策3 入力方法改善: 数値は手入力なのでもっと入力しやすくしたい。
    • 対策4 食事記録の追加: 食事の記録用の画面とデータを追加

    対策1 目標値の追加

    ダッシュボードやグラフで数値が見えるようになりましたが、目標がなければどこまでやるかがあいまいになります。各項目に目標値を設定し、グラフにも見えるようにします。

    1. 目標値の追加

    データが記録されているスプレッドシードに「目標値」というシートを追加し、各項目に対する目標値を設定します。

    2. Appsheetにてデータ記録用のシートと目標値を連携

    Lookup関数を利用し、仮想カラム(Virtual Column)を追加し、Lookup関数を使ってシート間の参照を設定します。

    Appsheetを使って前回同様に目標値シートの読み込みを設定します。

    次は、二つのシートの連携を追加します。グラフはシート1のデータを見ているので、シート1を開き、VC追加、連携用のLookup関数での設定を行います。まずは、VCの追加です。

    Add Virtual Columnボタンを押し項目を追加します。計算式には以下の内容を設定します。Lookup関数が他のシートを参照し、こちらのVCに値を設定する関数です。

    追加すると下のように表の一番下に項目が追加されます。

    次はグラフの方を設定します。UXの体重を開きChart columnsのところにあるAddボタンを押し、先ほど追加した「体重(目標)」を追加します。追加すると以下のような表示になります。グラフの色も個別に設定しています。目標値は赤で統一します。

    これで体重への目標値の追加は完了です。同様に各項目のVCとグラフへの追加を行います。最終的にそれぞれ追加が終わると以下のようになります。体重の目標値は、目指すは60kgですが距離感がありすぎるので直近67kgを目指すようにし目標を達成可能な範囲にしています。他は、そのままです。

    これで実績値だけに比べて目指すべきところが分かり取り組みやすくなったのではないでしょうか。

    対策2 移動平均の追加

    トレーナー曰く「人の体重は日々±0.8kg程度は体内の水分量で変化する為、1週間程度の移動平均を取り傾向を見た方がよい。」とのことでまずは体重のところに移動平均を追加します。追加の仕方はこちらも上記同様にVCを追加し計算式を加えて計算します。

    今回の移動平均の定義: 当日を含んで1週間分(6日前から当日まで)の体重を平均し、当日の移動平均の値とします。

    VC設定は以下のようになります。

    この項目をUXの体重に追加すると、移動平均が出るようになります。

    右側のグラフに青い折れ線が追加されました。体重の実績値は乱高下していますが、移動平均で変化がマイルドに推移しているのが見えると思います。最初の頃より少し体重が減っていることが分かりやすくなったかと思います。

    対策3 入力方法改善

    今は、数字項目とテキストのメモがある程度でテキストで入力するか、数値項目は右端のプラスマイナスのアイコンでの操作ができる程度です。データ型に合わせて入力方法を選択しもう少し入力しやすくしていきます。

    睡眠時間の入力方法をスライダーでの入力にします。スライダーを表示するにはRangeを選択し、3~10hの範囲で0.2h刻みで設定してみました。

    各項目の設定を触ってみるといろいろと試せます。次の食事記録のところではボタンでの入力方法を試してみます。

    対策4 食事記録の追加

    食事については各々異なると思いますので、以下はツールとしての使い方の参考例として独自にカスタマイズをお願いします。トレーナーからは「揚げ物は週二回まで」という発言もあり、揚げ物の有無も項目を追加します。

    管理項目を以下のようにします。

    • 朝食: 朝食でよく食べるものをボタン入力
    • 朝食補足: 上記以外の物はテキストで入力
    • 昼食、夕食と間食についても同様に項目を追加
    • 揚げ物: その日に揚げ物があったかどうか

    まずはスプレッドシートにデータ項目を追加します。今回追加した列は分かりやすく緑にしました。先頭にS1という列がありますが、入力画面のページ制御で1列入れています。入れなくてもできるかもしれませんが、、、今は入れています。

    入力画面のページ切換え、食事のボタン入力、揚げ物の有無について以下それぞれやり方を記載します。

    1. 入力ページの切換え

    上で追加したS1項目を使いページ切換えを設定します。S1の設定を以下のようにします。TypeをShowにし、CategoryをPage_Headerとします。こうすると右側のSaveのところにNextと表示され次のページに上で追加した食事の項目が現れます。

    ページを切り替える際に、赤文字で未入力が許されない趣旨のメッセージが出る場合は、データ項目の一覧のところにある”Require?”のチェックを外してください。現在の状態では、日付以外は外しておくのがよいと思います。

    2. 食事入力ボタンの追加

    例えば毎朝、卵、パン、牛乳などある程度いつもの物があれば、それをボタンにしておくと一度に入力可能です。あまり毎日食べない珍しいものは、テキスト入力の項目に列挙するようにします。

    TypeをEnumListにしValuesのAddボタンを押し、下の図のように卵、パン、牛乳など入れます。

    これを保存すると下の右側の画面のようにボタンでポチポチと入力し、足りないものをテキストで書き足します。今般に利用するものが変わればボタンの内容を見直して使いやすくカスタマイズしていきます。

    3. 揚げ物を食べたかどうか

    毎食揚げ物を食べる方は、上のボタンに揚げ物ボタンを追加した方がよいですが、日に一度程度で管理したい時には今回のように独立した項目で置いておきます。トレーナーが見る時にも分けておいた方が明確でよいかもしれません。

    この項目は揚げ物を食べたかをYesかNoかで答える為、上のボタンのように複数押せてはならず。どちらかの選択になります。

    CategoryをYes/Noとするだけです。それだけでどちらかが押せるボタンが出ます。また、設定でボタンの文字列も変更も可能です。

    後は、昼食、夕食、間食など同様に追加して今回の改善は完了です。

    最後に

    今回、さらに可視化や入力方法を見直し、日々の利用がしやすくなり、目標値との対比で意欲も出てくるのではと思います。

    ただ、トレーナーからも指摘があったのですが、あまり日々の数値の変動にとらわれないようにとのことです。週単位などしばらくデータがたまってからトレーナーと一緒に振り返るのがよいと思います。今は、週単位の振り返りを実施しています。

    またこの状態でしばらく運用してみたいと思います。

    カテゴリー: Story | タグ: , , , , | コメントする

    Episode 7: ダイエット進捗、AppSheetへの変更 -健康DX-

    前回からさらに2週間程経過し記録も蓄積されてきました。蓄積された記録の分析と、現在の機能の改善を考えたいと思います。
    まずは記録を確認します。

    データからの概略

    • 体重: ほぼ横ばい。一時期少し減って見えたが最後に戻っている。
    • 体脂肪率: 1%減少
    • 歩数: ほぼ8000歩/日を維持
    • 睡眠時間: 大きな変化なし

    後ほど、目的の達成のためにこのデータから次に何をするか考えることにします。

    健康DXツールとしての課題

    もっとも問題は、日々の記録を続ける為の操作の負担が大きいということです。表をスマホで開く必要がある為、以下のようなメリットとデメリットが生じています。

    • メリット
      • 項目やグラフの追加が容易(Excelっぽく使える為なじみはある)
      • PC、スマホなど様々なデバイスから操作可能
    • デメリット
      • スマホで入力画面に到達する手順が少し手間がかかる
      • 文字の入力もすべて手で入れる必要がある

    後ほど、ツールの改善にも取り組みます。

    トレーナー(ChatGPT)と現状分析と今後の減量計画を検討

    まずはトレーナーと「現状の分析」を行い、次に「改善の検討」を行います。

    1.現状分析

    トレーナー(ChatGPT)にデータを表として渡し、以下のプロンプトを与えデータを正しく認識してもらいます。

    暫く作成したアプリで記録したものを添付します。各項目が何を表すか分かるでしょうか。

    もう少し具体的に書けたと思いますが、私は今のところ自然な内容で伝えることが多いようです。長い構造的なプロンプトが書けないだけなのですが。トレーナーからは、以下のような各項目の解釈が返ってきました。正しく理解できているようです。

    ※回答はもっと色々と書かれていますが、抜粋です。

    2.改善の検討

    ダイエットは今のままでは、あまり進んでいないようですがトレーナーの考えを聞いてみます。

    体重の推移ですが、2026年の9末までに60kgを下回れるペースでしょうか。

    いろいろと説明が続いた後の結論は以下の通りです。残り期間で0.98kg/月落とせれば達成はまだ可能とのこと。

    対策についてもいろいろと出力されましたが、まとめると今のままもうしばらく続けていくこと。
    睡眠時間は30分でも増やすことを考えること。とのことでしたが、ひとまず現状維持で続けていきます。

    今は特に以下の点を続けているところです。日常運動している方からするとやってないようにも感じる量かも知れません。

    • 運動: 8,000歩/日歩く、朝晩のストレッチと軽い筋トレ(器具なしで腹筋20回、腕立て10回)
    • 食事: ベジファースト(毎食最初にサラダ)、晩御飯だけ白米は少なく(麺類などは減らさない)、朝食にプロテインを追加。

    あまり運動せず体重が落ちると筋力が先に落ちると思うので、たんぱく質はプロテインで補強しています。これも食事についてトレーナーに相談して導入してみました。ひとまずトレーナーを信じて当面やっていく予定です。

    健康DXツールの改善

    前述のメリット「変更(項目・グラフ追加)が容易」、「多端末での操作性」を維持し、以下のデメリットの改善を検討します。

    • デメリット
      • スマホで入力画面に到達する手順が少し手間がかかる
      • 文字の入力もすべて手で入れる必要がある

    これもChatGPTに相談したところ、想定ではスマホ用のアプリでも作ることになるのかと考えていましたが、Google AppSheetなるノーコードでの開発を推奨されました。またこのツールで作ればもともと貯めていたスプレッドシートもそのまま使えるとのことでとても便利です。仮に気に入らなくてもそのまま現状の運用に戻すことも可能です。これは安心して取り組めそうです。

    Google AppSheet

    https://about.appsheet.com/home

    1.AppSheet利用開始

    上記サイトにSign inし、AppSheetを利用できる状態にします。Sign in後、以下のような画面になります。

    2.現在利用中のスプレッドシートをデータに画面作り

    画面左上のCreate > App > Start with existing dataを選択し、これまで使っていたスプレッドシートを指定しSubmit。以下3枚の画像はその流れを表しています。

    Google Sheetsを選択。

    対象のファイルを選んでsubmit。

    ハイ。完成。画面右側の縦長画面はスマートフォンでの見え方を表しています。この画面上で操作も試せます。青の+(プラス)アイコンをクリックするとデータを追加できますし、日単位のタイルをクリックするとその日のデータを画面真ん中あたりの項目でもともとスプレッドシートにある項目を画面で更新できるようになります。

    3.可視化画面を追加

    画面左のUXメニューからグラフなど可視化の追加を可能です。体重、体脂肪率、歩数、睡眠時間をすべておなじ折れ線にしましたが、画面真ん中に示すような様々な表現が可能です。目的に応じて選べます。

    4.ダッシュボードも作成

    同様にUXからダッシュボードも追加可能です。今回は上で作った4つのグラフを追加し一連で見えるようにしました。ただ、スマートフォンだと図の右のように縦スクロールで見ることになります。

    タブレット表示に切り替えてみるとこの図のようにまとめて見ることもできるようになります。レスポンシブデザインなので、PC、タブレット、スマホと様々なデバイスから利用可能です。

    5.iPhone, Androidから利用できるようにする

    日常の利用を考えて、アプリとして使えるようにします。iPhone, Android共に “AppSheet” というアプリがありこちらを利用することで上で作ったアプリを利用可能です。

    最後に

    これでデメリットに挙げていた課題も解決し、日常の入力がより楽になり継続しやすくなり、結果、従業員の健康を改善することが実現しやすくなると考えています。

    今後も利用を続け、課題を解決しつつ改善を進めたいと思います。今後は、スマホアプリを使ってデータの入力・更新、定期的な分析はPCを使ってデータの受け渡しをしていきます。

    AppSheetでの食事の記録など始めていますので、次は入力画面の工夫に取り組みたいと思います。

    カテゴリー: Story | タグ: , , , , | コメントする

    ChatGPT 5.2 画像認識力向上

    このところの生成AIの画像生成の能力がどんどん高まっていますが、一つの画像の中に一貫性を保って表現できるのは2名程度が限界だと思っていましたが、ChatGPT 5.2になりかなり認識がされるようになったと思います。

    具体的には、SCWには以下の8人とスクエラというマスコットがいます。

    2.5より前のGeminiで集合

    この面々をまとめて生成したいのですが、2.5より前のGeminiを使ってできていたのは以下のような絵です。右の二人は元の絵柄に忠実ですが、他の面々は服装や持ち物は近しいもの顔や髪型は再現できていませんでした。

    GeminiやChatGPTでいろいろと試した結果、二人までは一貫性を保ちやすいと分かりました。プロンプトの書き方でもっと改善できた可能性はあるかもですが。

    ChatGPT 5.2では結構一貫性保てている。

    ChatGPT 5.2が出る前に、Nano Bananaでかなり一貫性を保った画像生成もできるようになってきましたが、ChatGPT 5.2がでてきて一気にさらに良くなったように感じます。ChatGPT 5.2での集合画像がこちらです。

    かなり元絵に忠実で、右から二人に目の白石さんはもう少し男っぽく、背も高い設定ですが、幼く描かれています。
    身長の設定を入れていないのでデコボコは仕方ないですが、一発でこれが出たのは驚きました。ただ、この後白石さんを見直そうと努力しましたが、修正ができませんでした。

    かなり一貫性を維持して描けることも分かり、今後もっと活用していきたいと思いました。

    2026年も生成AIの進化に驚かされつつも、ついていきたいと思います。

    カテゴリー: AI | タグ: , | コメントする

    Episode 6: 社員の心身の健康を第一に -健康DX-

    ―― まず整えるべきは、システムではなく自分たちだった

    SCWでは、これまで業務改善や仕組みの最適化に継続して取り組んできた。
    プロジェクト管理の整理、情報共有の効率化、開発フローの見直し。

    それでも、どこか引っかかる感覚が残っていた。

    改善しているはずなのに、メンバーの疲労感が抜けない。どころかちょっと大変そうである。
    通常の業務も忙しくあり、並行して社内のDXに向けた検討が、負担になっているようだった。

    これがあれか!?DX疲れというやつなのか!?

    言葉の定義はどうあれ、まずは社員の心身が健康でなければよい仕事もできない。

    おそらく他の企業や業種が異なっても、日常の業務の大変さと心身の健康の維持の両立は、Work Life BalanceやWell beingという言葉と共に日々取り組まれていることと思う。

    自分専用の健康の改善を目指そう -健康DX-

    ITエンジニアの働き方は、以前と比べれば確実に改善されてきた。
    リモートワークや柔軟な勤務形態も当たり前になった。

    それでもなお、
    不規則な稼働、厳しい納期、突発的な対応、精神的なプレッシャーとは無縁ではいられない。
    これは個人の努力不足ではなく、職種そのものが内包する構造的な課題だと考えるようになった。

    ここで、発想を切り替えた。

    これまでDXの対象としてきたのは、業務やシステム、プロセスだった。
    だが、それを使い、支えているのは人である。

    「人の状態が最適でなければ、どんな仕組みも長くは機能しない」

    そう考えたとき、
    自分たちの健康やコンディションも、DXの対象として扱うべきではないか、
    という結論に至った。

    この取り組みに名前を付けた。
    健康DX

    工作気分で自分専用のツールを考えよう

    もちろん、健康管理の手段は世の中に数多く存在する。
    高機能なアプリも、専門的なサービスもある。

    だが、今回の目的はそれらを導入することではなかった。

    • 自分たちで理解できること
    • 働き方に合わせて調整できること
    • 改善しながら育てていけること

    何より、すぐに始められることを重視した。

    完璧な設計は後回しにする。
    まずはスピード優先で、動かしてみる。

    当然、今の時代は生成AIがありなんでも実現できると思わせてくれる。
    今回も、今の生成AIを活用し、負担少なく、持続できる方法を考えてみたい。

    最初の目標: 日々の記録を開始する。

    「体重計に毎日乗るようになると、体重がへる。」そのような話を聞くことがある。
    記録することで、意識がそれ以前より向き意識的・無意識的に改善に向かうのではと考えている。

    また、今回生成AIに分析をしてもらいたいので、何かしら日記のように気づきも残していきたい。

    記録したい項目は自由ですが、簡易的に以下のようなもの設定してみることにした。

    • 体重
    • 体脂肪率
    • 歩数
    • 睡眠時間
    • 簡単な体調メモ

    これを日々記録し、記録していくことからスタートしたい。

    正直ツールは何でもよく、腕時計型のデバイス、体組成計などの組み合わせると数字は取れると思うので、それらをそのまま使ってもよいし、以下のように表で簡易的に記録していくこともよいと思っている。

    最初のツール: Google Spreadsheet

    単純にGoogle Spreadsheetに表を作成し、記録していく。記録にはPCだけでなくスマホやタブレットも利用できる為、どこからでも更新できることを重視した。手順はファイル作るだけの比較的容易な内容です。

    1.Google Drive上の好きな場所にスプレッドシートを一つ作成。
    例: /scw/DailyLogger/dailylog

    2.スプレッドシートの列を5つ作成(例なので日付以外は何でもOK)
    日付、体重(kg)、体脂肪率(%)、睡眠時間(h)、歩数(steps)、メモ

    ファイルができれば後は日々記録していくのみです。

    相談相手としてトレーナー役を設定

    ひとりで体調管理やダイエットに取り組むのは、気持ちを維持する意味でも大変になるので、相談相手となるトレーナー役を設定します。ChatGPTで試していますが、他の生成AIや実在するトレーナー例えばスポーツジムや医者でもよいと思います。今後、データが取れてきた時に相談したいので。細かく相談を考えると生成AIで雰囲気をつかんで本格的な専門家に聞くのもよいと思います。

    トレーナーに以下のような点を相談し、今後の生活のイメージを高めていきます。

    • 今後の目標を決める。例: 1年後に10kg体重を減らす、BMIを15以下にする等
    • 今後の生活の進め方を相談する。例: 睡眠や運動、食事改善等

    運用開始: 1週間記録し週単位にトレーナーに相談

    例えば、体重は日々測定するタイミングや体内の水分量によって±0.8kgぐらいは変動するそうです。日々あまり細かく見ていると多少増えた時に悩んでしまうこともあり、記録は淡々と進めて週単位程度で振り返るのがよいと思っています。

    記録がたまってきたらグラフ化などして、状況を確認します。

    例えば、1週間記録を続けた例です。この週は始めたばかりで大きな変更はありませんでした。
    トレーナーこのデータをExcel形式やCSV形式などで提供し、今後の進め方を相談します。

    例: 約1年後に10kgを減らす目標に対して、この週の動きを相談したところ、ざっと下のような結論を得ました。

    • まだ1週間そこらで結論を出すことはできない、継続するべき。
    • 睡眠が少ないので、30分/日でも睡眠時間を増やすこと。
    • 歩きすぎもよくないので、8,000歩/日程度で問題ない。
    • 食生活に野菜を取れ入れる。特にカップ麺だけにせず最初にサラダを食べること。など。

    他にも運動についてなど、いろいろとアドバイスはありますが、同時に全部はできないので、次の週には何を取り組むか決めて上記スプレッドシートに記録しておくとよいでしょう。

    続けてやっていきます。

    まずはスピードを優先し、記録と可視化をし、相談相手を用意するところからスタートします。
    これを週単位に振り返りつつ、ツールの改善や運用の改善を考えていきます。
    あまり無理をして負担になると継続が難しくなるため、運用についてもトレーナーに色々と相談してみてください。

    カテゴリー: Story | タグ: , , , , | コメントする

    Episode 5: つながりを取り戻す — メールとチャットの再設計

    朝のオフィス。
    窓から差し込む光の中、社員たちの指先が一斉にキーボードを叩いていた。
    デスクの上には、OutlookやGmailのウィンドウ、TeamsとSlackの通知バッジ。
    数分おきに鳴る音が、静かな緊張感を生んでいた。

    白石は画面を見つめ、ため息をついた。
    「メールだけで午前が終わりそうだ……。」

    隣でSlackを開いていた水野が苦笑する。
    「DMも追いつかないんですよ。気づいたら10件たまってて。」

    向かいの席で森山がTeamsを閉じながらつぶやく。
    「もう少し“静かな朝”がほしいな。」

    榊原がカップを置き、腕を組んだ。
    「報告のための報告が多い。 本当に大事な話が、埋もれてる気がするね。」

    ホワイトボードの前でスクエラが動き出す。
    ペンを持つ小さな手が、「メール」「チャット」「共有」と書き、線でつなぐ。
    「どれも大事。でも、つながりすぎて混乱してますね。」

    神谷が椅子を回し、静かに言った。
    「今日は、“情報を減らす”ことから考えよう。」


    情報の海の中で

    ホワイトボードの前にメンバーが集まり、神谷が四象限を描く。

    領域状況ツール問題
    メール返信が多すぎるOutlook/Gmail優先度不明、重複対応
    チャット通知過多Teams/Slack流れが速く、履歴が追えない
    会議情報の重複Teams議事録が共有されない
    ナレッジ蓄積されないNotion学びが点で終わる

    榊原がホワイトボードを見ながら言った。
    「つながってるのに、断片化してるんだね。」
    神谷が頷く。
    「DXの第一歩は“整理”。ツールをどう使うかが文化をつくる。」


    仮説を立てる

    白石がペンを手に取る。
    「返信のテンプレをAIに書かせるのはどうですか? ChatGPTならできそう。」

    早川も手元のTeamsを見ながら言った。
    「チャットの要約をNotionに自動でまとめられたら助かりますね。」

    水野がスマート返信を試しながら首をかしげた。
    「便利なんですけど、Gmailの自動返信はちょっと硬いんですよ。」

    森山が笑いながらつぶやく。
    「AIが“誰向けか”を理解できるようになれば完璧だな。」

    神谷はその言葉を受けてホワイトボードに書く。
    「仮説:メール・チャット対応の60%はAIが初稿を作り、人が仕上げる。」

    スクエラがマーカーを走らせる。
    「なら、AIと人が一緒に働く仕組みを作ってみましょう。」


    実践の午後

    午後、各自が試験的にツールを操作しはじめた。

    白石はOutlookにChatGPTを連携し、返信文の下書きを作成した。
    画面に現れた文面は自然だが、少しフレンドリーすぎる。
    「60%くらいは使える。でも、残り40%は“人の声”が必要だな。」

    水野はGmailのスマート返信を使って、顧客への返答を試す。
    即座に表示される候補文を見て苦笑する。
    「速いけど、ちょっと冷たい感じがする。 AIが感情を込めるには、まだ一歩足りない。」

    早川はTeamsのAI要約機能を開き、会議ログを整理。
    自動生成された要約を確認して驚く。
    「議事録を半分の時間でまとめられた。 これ、もっと活用できそう。」

    榊原はNotionを開き、Slackと連携した情報整理を試みた。
    ChatGPTが過去のチャット履歴から共通の質問を抽出し、FAQページを自動生成する。
    「こうして見ると、私たちの“日常の声”が知識になるんだね。」

    スクエラが中央のモニターに統合図を表示した。
    OutlookやGmailで受け取った情報が、Teams/Slackを経て、最終的にNotionへと集約されていく。

    榊原が笑う。
    「点が線になってきたね。」
    神谷が静かにまとめる。
    「DXは仕組みじゃない。人が考える時間を取り戻すことなんだ。」


    夕暮れ、静かな余韻

    会議室に夕日が差し込む。
    ホワイトボードには、スクエラの描いた大きな矢印。
    「減らす → 整える → 繋げる → 生み出す」

    白石が笑って言う。
    「AIに任せられる仕事が増えるほど、人が人らしく働ける気がしますね。」

    神谷が微笑みながら頷いた。
    「そうだね。AIが思考を奪うんじゃない、時間を返すんだ。」

    スクエラが小さくうなずき、ホワイトボードの下に書き足す。

    『AIと人が共に働く。その始まり。』


    次回予告

    翌週、SCWチームは実際に各ツールを使い、
    「AIメール・チャットアシスタント」の技術検証に挑むことにした。

    その結果は——
    第5話 技術検証編「AIが“働く時間”を変える」 で明らかになる。

    カテゴリー: Story | タグ: | コメントする

    Episode 4: 動き出す三つのチーム — 小さなDX実験、始まる

    朝の光が、会議室の大きな窓から差し込んでいた。
    ホワイトボードには、前回整理した業務体系がびっしりと貼られ、
    まだ新しい付箋の端が空調の風にかすかに揺れている。
    テーブルにはノートPCと資料が並び、コーヒーの香りがほのかに漂っていた。
    誰もが少し早めに席に着き、これから始まる「次の一歩」に小さな緊張と期待を感じている。

    神谷「前回の棚卸しをもとに、項目の整理を少し見直しました。重なっていた部分を統合して、チーム単位で動けるようにしています。」

    壁面モニターに新しい分類表が映し出される。
    それは、全体を9つの業務領域から3つの活動チームに再構成したものだった。


    三つのチーム、動き出す

    榊原「なるほど。要するに“自分たちで課題を見つけ、試してみる”わけだね。」
    神谷「そう。細かいルールは設けません。自分たちの現場で気づいたことをDXの視点で改善していきましょう。」

    テーブルの上では、資料やメモが交差し、活気が生まれ始めている。
    スクエラはホワイトボードの下で、忙しそうに付箋を並べ替えていた。

    白石「チームの割り振りはどうします?」
    神谷「こちらで案を作っています。チーム名は皆さんで決めてみましょう。」


    チーム編成と役割

    ホワイトボードに三つの枠が描かれた。

    神谷「まず一つ目、“顧客接点DXチーム”。お客様や社内外とのコミュニケーションを扱う領域です。白石さん、森山さん、水野さん、榊原さん。スクエラがサポートに入ります。」

    水野「外の声を拾うチームですね。現場で試してみたいアイデア、たくさんあります!」
    榊原「いいね。データをどう活かすかも考えてみよう。」

    スクエラがうれしそうにうなずきながら、ホワイトボードの隅に「顧客接点=つながる力」と書き込んだ。

    神谷「次に、“制作・開発DXチーム”。綾瀬さんと本田さん。
    システム設計や資料作成の効率化を担当します。綾瀬さん、本田さんのフォローもお願いします。」

    綾瀬「了解です!ちょうどAIツールの活用も試してみたかったところ。」
    本田「がんばります!」
    笑顔の本田の背後で、スクエラが小さく親指を立てた。

    神谷「そして“三つ目が社内運営DXチーム”。早川さんと私が中心です。
    日常の申請や経理、情報管理などを整えていく役割。スクエラも、データ整理をお願いね。」

    早川「了解です。まずは経費処理から見直してみましょうか。」
    神谷「うん、申請フォームの設計も変えていけそう。」


    小さな一歩から

    三つのチームが次々に動き出す。
    会議室の空気が少し熱を帯び、壁際に貼られた模造紙に新しい付箋が増えていく。

    森山「こうして見ると、社内全部の仕事がどこかのチームに関わってくるんですね。」
    神谷「ええ。だからこそ、どこからでも始められる。大切なのは“まずやってみる”こと。」

    スクエラが「やってみよう!」と声を上げ、全員の笑いが広がる。
    その笑顔の輪の中に、確かな前進の兆しがあった。


    🗂️ チーム分担表(参考資料)

    チーム名担当者主な領域具体的業務例
    顧客接点DXチーム白石、森山、水野、榊原コミュニケーション業務・会議・顧客対応メール・チャット対応、会議の効率化、顧客サポート改善
    制作・開発DXチーム綾瀬、本田ドキュメント作成・開発・企画提案書作成支援、自動化ツール活用、設計レビュー
    社内運営DXチーム神谷、早川運用・管理・教育・情報セキュリティ経費申請、勤怠・人事管理、情報セキュリティ更新

    会議が終わる頃には、ホワイトボードの中央に大きな言葉が残された。

    「小さく始めて、大きく育てる。」

    その言葉に、Seaside CloudworksのDXは新たな章を迎えようとしていた。

    カテゴリー: Story | タグ: | コメントする

    Episode 3: 業務を体系化する — 二階層の棚卸し

    前回の会議では、ホワイトボードに「日常業務の棚卸し」として、思いつく限りの業務をリストアップした。
    メール対応、会議、資料作成、顧客対応…。大まかな分類はできたが、まだ全体を体系的に整理するには粗いままだった。

    次の会議の日。朝の光が会議室の大きな窓から差し込み、テーブルの上のノートPCや資料に反射していた。
    神谷はホワイトボードの前に立ち、前回のリストをベースに少し見直した表を掲示する。

    神谷「みんな、前回は“日常業務の棚卸し”でたくさんの業務を洗い出したよね。今日は、その内容を改めて整理し直してきた。少し表現を見直して、今後のDXの議論に使いやすい“業務カテゴリ”にしたんだ」

    そう言って、ホワイトボードに次の大項目を黒いマーカーで書き出していく。

    1. コミュニケーション業務
    2. 会議・打合せ
    3. ドキュメント作成
    4. 企画・調査業務
    5. 開発・技術業務
    6. 運用・保守業務
    7. 営業・マーケ業務
    8. 人事・総務・管理系
    9. 教育・育成
    10. 情報セキュリティ対応

    神谷「前回は“メール”“会議”“資料作成”など大まかな言葉で出してもらったけど、今回少し構造を見直した。たとえば“顧客対応”は営業やコミュニケーションに分けて整理しているし、“セキュリティ対応”も独立させた。みんな、これで合意できるかな?」

    全員が頷き、「その方が分かりやすい」「確かに整理しやすい」と声があがる。こうして大枠のカテゴリが全員で確認され、次のステップに進む準備が整った。


    神谷は黒マーカーを手にしたまま続けた。

    神谷「じゃあ次は、この大項目ごとに細かく業務を整理して、二階層にしていこう。全部を一人でやるのは大変だから、担当を割り振るよ」

    神谷はホワイトボードのカテゴリを指差しながら役割を振り分けていく。

    神谷「白石さんはコミュニケーション業務。森山さんは会議関係。綾瀬さんはドキュメント。本田さんは開発・技術関連をお願い。ただ…本田さんはまだ経験が浅いから、綾瀬さん、フォローも頼めるかな?」

    綾瀬「わかりました。一緒にやってみます」
    本田「お願いします!」

    神谷は続けて視線を水野に向ける。

    神谷「水野さんは外回りも多いから、営業・マーケを担当してほしい。榊原さんは運用・保守に加えて、企画・調査も一緒にお願いする。水野さんと榊原さん、二人で企画を見てほしい。事業の根幹だから両方の視点が必要だ」

    水野と榊原が頷く。

    神谷「早川さんは人事や総務など管理系。最後に、情報セキュリティ対応は白石さんにもお願いしたい。ここは技術的に難易度が高いから適任だと思う」

    白石は「任せてください」と短く答えた。


    こうしてメンバー全員に担当が割り振られ、“宿題”として自分の担当業務を二階層に整理して次回までに持ち寄ることになった。

    数日後、再び集まった会議室。机の上にはノートPCや分厚い資料が並び、真剣な表情でメンバーが持ち寄った内容を突き合わせる。ホワイトボードにカテゴリが並び、その下に詳細なタスクが次々と書き込まれていく。黒マーカーの走る音が響き、業務の地図が少しずつ描き出されていく。

    森山「会議はやはり多いな。定例や進捗確認、クライアント打合せ…重複しているものも目立つ」
    水野「営業も、訪問とオンラインで全然性質が違う。分けて整理すると負担の偏りも見える」
    榊原「企画・調査は未来への投資だから、こうして項目を明確にすること自体が大事だね」
    綾瀬「本田さん、一緒にやった議事録整理、だんだん形になってきたね」
    本田「はい!まだ時間はかかりますけど、どこに課題があるか見えてきました」

    会議室の空気は引き締まっていたが、少しずつ「整理できた」という手応えが共有されていく。

    最後に神谷がホワイトボードを見回しながらまとめる。

    神谷「よし、これで全体を二階層で整理できた。このマップをベースに、次は“どこを優先的に改善するか”を考えていこう」

    メンバーたちの目に、自信と期待の色が宿っていた。


    参考資料:業務体系(二階層・担当者付き)

    大分類小分類担当
    コミュニケーション業務メール返信・確認
    電話対応(顧客・取引先・社内)
    チャット対応(Slack, Teams等)
    社内連絡・報告
    顧客対応(Q&A、技術支援)
    白石
    会議・打合せ定例会議(週次・月次)
    プロジェクト進捗会議
    企画・戦略会議
    技術検討会・レビュー
    クライアント打合せ(要件定義等)
    森山
    ドキュメント作成提案書・見積書・報告書作成
    会議資料作成
    仕様書・設計書作成
    マニュアル・手順書作成
    議事録作成
    綾瀬
    企画・調査業務新サービス企画
    市場・競合調査
    技術調査・選定
    ユーザー調査・フィードバック分析
    榊原、水野
    開発・技術業務設計・開発
    コーディング・ユニットテスト
    コードレビュー
    バグ修正・障害対応
    CI/CD運用改善
    本田(綾瀬がフォロー)
    運用・保守業務システム監視・ログチェック
    障害対応・復旧
    アカウント管理・設定変更
    定期メンテナンス
    ドキュメント更新
    榊原
    営業・マーケ業務顧客対応(ヒアリング・提案)
    見積書・契約関連
    セールス活動(メール・訪問)
    広報・プロモーション
    コンテンツマーケティング
    水野
    人事・総務・管理系勤怠管理・申請対応
    経費精算・予算管理
    採用活動・面接対応
    社内制度整備・改善
    社内イベント・研修企画
    早川
    教育・育成社内勉強会
    技術研修・OJT
    ナレッジ共有(Wiki・Notion等)
    メンタリング・新人指導
    綾瀬、本田
    情報セキュリティ対応アクセス権限見直し
    インシデント訓練
    セキュリティポリシー更新
    情報漏洩リスク監視
    白石
    カテゴリー: Story | コメントする