AIを使って毎日プロダクトを構築し、リリースする方法

AIはプロトタイピングを高速化する。しかし、リリースを容易にするわけではない。

デモは一度動けばいい。しかし、リリースされたソフトウェアは、見知らぬユーザーのために動作し、不正な入力を処理し、数ヶ月間安定していなければならない。AIは、最初の部分を無料で構築する手助けをしてくれる。エンジニアリングの基準を維持できれば、後半の部分をより速く構築する手助けもしてくれる。

私が実際のプロダクトをリリースするためにAIをどのように活用しているかを紹介する。

秘訣は「問題の定義(フレーミング)」にある。「完了」の状態がどのようなものかを説明できなければ、AIも説明できない。AIは、一見正しそうに見えて、実際には間違っている回答を提示してくるだろう。

私はまず、小さな仕様書を書く。そこで以下を定義する:

  • コードが何をしなければならないか。
  • コードが絶対にやってはいけないことは何か。
  • 正しく動作していることをどうやって確認するか。

私は「機能」を求めるのではなく、「ステップ(手順)」を求める。数千行のコードブロックよりも、小さな変更の方が優れている。すべての行を読み、信頼できなければならない。

私の日常的なワークフロー:

まずは動かすこと。 完璧な計画よりも、動く不格好なバージョンの方が多くのことを教えてくれる。 • 早めにテストを書くこと。 コードと一緒にテストを書くようAIに依頼する。そのテストを注意深く読むこと。 • 残すコードのすべての行を読むこと。 コードの1行を説明できないなら、マージしてはいけない。 • 退屈な80%の部分に活用すること。 ボイラープレート、スキーマ、マイグレーションなどはAIに任せる。 • 新しいツールを学ぶこと。 新しいライブラリやドメインを素早く理解するためにAIを使う。 • 悪いアイデアを切り捨てること。 アプローチが失敗するかどうかを確認するために、薄いバージョン(プロトタイプ)を作る。これなら1週間ではなく1時間で済む。

AIは最後の20%で失敗する。こここそが、あなたの判断力が最も重要になる場面だ。

あなたが責任を持つべきこと:

  • アーキテクチャとデータモデル。 AIが提示するスキーマは、後々問題を引き起こす可能性がある。
  • セキュリティ。 認証や個人データの管理をAIに任せきりにしてはいけない。
  • 一貫性。 AIは異なるスタイルでコードを書く。コードベースの整合性を保つのはあなただ。
  • 検証。 AIはしばしば、自信満々に間違ったことを言う。何も鵜呑みにせず、すべてを検証すること。

混乱を招かずにスピードを維持するためのルール:

  • 説明できないものは決してマージしない。
  • コンテキストを小さく保つ。プロンプトが大きすぎると、回答の質が低下する。
  • AIを「責任感ゼロの疲れを知らないジュニアエンジニア」として扱うこと。もし壊れたとき、深夜2時に呼び出されるのはあなたなのだから。
  • レビューのための時間を確保すること。構築は安価になった。確実性を担保することこそが、コストのかかる部分である。

タイピングが安価になれば、判断力の価値はさらに高まる。エンジニアの本当の仕事はタイピングではない。問題を定義し、アーキテクチャを選択し、何を作る価値があるかを決めることだ。

AIはエンジニアリングを容易にするのではない。思考そのものを仕事にするのだ。

Source: https://dev.to/manoharnegi/how-i-use-ai-every-day-to-build-and-ship-3oob

Optional learning community: https://t.me/GyaanSetuAi