Найти в Дзене
ZDG

Декомпозируй это немедленно

Почему конкретно в IT-индустрии названные сроки реализации неизменно растягиваются в 2, а то и в 5 раз? Мы работаем со слишком многими неизвестными факторами. Можно было бы сказать, что у нас есть неизвестные x, y, z, но проблема в том, что мы даже не знаем, сколько их. А не знаем, потому что задача слишком большая. Декомпозиция (разложение) превращает большую задачу в множество маленьких. У каждой маленькой задачи тоже есть неизвестные факторы. Но их количество будет снижаться, если эти маленькие задачи декомпозировать в ещё более маленькие, уже настолько элементарные, что там будет всё абсолютно очевидно. Но и там что-то может пойти не так. Рассмотрим это на примере простой бытовой задачи (и кстати да, декомпозировать можно любую задачу вообще): Забить гвоздь Любой глагол, который мы видим, нужно рассматривать особенно тщательно. "Забить". Чем? Молотком. Молоток есть? Да. А где он? Неизвестно. Видите, появилась маленькая неожиданность. Задача решаема, но куда делся молоток? Значит, н
Оглавление

Почему конкретно в IT-индустрии названные сроки реализации неизменно растягиваются в 2, а то и в 5 раз?

Мы работаем со слишком многими неизвестными факторами.

Можно было бы сказать, что у нас есть неизвестные x, y, z, но проблема в том, что мы даже не знаем, сколько их.

А не знаем, потому что задача слишком большая.

Декомпозиция (разложение) превращает большую задачу в множество маленьких. У каждой маленькой задачи тоже есть неизвестные факторы. Но их количество будет снижаться, если эти маленькие задачи декомпозировать в ещё более маленькие, уже настолько элементарные, что там будет всё абсолютно очевидно.

Но и там что-то может пойти не так.

Рассмотрим это на примере простой бытовой задачи (и кстати да, декомпозировать можно любую задачу вообще):

Забить гвоздь

Любой глагол, который мы видим, нужно рассматривать особенно тщательно. "Забить". Чем? Молотком. Молоток есть? Да. А где он? Неизвестно.

Видите, появилась маленькая неожиданность. Задача решаема, но куда делся молоток? Значит, нужно добавить в задачу пункт "найти молоток". Но "найти" это тоже глагол. Где искать? Под диваном? Надо посветить фонариком? А где фонарик? A он работает? И т.д.

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

Проблема с оценкой времени возникает именно тогда, когда мы говорим "сделать", подразумевая, что раз – и вот оно уже сделано.

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

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

Буду делать пирата

Мне как-то раз пришла в голову идея игры про пирата в интересном сеттинге, но я за неё не брался, потому что боялся объёмов работы. Однако недавний опыт с Godot показал, что не всё так печально (да думаю и с Unity тоже), поэтому я решил всё-таки сделать модельку персонажа-пирата и пройти весь цикл. Моделирование, риггинг, анимация и наконец загрузка в игру (а когда всё получится, можно будет и покрасить).

Задача моделирования – самая первая. Опыт работы в 3D у меня есть, начинал я ещё в 3D Studio самой ранней версии. В Blender тоже возился, делал кое-какие модели, но так как у меня не было цели, всё это заканчивалось тем, что я просто бросал их, поигравшись.

Декомпозировал я данную задачу на ближайшее время так:

🔳 Нарисовать внешний вид. Игра про пирата представилась мне как короткое видение, поэтому я знаю, примерно каким он должен быть, но очень смутно. Значит, надо чётко это визуализировать.

🔳 Посмотреть обучающие видео про правильную топологию в Блендере (собственно, уже два дня смотрю). Как оказалось, правильная топология очень важна.

⬜ Адаптировать внешний вид к ограничениям низкополигональной модели. Здесь я должен предварительно спланировать, как сетка ляжет на фигуру, чтобы не мыкаться в редакторе, создавая проблемы.

⬜ Смоделировать нижнюю часть

Да, я понял, что делать сразу всего пирата нет смысла. Я начну с нижней части туловища и ног, там отработаю топологию, сделаю риггинг, посмотрю как всё гнётся, исправлю косяки, загружу в игру. Ну и что, что там будет бегать только пузо с ногами?

Если всё будет хорошо, тогда уже буду добавлять остальное.

Касательно визуализации, мне нужен совершенно определённый образ, который я видел, но никак не могу его выразить.

Это сейчас не столько про внешность или одежду, сколько вообще про форму и объёмы. Мне пока что не нравится, так как я не смог получить тот образ, который был в голове, но буду дальше пытаться. Это был толстенький мультяшный пират с очень простыми формами. Причём толстенький не в смысле жирный, а вот просто как-то стилизованный, вроде юлы или матрешки... как-то необъяснимо, вот это и хочу ухватить.

А это что-то более похожее на правду, уже в Блендере:

-2

Но эту модель я ещё раньше начал делать просто наобум, без плана, поэтому буду делать всё заново и по плану.