ブログ

音声コーディング:ドキュメントとコメントを話して書く

音声コーディングの誤解

開発者が「音声コーディング」と聞くと、誰かが Python の構文をそのまま話している場面を想像します。「def スペース calculate アンダースコア total open paren items close paren コロン...」といった具合です。これは音声コーディングではありません。これは苦痛です。

本当の音声コーディングは、構文入力をキーボードから音声に置き換えることではありません。ソフトウェア開発の大部分を占める自然言語——ドキュメント、コメント、コミットメッセージ、プルリクエスト説明、タスク分解、Slack の更新、コードレビューなどを音声で行うことです。

ほとんどの開発者が気づいていないのは、開発作業における自然言語と構文の比率です。徹底した開発者の時間配分は次のようになります:

  • コード作成:20%
  • ドキュメント作成とコメント作成:30%
  • 問題説明と PR 内容の作成:15%
  • Slack、メール、会議:20%
  • コードレビューと計画:15%

つまり、開発作業の 80% は音声入力が キーボード入力より速いか、同等の効率です。実際の構文を扱う 20% だけがキーボードに留まります。

開発者が音声で話すべき内容

コードコメント

コメントは純粋な自然言語です。関数が存在する理由、どのエッジケースに対応しているか、呼び出し側が知るべきことを説明するコメントを書く場合、話す方がタイプするより簡単です。

ワークフロー: エディタのコメント挿入位置に移動して、ホットキーを押し、説明を話して、放す。Clean モード(クリーンモード)はフィラー表現を削除し、すっきりした文章に整形します。

例: ホットキーを押して、「この関数はユーザートークンが期限切れだがリフレッシュトークンはまだ有効というエッジケースに対応している、1 度のリフレッシュを試みてそれも失敗した場合はログアウトを強制する、呼び出し側は AuthenticationError に対応する必要がある」と話します。離すと、整形されたきれいなコメントが現れます。

ドキュメントと README

README ファイル、API ドキュメンテーション、インラインの JSDoc やドキュメント文字列コメントは、音声入力が真価を発揮する場所です。人間の読者に向けて自然な文章で書く——つまり、コードを見ながら誰かに説明するのと同じ方式です。

関数のドキュメントをコードを見ながら話すことで、タイプして書くよりも良いドキュメントが生まれます。見えているものを自然に説明でき、キーボード操作による摩擦がありません。

コミットメッセージ

良いコミットメッセージは短い文章です。何が変わったか、そしてなぜか。コミットメッセージを話すのはタイプするより速く、Clean モードで読みやすい文字列に整形されます。

プルリクエスト説明

プルリクエスト説明——問題、解決策、テスト計画、レビュアーへのメモ——はちょうど Telvr の充実モードが得意とする構造化コンテンツです。Dev Task モード(開発者タスクモード)はこうした構造をネイティブに生成します。

例: ホットキーを押して Dev Task モードに切り替え、「支払い処理フローのレース条件を修正した、問題は 2 つの同時リクエストが両方とも残高確認をしてから引き落としをしていたこと、トランザクションの周りにデータベースレベルの行ロックを追加した、2 つの同時支払い試行をトリガーするテストを追加した」と話します。離すと、問題、解決策、テストノートを含む構造化された PR 説明ができます。

問題とチケットの説明

詳細なバグレポートや機能仕様書をタイプするのは退屈です。問題画面を見ながら自然に話す方が速く、文字入力の物理的な負担を感じないため、より詳細で説得力のある説明ができます。

Slack とチームの更新

進捗報告、ブロッカー、スタンドアップサマリーは本質的に会話です。「昨日は認証リファクタリングを完了した、今日は支払い統合に取り組んでいるが、サンドボックス環境のテスト認証取得でブロックされている、Sarah に相談するつもりだ」。これは完全なスタンドアップが 15 秒の音声で完成します。

開発者ワークフローのセットアップ

ホットキーの設定

Telvr のデフォルトホットキー(Mac の場合 Option + Space)は開発者に適しています。ほとんどの IDE ショートカットと競合しないためです。別のキーを好む場合、ホットキーはカスタマイズできます。

開発者向けの推奨セットアップ:

  • ホームポジションから指を動かさない
  • ターミナル内での誤発動を防ぐため 2 キーの組み合わせを使用する
  • お使いの IDE(VS Code または JetBrains)のキーマップと競合しないホットキーを選ぶ

モード選択

開発ワークフロー向けのモード:

  • Clean モード: 一般的なコメント、散文的なドキュメント、Slack メッセージ
  • Dev Task モード: PR 説明、問題仕様書、技術要件のまとめ
  • Meeting Notes モード: スプリント終了時のノート、設計討論のまとめ
  • Email モード: クライアント向けの技術情報、非技術者向けのステータス更新

IDE 統合

Telvr はシステム全体のテキスト挿入を使用するため、どのアプリケーションのどのテキストフィールドでも動作します。

  • VS Code(コードエディタ、統合ターミナル、検索、コメント)
  • JetBrains IDE(IntelliJ、WebStorm、PyCharm)
  • Zed、Neovim(挿入モード時)
  • Linear、Jira、GitHub(ブラウザ内)
  • ターミナル(git commit メッセージなどのテキスト入力時)

プラグインのインストールは不要です。編集可能なテキストフィールドならどこでも機能します。

実際の開発者ワークフロー

開発セッションで音声入力を使う場面を実例で見てみましょう。

朝のスタンドアップ(Slack): ホットキーを押して、昨日の進捗、今日の計画、ブロッカーを話す、放す。20 秒で完了です。

コーディング: キーボード。通常の開発ワークフローです。

複雑な関数へのコメント追加: 適切な行に移動して、ホットキーを押し、説明を自然に話して、放す。

GitHub の問題作成: 新しい問題を開いて、Dev Task モード でホットキーを押し、バグと再現手順を説明して、放す。タイトルを付けて送信します。

コミットメッセージの作成: ターミナルで git commit を実行し、開くエディタ(またはファイルへのパイプ)でホットキーを押し、コミット説明を話して、放す。

プルリクエスト説明の作成: PR フォームを開いて、Dev Task モード でホットキーを押し、PR の内容と目的を説明して、放す。必要があればレビュアーへのメモを追加します。

Slack での技術質問への回答: ホットキーを押して、技術的な決定やコンセプトを説明して、放す。Clean モード が読みやすい説明を生成するため、細かいタイプミスの心配がありません。

生産性の現実

開発ワークフローで音声入力から得られる最大のメリットは、単なるスピードではなく、摩擦の削減です。ドキュメントはしばしば後回しにされるか完全にスキップされます。タイプして書くのが、実際のコーディング作業の上に乗る余分な負荷に感じられるためです。コメントやドキュメント文字列を 2 分間の慎重なタイプ作業ではなく 15 秒の音声で書けるようになると、ドキュメンテーションを追加するハードルが大幅に下がります。

その結果、より良くドキュメント化されたコード、より完全な PR 説明、より詳細な問題報告が生まれます。これは開発者の音声入力の実用的な成果です。単に同じ習慣を速く実行するだけではなく、ドキュメンテーション文化そのものが向上するのです。

1 週間で新しい習慣に

音声入力を開発ワークフローに組み込むまでのステップ:

1 日目: Slack メッセージでのみ音声を使用する。それ以外は何もしません。

3 日目: コミットメッセージを追加する。ターミナルエディタに説明を話す。

5 日目: インラインコメントを追加する。複雑な関数を書き終わるたびに、説明を話す習慣をつける。

7 日目: Dev Task モード を使って PR 説明を追加する。以前のようにタイプしている時よりも、より完全な説明を書いていることに気づきます。タイプより話す方が速いからです。

2 週間経つと、習慣が定着し、音声入力が自然で、努力が要らないものに感じられるようになります。