Логотип ConstructiCat
CodeBust.
Навигация по разделу ▾

Золочение.

Золочение — добавление функций или доработок сверх согласованных требований, которое увеличивает затраты и риски, хотя заказчик об этом не просил.

В управлении проектами и управлении временем золочение (gold plating) — это явление работы над проектом или задачей за пределами точки убывающей отдачи.

Например, выполнив требования проекта, менеджер или разработчик продолжает дальше улучшать продукт, полагая, что заказчик будет в восторге от дополнительных или более отполированных возможностей сверх того, что было запрошено или ожидалось. Если заказчик разочарован результатом, затраченные дополнительные усилия могут оказаться напрасными.

Золочение считается плохой практикой управления проектами с точки зрения различных лучших практик и методологий управления проектами, таких как Project Management Body of Knowledge (PMBOK) и PRINCE2. В данном случае «золочение» означает добавление любой возможности, не предусмотренной в исходном плане содержания (PMBOK) или описании продукта (PRINCE2), в любой момент проекта. Это связано с тем, что оно вносит новый источник рисков в исходное планирование — дополнительное тестирование, документирование, затраты или сроки. Однако избегание золочения не препятствует добавлению новых возможностей в проект; их можно добавить в любое время, при условии что они следуют официальной процедуре внесения изменений и учитывается влияние изменения на все области проекта.

Последствия золочения

Даже наилучшие результаты золочения могут привести к негативным последствиям для менеджера проекта или проекта в целом. В лучшем случае заказчик принимает результат проекта вместе с внеплановой работой, и ожидания заказчика по будущим проектам могут навсегда подняться до нереалистичного уровня. В худшем случае заказчик может полностью отвергнуть результат проекта и аннулировать контракт.

Пример

В задаче требовался экспорт заказов в CSV. Разработчик добавил ещё вывод в PDF и электронные таблицы, темы оформления, локализацию и диаграммы, о которых никто не просил, — и каждая из этих возможностей требует тестов, документации и сопровождения, а также вносит риски, не учтённые в плане.

interface Order { id: string; total: number }

interface ExportOptions {
  format: "csv" | "pdf" | "xlsx";
  theme?: "light" | "dark";
  locale?: string;
  includeChart?: boolean;
}

// в задаче просили только экспорт заказов в CSV
export function exportOrders(orders: Order[], options: ExportOptions): string {
  switch (options.format) {
    case "csv":
      return toCsv(orders);
    case "pdf":
      return renderPdf(orders, options.theme ?? "light", options.locale ?? "en", options.includeChart ?? false);
    case "xlsx":
      return renderSpreadsheet(orders, options.locale ?? "en");
  }
}

Поставляйте то, что было согласовано; дополнительные форматы можно предложить через процедуру управления изменениями, если они действительно кому-то понадобятся (см. также Теоретическая общность).

interface Order { id: string; total: number }

export function exportOrdersCsv(orders: Order[]): string {
  const rows = orders.map((order) => `${order.id},${order.total.toFixed(2)}`);
  return ["id,total", ...rows].join("\n");
}

Адаптировано по статье Википедии “Gold plating (project management)” (версия 1288387819), распространяется по лицензии CC BY-SA 4.0; текст переведён и отредактирован, добавлены примеры.