TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.75K subscribers
Post #2545 2.34K
День 2104. #УрокиРазработки
Уроки 50 Лет Разработки ПО

Урок 30. Задание либо полностью выполнено, либо не выполнено
Заявление, что программа или задача готова на 90%, является чем-то вроде корпоративной шутки. Также говорят, что первая половина проекта потребляет 90% ресурсов, а вторая — оставшиеся 90%. Такое оптимистичное, но вводящее в заблуждение заявление не позволяет оценить, когда данная часть работы завершится на самом деле. Если вы говорите: «Я закончил всё, кроме...» — значит вы ещё не закончили.

Что означает «готово»?
Что мы имеем в виду, когда говорим, что какая-то часть проекта готова? Приступая к проекту, команда должна перечислить критерии, с помощью которых будут определяться завершённость конкретного элемента работы, задачи или итерации. Контрольные списки помогают установить минимальный объём работы, которую необходимо выполнить, чтобы считать конкретную задачу завершённой. Например, программный компонент полностью реализован, протестирован, интегрирован в продукт и задокументирован, то есть потенциально может быть выпущен для использования клиентами. Отдельные единицы работы, такие как реализация пользовательских историй, либо выполнены на 100%, либо не выполнены; промежуточного состояния не существует.

Не бывает частичной готовности
Большая задача - это некая единица работы, которая приносит пользу клиенту. Одна из проблем оценки степени готовности — мы слишком часто считаем готовыми задачи, которые начали, но не завершили. Однажды утром, обдумав алгоритм решения сложной задачи, вы можете решить, что выполнили около 30%, поскольку алгоритм был сложной частью работы. Возможно, это так, но написание кода, ревью, тестирование и интеграция с приложением тоже могут потребовать много времени. Трудно точно оценить процент выполнения большой задачи. Может оказаться, что она намного больше, чем предполагалось, или появится необходимость выполнить дополнительные действия, да и нет уверенности в том, как пойдёт оставшаяся работа.

Первый шаг к решению проблемы определения готовности — разбить большие задачи на несколько маленьких подзадач по 4-6 рабочих часов. Эта величина позволяет понять всё, что нужно сделать, чтобы выполнить задачу. Полезно определять их как действия, которые нельзя логически разделить на более мелкие части. Если у вас есть предыдущий опыт выполнения какого-либо действия, вы наверняка сможете точно оценить, сколько времени понадобится для его выполнения. Для менее знакомых, более неопределённых или более сложных действий лучше подойдёт разделение на более мелкие подзадачи.

Следите за своим прогрессом по этим мелким задачам в бинарной форме: «готово/не готово». Не бывает частичной готовности. Готовность незавершённой задачи — 0. Прогресс в большой задаче определяется количеством составляющих её и полностью готовых подзадач. Такое отслеживание прогресса более информативно, чем попытки угадать выполненный процент большого и, возможно, неверно определённого объёма работы.

Отслеживание по статусу требований
Другой вариант мониторинга хода выполнения проекта — отслеживание статуса требований. Каждое требование, добавленное в объём работ, имеет статус в данный момент времени, например: «предложено», «одобрено», «реализовано», «проверено», «отложено» и «удалено». При таком подходе запланированный объём работ считается завершённым, когда каждое добавленное в него требование имеет один из трёх статусов:
- «проверено» (полностью реализовано и протестировано);
- «отложено» (отложено для реализации позднее);
- «удалено» (больше не планируется к реализации).

Готовность ведёт к ценности
Следить за продвижением проекта необходимо не только для того, чтобы убедиться в том, что сделана вся запланированная работа. Такой мониторинг также позволяет гарантировать выполнение отдельных этапов, которые принесут пользу клиентам, когда они получат готовую реализацию. Лучший способ получить представление о том, насколько вы близки к достижению этой пользы, — изменять статус задачи на «готово», только когда она действительно завершена.

Источник: Карл Вигерс “Жемчужины Разработки”. СПб.: Питер, 2024. Глава 4.
  • 👍 8
More from @netdeveloperdiary
  1. Oct 7, 2026День 2807. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Окончание Нач…
  2. Oct 6, 2026🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК Приглашаем на открытое собес…
  3. Oct 6, 2026День 2806. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Начало Больши…
  4. Oct 5, 2026День 2805. #ЧтоНовенького #NET11 Аргументы в Выражениях Коллекций в C#15 В C#15 реализован…
  5. Oct 4, 2026День 2804. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
  6. Oct 3, 2026Post #3360
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →