recoder: (Default)
[personal profile] recoder

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

Простые задачи решаются легко и просто.
Сложные задачи полностью не решаются вообще.

Поэтому единственно верный способ решать [сложные] задачи - это последовательно разбивать сложные задачи на более простые, пока не будет достигнут атомарный уровень простых под-задач. (Ср. с мозговым штурмом - 1,2.)

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

Сам процесс декомпозиции по-моему довольно прост. Для каждой задачи фиксируем/выясняем исходную точку и конечную точку (то есть критерий законченности задачи). После этого продумываем шаги достижения цели, получая список под-задач. При необходимости - процесс повторяется.

Кстати - это вообще универсальное правило. Нельзя проектировать самолёт или начинать ремонт, не представляя себе из чего этот процесс состоит. Как минимум это приведёт к неверной оценке сложности задачи. А обычно - приводит к явлению 'мы делаем то, не знаем что', ну или 'не знаем как'.

Есть, правда, и альтернативный этому подход "Сначала - ввяжемся в бой, а там посмотрим!" © Наполеон. Но он подходит только тогда, когда жизненно важна гибкость процесса и при этом либо есть избыточные ресурсы либо не важна эффективность. Пример:

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

Ключевой момент - как раз понимать, что теряется и что приобретается в процессе декомпозиции и планирования. Потому что первое обычно очевидно, а второе - нет. И получается как в шутке "Никогда нет времени, чтобы сделать правильно, но всегда есть время, чтобы переделать заново". Так что дедуктивное планирование - forever.

work
management

From: [identity profile] resiner.livejournal.com
На самом деле Наполеон также сказал, что нельзя выиграть то сражение, которое не было спланировано. (за достоверность не ручаюсь, но что-то около того)
А вот интересно существуют ли задачи, которые невозможно разбить на подчасти, поскольку информация "держится" именно на связях между частями? Пример такой "задачи" - человек, он не есть сумма отдельных клеток и кстати, потому не особенно лечится медициной, а эффективней всего "лечится" пиз..лями)). (На самом деле вопрос глубже, в каждой клетке "сидит" информация о всем человеке и даже об его далеких предках..)
Вообщем есть о чем порассуждать))
From: [identity profile] resiner.livejournal.com
А я и не спорю )) И цель и планы нужны стопудово.

Napoleon

Date: 2005-11-15 03:17 pm (UTC)
From: [identity profile] alexaces.livejournal.com
/off: Мне кажется ты путаешь выводы из цитаты с цитатой ;)
На русском у меня варианта нет (а по французски я не читаю), но на английском цитата выглядит вроде бы так:
Take time to deliberate, but when the time for action has arrived, stop thinking and go in.
Еще есть цитата приписываемая Мольтке (а после него - Эйзенхауэру, Гудериану и т.д.) - no battle plan ever survives contact with the enemy, из которой тоже конечно можно сделать вывод что "главное ввязаться в бой". Только неправильный это будет вывод ;) - речь и там и там идет о (третья цитата, на сей раз из советского мушкетерского мьюзикла - "если решать, тогда решай, а если решил - за дело" ;)

Re: Napoleon

Date: 2005-11-15 03:33 pm (UTC)
From: [identity profile] alexaces.livejournal.com
>> А то что ты говоришь, скорее относится к принципу:
>> Боишься - не делай. Делаешь - не бойся.
Вторую часть я безусловно вижу, хотя бы частично, в приведенных цитатах. А первой части там нет ни в каком виде, даже в виде невидимого текста ;)
P.S. Вот так они - "приписываемые" цитаты - и рождаются ... :)))

Date: 2005-11-16 01:06 pm (UTC)
From: [identity profile] akssi.livejournal.com
При этом Наполеон умел планировать только сражения, а вот логгитикой, припасами, снабжением и прочими русскими зимами он не интересовался. Поэтому Багартион, не выиграв ни одного с Наполеоном сражения, тем не менее выиграл войну :)
From: [identity profile] resiner.livejournal.com
потому что выиграл войну не Багратион (или Кутузов), а наша мать-природа: холодами да раздольем, а Наполеону на глаза до самой Москвы и обратно никто не попадался. А вот, если бы Наполеон ввязался в войну с российской природой, он бы поинтересовался припасами, теплыми штанами и пр., но скорее всего, подумав, бросил бы эту затею, поскольку проку в завоеванной холодной Москве вдали от теплого Парижа не было. Ошибка вышла - не с тем воевал.

Re: Napoleon

Date: 2009-03-14 10:14 am (UTC)
From: (Anonymous)
НУ, Эйзенхауэр ещё говорил "План - ничто, планирование - всё". А что касается изменений, вроде таких, как цены на нефть ..., то для этого как раз и существует принцип декомпозиции, чтобы эти изменения легче было учитывать в составе простых задач, а потом переносить на сложные =)

December 2024

S M T W T F S
1234567
891011121314
15161718192021
22232425 262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 24th, 2025 12:19 pm
Powered by Dreamwidth Studios