TTechSpecs

Quick Flow(快速工作流程)

Quick Flow 是 Superpowers 中最高效的工作流程,專為緊急任務、簡單功能或快速修復設計。它強調速度和實用性,在保持基本品質的同時快速完成工作。

何時使用 Quick Flow

最適合的情境

  • 緊急的 bug 修復(hotfix)
  • 簡單的功能開發(< 2 小時)
  • 明確的程式碼調整
  • 配置檔案修改
  • 文案或內容更新
  • 快速的樣式調整

不適合的情境

  • 複雜的功能開發
  • 需要深入設計的重構
  • 涉及多個模組的變更
  • 不確定解決方案的情況

Quick Flow 的三個步驟

第 1 步:快速分析(5-10 分鐘)

快速理解問題和制定簡單計畫:

問題理解

  • 問題是什麼?
  • 期望的行為是什麼?
  • 當前的行為是什麼?

解決方案

  • 最簡單的修復方式是什麼?
  • 需要修改哪些檔案?
  • 有什麼潛在風險?

驗收標準

  • 如何確認問題已解決?
  • 需要測試哪些情況?

第 2 步:直接實作(主要時間)

立即開始實作,保持簡單:

Quick Flow 實作原則

  1. 最簡單的解決方案
  2. 最少的檔案修改
  3. 最快的測試驗證
  4. 直接的程式碼變更

第 3 步:快速驗證(5-15 分鐘)

確認修復有效且沒有破壞其他功能:

驗證步驟

  1. 測試修復的功能
  2. 執行相關測試
  3. 快速檢查相關功能
  4. 確認可以提交

實際範例

範例 1:緊急 Bug 修復

情境:生產環境發現按鈕點擊沒有反應

第 1 步:快速分析(5 分鐘)

問題: 使用者回報「提交按鈕點擊後沒有反應」

快速檢查

  • 檢查 Console:發現 TypeError: Cannot read property 'then' of undefined
  • 問題原因:API 函數沒有返回 Promise
  • 影響範圍:只影響提交功能

解決方案: 在 submitForm 函數中加上 Promise 返回

第 2 步:直接實作(3 分鐘)

// 修復前
const submitForm = (data: FormData) => {
  api.submit(data);  // ❌ 沒有返回 Promise
};

// 修復後
const submitForm = (data: FormData) => {
  return api.submit(data);  // ✅ 返回 Promise
};

第 3 步:快速驗證(2 分鐘)

本地測試

  1. 點擊提交按鈕 ✓
  2. 表單成功提交 ✓
  3. 顯示成功訊息 ✓

總耗時:10 分鐘

範例 2:簡單功能添加

情境:需要在現有頁面加上「返回」按鈕

第 1 步:快速分析(3 分鐘)

需求: 在使用者設定頁面加上返回按鈕

實作方式

  • 使用 React Router 的 navigate(-1)
  • 按鈕樣式與其他按鈕一致
  • 放置在頁面標題旁邊

第 2 步:直接實作(5 分鐘)

// 在 Settings.tsx 中加上返回按鈕
import { useNavigate } from 'react-router-dom';

function Settings() {
  const navigate = useNavigate();

  return (
    <div>
      <div className="flex items-center gap-4">
        <button
          onClick={() => navigate(-1)}
          className="text-gray-600 hover:text-gray-900"
        >
返回
        </button>
        <h1>設定</h1>
      </div>
      {/* 設定內容 */}
    </div>
  );
}

第 3 步:快速驗證(2 分鐘)

測試

  1. 點擊返回按鈕 ✓
  2. 正確返回上一頁 ✓
  3. 樣式符合預期 ✓

總耗時:10 分鐘

Quick Flow 的特點

1. 速度優先

Quick Flow 的時間分配

  • 分析:5-10%
  • 實作:70-80%
  • 驗證:10-20%

總目標:< 30 分鐘完成

2. 簡單直接

Quick Flow 偏好的實作方式

✅ 好的 Quick Flow 程式碼:

const isValid = email.includes('@');  // 簡單明瞭

❌ 過於複雜(不適合 Quick Flow):

const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
const isValid = emailRegex.test(email);

3. 最小變更

Quick Flow 的修改原則

  • 只修改必要的檔案
  • 只修改必要的程式碼
  • 避免重構或優化
  • 保持變更範圍最小

Quick Flow 與其他流程的對比

vs Full Flow

特點 Quick Flow Full Flow
時間 < 30 分鐘 數小時到數天
步驟 3 個 7+ 個
文件 最小 完整
審查 可選 必須

vs Incremental Flow

Quick Flow

  • 一次性完成
  • 不考慮後續擴展
  • 快速交付價值

Incremental Flow

  • 分階段完成
  • 考慮後續擴展
  • 穩健的迭代

Quick Flow 的限制

1. 不適合複雜問題

使用 Quick Flow 的風險

  • 可能引入技術債務
  • 可能缺少完整測試
  • 可能忽略邊界情況
  • 可能需要後續重構

2. 需要後續跟進

Quick Flow 後的跟進工作

  • 如果修復正確,標記為完成
  • 如果問題複雜,建立後續任務重構
  • 如果影響範圍大,安排完整審查
  • 更新相關文件(如需要)

Quick Flow 的最佳實踐

1. 快速但不能草率

Quick Flow 的品質標準

  • ✅ 功能正確實作
  • ✅ 沒有明顯的 bug
  • ✅ 通過基本測試
  • ✅ 程式碼可讀

可接受的簡化

  • ⚠️ 可能不是最佳實踐
  • ⚠️ 可能需要後續重構
  • ⚠️ 測試覆蓋可能不完整

2. 明確的時間界限

設定時間界限

  • 預估時間:20 分鐘
  • 時間上限:30 分鐘
  • 如果超時:重新評估是否需要其他流程

3. 快速文件

Quick Flow 的最小文件

git commit 訊息:
fix: 修正提交按鈕無回應的問題

問題:API 函數沒有返回 Promise
解決:在 submitForm 中返回 Promise
影響:提交功能恢復正常

何时避免 Quick Flow

需要使用 Full Flow 的情況

切换到 Full Flow 如果

  • 問題複雜且原因不明
  • 需要深入分析和解決方案設計
  • 影響範圍大或多個模組
  • 沒有明確的解決方案
  • 需要考慮長期影響

需要使用 Incremental Flow 的情況

切换到 Incremental Flow 如果

  • 功能可以分階段實作
  • 需要逐步驗證方向
  • 不確定最終需求
  • 需要使用者反饋迭代

Quick Flow 成功的關鍵

1. 明確的問題定義

好的 Quick Flow 開始: ✅ 「按鈕點擊沒有反應,Console 顯示 TypeError」

不好的 Quick Flow 開始: ❌ 「某個功能好像有問題」

2. 限制變更範圍

Quick Flow 的變更範圍建議

  • 檔案數量:1-3 個
  • 程式碼行數:< 100 行
  • 影響模組:單一模組
  • 測試需求:基本驗證

3. 快速驗證循環

Quick Flow 的驗證循環

實作 → 測試 → 確認 → 完成
  • 每個循環:< 5 分鐘
  • 總循環數:1-3 次

Quick Flow 的變體

Ultra-Quick Flow(超快速)

適用:明顯的 typo 或配置錯誤

步驟

  1. 直接修正(1 分鐘)
  2. 快速測試(1 分鐘)
  3. 提交(1 分鐘)

總時間:3 分鐘

Standard Quick Flow(標準快速)

適用:簡單的 bug 修復或小功能

步驟

  1. 快速分析(5 分鐘)
  2. 直接實作(15 分鐘)
  3. 快速驗證(10 分鐘)

總時間:30 分鐘

Quick Flow 是 Superpowers 中最實用的工作流程之一,掌握它能讓你在緊急情況下快速回應,同時保持基本的品質標準!