❤️‍🔥

僕が考える 生成 AI 時代のテックブログ執筆

2024/07/29に公開

こんにちは、クラウドエース フロントエンド・UI/UX 部の 小堀内 です。

以前、「僕が考える テックブログを書く意義 と 書き方のすゝめ」という記事を投稿した際に、嬉しいことにたくさんのいいねをいただきました。

そこで、上長から「今年の新卒向けにブログ書き方講座を実施するから、その一部として、テックブログに対する熱い気持ちを述べてほしい」と言われました。

僕自身、テックブログを書くことが好きなので、以前の記事をベースに新卒の方向けにお話しするのも悪くはないと思ったのですが、せっかくこのような機会をいただいているので、僕含めその講座関係者が有意義な時間を過ごせるようにしたいと思いました。

そこで、生成 AI 時代を生き抜くためのケイパビリティの 1 つとして、テックブログ執筆について考え、今回のブログタイトル、僕が考える 生成 AI 時代のテックブログ執筆 というテーマで発表させていただくこととしました。

本記事のポイント

  1. 生成 AI 時代では、単なる情報提供だけでなく、独自の視点や経験に基づいた価値ある内容 を発信することが重要
  2. テックブログ執筆は、個人のスキル向上だけでなく、組織全体の「生成的な文化」形成に貢献 することができる
  3. 生成 AI を活用することで、テックブログ執筆の 効率を高める ことができる

生成 AI 時代のブログ執筆における自身の考え

生成 AI の発展により、一般的な情報や知識を得ることが非常に容易になりました。

こうした状況下では、一般的な知識に加えて、自身の経験や洞察に基づいた独自の視点を発信する能力がより一層重要になってきています。
個人的には、このような人間ならではの洞察や経験に基づいた内容に、より興味が集まっていくと考えています。

そして、独自の視点を持ちながら情報を発信し続けていくことで、セルフブランディングにも繋がると思っています。
自身の経験や洞察を共有することは、執筆者の専門性や信頼性を示す絶好の機会となります。

「この人の記事だから安心感がある」「新機能がリリースされたので、あの人の技術記事が楽しみだな」というような評価を得ることができれば、技術者としての価値も高まっていきます。

そこで、生成 AI とうまく協働しながらテックブログ執筆を進めていくことが有効だと考えています。
生成 AI に、一般的な知識を補ってもらうことで、より多くの時間を独自の考察や表現の洗練化のために時間を割くことができるからです。

このような取り組みは、個人の成長に寄与するだけでなく、組織全体の生産性向上や知識共有、学習文化の醸成にも繋がります。
さらに、こうした実践が広がれば、日本のソフトウェア業界全体の生産性向上にも貢献できる可能性があるのではないでしょうか。

そして、この「組織全体の生産性向上」という観点で考えると、最近僕が学んでいる DevOps の概念と非常に関連が深いことに気づきました。

生成的な組織を目指して

DevOps の文脈では、生成的な文化のある組織 (チーム) ほど、パフォーマンスが高い とされています。

生成的な文化とは、以下のような特徴を持つ組織文化を指します。

  • 継続的な学習と改善を重視する
  • 失敗を学びの機会として捉える
  • オープンな情報共有と協力を促進する
  • 新しいアイデアや技術に対してオープンである

このような文化を持つ組織では、製品開発の速度向上、品質の向上、顧客満足度の向上、従業員の満足度向上、イノベーションの促進などの パフォーマンス向上が見られる と言われています。

ここで注目したいのは、テックブログ執筆が生成的な組織文化形成のための 1 つのプラクティスになり得るという点です。

具体的には以下のような関連性が考えられます。

生成的な文化の特徴 テックブログ執筆との関連性
継続的な学習と改善 • 知識の整理と深い理解
• 読者からのフィードバックや社内レビューによる改善
失敗を学びの機会として捉える • 技術的挑戦や失敗談の共有
• 失敗から学ぶ文化の促進
情報共有と協力 • 知識や経験の組織内外での共有
• チーム全体の知識レベル向上
新しいアイデアや技術へのオープンさ • 最新技術トレンドの議論
• 組織全体の技術的視野の拡大

このように、テックブログ執筆は単なる個人の活動ではなく、組織全体の文化を形成する重要な要素だと考えられます。

ですので、僕の中で以下のような循環を目指すことにしました。

この循環の例として、

  • ステップ 1: テックブログを書きたいという気持ちはあるものの、なかなか実際に書き始めることができません。
  • ステップ 2: そこで、生成 AI を活用しながら、執筆の基本を学んだり、執筆の効率化を図り、
  • ステップ 3: より多くの時間を独自の視点や経験の整理に充てられるようになります。
  • ステップ 4: そして、質の高い記事が増えることで、それらが社内外で活用される機会が増え、
  • ステップ 5: さらに多くのフィードバックを得られるようになります。
  • ステップ 6: このプロセスを通じて、新しいアイデアを発信することへの心理的障壁が下がり、
  • ステップ 7: 最終的には組織全体がより創造的な文化を持つようになります。

そして、この文化がさらなるテックブログ執筆のモチベーションとなり、循環が続いていく(続いていけばいいな)と考えています。

このブログが、皆さんにとって良い刺激となり、テックブログ執筆への新たな視点を提供できれば幸いです。

以降の段落では、この循環の重要な要素である「生成 AI の効率的な活用方法」について、具体的に説明していきます。

生成 AI をどのように活用すれば、独自の考察や表現の洗練化のための時間を割くことができるのか。そのためのテクニックをお伝えしていきます。

テックブログでの生成 AI 活用例

いくつか生成 AI ツールはあるものの、誰もが触りやすいものとして、今回は ChatGPT を活用していきます。

  1. 自然言語による説明から Mermaid 記法を用いた図の生成
  2. 図表からの説明文の生成
  3. 一般的な知識や情報の提供

1. 自然言語による説明から Mermaid 記法を用いた図の生成

これは、テックブログだけでなく、社内、社外のドキュメンテーションにも活用できるテクニックです。

input

prompt
以下のフローを Mermaid 記法で表現してください。

---
1. main ブランチへのプッシュ、または workflow_dispatch イベントが発生すると、リポジトリの変更を検知します。
2. 変更が検知されると、変更の種類に応じてデプロイを行います。
  a. Cloud Storage for Firebase に変更があれば Deploy Storage を実行します。
  b. Cloud Firestore に変更があれば Deploy Firestore を実行します。
  c. Cloud Functions for Firebase に変更があれば Deploy Functions を実行します。
  d. 変更がない場合、デプロイは行われません。
3. Deploy Storage, Deploy Firestore, Deploy Functions はすべて Google Cloud への認証に Workload Identity を使用します。
4. 認証が成功すると、各サービスのデプロイが実行されます。
---

output

graph TD
    A[mainブランチへのプッシュ or <br> workflow_dispatch イベント] -->|リポジトリの変更を検出| B{変更検出}
    B -->|Cloud Storage for Firebase に変更あり| D[Deploy Storage]
    B -->|Cloud Firestore に変更あり| E[Deploy Firestore]
    B -->|Cloud Functions for Firebase に変更あり| F[Deploy Functions]
    B -->|変更なし| G[デプロイなし]

    D --> H{Workload Identity を用いた<br> Google Cloud への認証}
    E --> H
    F --> H

    H -->|認証成功| I[デプロイ実行]
    I --> J[Cloud Storage for Firebase デプロイ]
    I --> K[Cloud Firestore デプロイ]
    I --> L[Cloud Functions for Firebase デプロイ]

2. 図表からの説明文の生成

こちらは、図だけでは、説明が不足しているといった場合に、生成 AI に補足してもらいます。
(本来は、図だけ見れば内容が理解できるということが理想ですが、、)

input

architecture-image

prompt
添付のアーキテクチャ図を元に、システムの構成と各コンポーネントの役割について詳しく説明してください。

## 質問
添付のアーキテクチャ図を元に、システムの構成と各コンポーネントの役割、セキュリティついて詳しく説明してください。

## 質問
1. システム全体の構成と主要なコンポーネントについて説明してください。
2. 各コンポーネントの役割と、それぞれがどのように相互作用するかについて説明してください。
3. セキュリティおよび認証の仕組みについても触れてください。

## 追加情報
- Google Cloud, Firebase
- VPCSC, Firestore, Cloud Functions, Firebase Authentication

output

## システム構成の詳細説明

### 1. システム全体の構成と主要なコンポーネント
このシステムは、Firebaseを中心に構築されており、主要なコンポーネントとして以下が含まれます:
- **Firebase Cloud Functions**:アプリからのAPIアクセスを処理するためのカスタムAPIメソッドを提供します。
- **Firebase Authentication**:ユーザー認証を処理し、アプリの安全なアクセスを保証します。
- **Firebase Cloud Firestore**:アプリのデータベースとして機能し、データの保存と取得を行います。
- **Firebase Cloud Storage**:アプリのストレージとして機能し、ファイルの保存とアクセスを管理します。
- **VPC Service Controls (VPC SC)**:Google Cloudのセキュリティ機能で、データがインターネットに漏れないように保護します。

### 2. 各コンポーネントの役割と相互作用
- **一般ユーザーのスマートフォンアプリ**:
  - **Firebase Authentication**:ユーザーはアプリにサインインし、認証情報を提供します。ここで使用されるAPIメソッドは`signInWithPassword`です。
  - **Firebase Cloud Functions**:認証されたユーザーは、アプリからカスタムAPIメソッド(例えば、`referUserValue`)にアクセスして、必要なデータや機能を利用します。
  - **Firebase Cloud Firestore & Cloud Storage**:認証後、ユーザーはアプリから直接FirestoreやStorageにアクセスできます。

- **会社内からのアクセス**:
  - **VPC SCの境界内**:会社のネットワークからは、特定のIPアドレスに基づいてFirebase Functionsにアクセスが許可されます。許可されたIPアドレスは図中に示されています(例:XXX.XXX.XXX.XXX)。

### 3. セキュリティおよび認証の仕組み
- **Firebase Authentication**:このシステムでは、Firebase Authenticationを使用してユーザーの認証を行います。ユーザーはメールとパスワードを使ってサインインし、認証トークンを取得します。
- **VPC Service Controls (VPC SC)**:VPC SCは、Google Cloudのサービスに対するセキュリティ境界を設定し、許可されたネットワーク(例えば会社の内部ネットワーク)からのみアクセスを許可します。これにより、データが安全に保たれ、不正なアクセスが防止されます。
- **許可ルールの適用**:特定のIPアドレスからのみFirebase Functionsへのアクセスを許可することで、会社の内部ネットワークからの安全なアクセスが保証されます。

### 図の詳細な解説
- **赤線**:アプリから直接Firebase Firestore/Storageへのアクセスを示しています。
- **黒線**:Firebase Functionsを経由するAPIアクセスを示しています。
- **点線の四角形**:各Firebaseサービスのモジュール(Functions, Authentication, Firestore, Storage)を示しています。
- **大きな破線の四角形**:VPC Service Controlsの境界を示し、内部ネットワークからのアクセスを制限しています。

このアーキテクチャは、セキュリティを重視しつつ、必要な機能に効率的にアクセスできるように設計されています。

3. 一般的な知識や情報の提供

テックブログを書く際、本題に入る前に背景知識や基本概念の説明が必要になることがよくあります。
そんな時にも、生成 AI が役立ちます。

具体例を挙げてみましょう。

  • ブログテーマ:「Firebase Firestore Database のマスタデータを Terraform で一元管理する」

この場合、本題に入る前に、データベースにおける「マスタデータ」と「トランザクションデータ」の違いについて触れておきたいですよね。

このような一般的な知識の説明を生成 AI に依頼することで、ブログ執筆の効率化を図ることができます。

input

prompt
Firebase Firestore Database のマスタデータを Terraform で一元管理する というテーマでテックブログを書いていきます。

本題に入る前に、マスタデータ と トランザクションデータ の違いについて触れておいた方がいいと思いました。
どのような説明がいいでしょうか?

回答のテンプレートは下記としてください。
---
## マスタデータとは
説明

### マスタデータ
マスタデータの例

### トランザクションデータ
トランザクションデータの例
---

output

---
## マスタデータとは
マスタデータとは、ビジネスプロセスやオペレーションにおいて長期間にわたり使用される基本的なデータのことです。これは、企業が日々の業務を遂行する際に必要な重要な情報を提供し、主に参照や識別のために使用されます。マスタデータは通常、頻繁には変更されない安定した情報を含んでいます。

### マスタデータ
- **顧客情報:** 顧客ID、名前、連絡先情報、住所など。
- **商品情報:** 商品ID、名前、カテゴリ、価格など。
- **社員情報:** 社員ID、名前、部署、役職など。
- **サプライヤー情報:** サプライヤーID、名前、連絡先情報、提供する商品の詳細など。

### トランザクションデータ
トランザクションデータとは、ビジネスプロセスの中で発生する一時的なデータのことです。これは、日々の業務活動におけるイベントや取引を記録し、頻繁に更新されます。トランザクションデータは、時間経過とともに変動し、マスタデータと対照的に一時的な情報を提供します。

### トランザクションデータの例
- **販売記録:** 販売ID、日付、顧客ID、商品ID、数量、総額など。
- **注文履歴:** 注文ID、日付、顧客ID、商品ID、数量、ステータスなど。
- **在庫移動:** 移動ID、日付、商品ID、出庫先、入庫先、数量など。
- **支払い記録:** 支払いID、日付、顧客ID、支払い方法、金額など。
---

このテンプレートに沿って、マスタデータとトランザクションデータの違いを簡潔に説明し、読者がこれらの概念を理解しやすいようにしました。これにより、テックブログの本題にスムーズに進むことができます。

まとめ

今回は、「僕が考える 生成 AI 時代のテックブログ執筆」というテーマで記事を執筆させていただきました。
冒頭でも述べましたが、改めて、本記事のポイントは下記の通りです。

  1. 生成 AI 時代では、単なる情報提供だけでなく、独自の視点や経験に基づいた価値ある内容 を発信することが重要
  2. テックブログ執筆は、個人のスキル向上だけでなく、組織全体の「生成的な文化」形成に貢献 することができる
  3. 生成 AI を活用することで、テックブログ執筆の 効率を高める ことができる

テックブログ執筆は、自身の学習のアウトプットであり、新しい技術や知見の情報発信の場でもあります。
そして、それが誰かに読んでもらえて役立っていると感じた時は、やはりとても嬉しいものです。

生成 AI をうまく活用しながら、自身の経験や洞察に基づいた独自の視点を発信していくことで、技術者としての価値を高め、キャリアの可能性を広げていくことができると思います。

最後までお読みいただき、ありがとうございました!

Discussion