Pull to refresh

Comments 28

UFO just landed and posted this here
Скажу больше — эти 20 вопросов помогают не только разработать алгоритм, но и весь проект в целом.

Статья будет очень полезна начинающим разработчикам.
UFO just landed and posted this here
UFO just landed and posted this here
Эх! Знал бы я ноты, я бы шлягер на эту тему написал. Главное зарифмовать все эти вопросы и присобачить мелодийку.
Полезная штука.

Проблема в том, что большинство работы после обдумывания 20-ого пункта делать не хочется:)
Трудно представляю, как можно «услышать» или «почувствовать на вкус» задачу или решение, но попробую сделать в следующий раз. Чем чёрт не шутит, вдруг чем поможет.
Хорошая систематизация невысказанных мыслей. Я действительно применял большинство из этих методик неосознанно. Правда узнал и несколько новых, что ж, будем знать!
За статью спасибо. Хотя мне кажется, что пункты 1 и 2 надо местами поменять :) Вопрос «Зачем» и правда зачастую помогает тут же понять, что дальше двигаться и не нужно :)
Пропущен крайне важный вопрос — каков идеальный результат? Для меня понимание идеального результата изменило взгляд на жизнь. Это результат, при котором цель достигнута, но ничего не произошло, т.е. задача решилась за счёт текущих средств.
Рекомендую посмотреть что такое ТРИЗ, крайне занятная вещь. Там тоже кстати алгоритм изобретений есть, получше мозговых штурмов.
Каюсь. 16 вопрос, но имеется ввиду немного другой результат.
Предполагалось, что это действительно вопрос №16 (по крайней мере я задумываюсь об «идеальном результате» ТРИЗ именно в этом месте, когда работаю).
Совершенно согласен, что ТРИЗ — это супер. Но для его подробного обсуждения требуется отдельная статья, да и книги по нему хорошие есть.
"...ничего не произошло, т.е. задача решилась за счёт текущих средств."
Не могу переварить.
Можно перефразировать/пояснить примером, пожалуйста?
Идеальная система — это система, которая не существует, но все функции при этом выполняются )
Определение, если не ошибаюсь, из ТРИЗ тоже )
Там был азбучный пример, когда в космический аппарат нужно было внедрить дополнительный прибор весом в 6 кило, в то время как вес аппарата был рассчитан с точностью до грамма и чего-то менять было крайне абсурдной идеей. В аппарате имелся утяжелитель для выравнивания центра тяжести, так вот этот утяжелитель просто заменили этим новым прибором. Т.е. система не изменилась, но полезные свойства появились.
Или ещё была задача про то, как избавиться от твёрдой корки, образующейся на поверхности ковша для расплавленного металла (это шлаковая корка, потом непригодна), в то же время создав теплоизоляцию металла, сохранив тепло. Придумали идею, что если в ковше будет вода до того, как в него наливают расплавленный металл, то это образует «металлическую пену» на поверхности. Т.е. и корки нет, и теплоизоляция есть, но это ничего не стоило.
Вообще эта теория помогла мне понять, какими должны быть интерфейсы, применив ИКР (идеальный интерфейс — которого нет, как утверждает Купер, и в то же время он быть должен, это противоречие решается).
Теория также раскрывает закономерности развития технических систем, которые проявляются в всех изобретениях вокруг. Единственно странное — оптимизация программ, БД часто противоречит этим закономерностям, а всё остальное вполне предсказуемо. Т.е. можно до некоторой степени предсказать, куда будет развиваться любая технология.
Ух… Вопрос где? меня смутил: ) И вообще, о каких алгоритмах идёт речь? Поможет ли это всё изобрести конкретный, скажем, алгоритм поиска?
Попробуйте. Только сформулируйте четко задачу.
Если хотите, можем вместе один раз пройтись по всем вопросам. Думаю, будет интересно.
Теперь я понял, что за вопросы задаю себе, когда собираюсь написать код:)
решение любой задачи сводится к сбору информации о наблюдаемом объекте. Причем этот принцип применим как для решения самых сложных научно-исследовательских задач

Дальше этот поток сознания можно не читать, это классический пример bullshit
Самые первый вопрос в любом проекте: Зачем? и уже от него подветки делать надо. Изначальное дробление вопроса на подвопросы могут пессимизировать важность Главного Зачем. Вроде и прибыль хотел получить, вроде и клиентам это надо было, а чето нифига не пошло и никому не интересно.
Не согласен:
«зачем» это как проекция многомерного вопроса на линию, хуже тени.
На любое внесённое предложение вопрос «зачем» звучит как презумпция
ненужности.
Если вопрос разработки поставлен, он уже имеет некоторое обоснование,
которое укрепится или разрушится после анализа полученных ответов.
Вот если проект уже перегружен, тогда всё новое имеет ничтожный вес перед
приведением в порядок уже реализованного.
Всё-таки топик об изначальном подходе к решению сложной задачи.
Эти 20 вопросов появились не случайно. Есть такое направление психологии, которое считает, что это 20 hardware-зашитых в наш мозг методов мышления.
Редко кто владеет всеми 20 в равной степени, чаще с детства человек выбирает 3-5 и применяет их во всех ситуациях. Разумеется, этот выбор у каждого свой.

«Зачем?» — совершенно фундаментальный вопрос. Кстати, задавать его надо именно несколько раз подряд. Потому что ответ на первый «Зачем?» как раз, обычно, тривиален. А интересные вещи всплывают, когда получается раскрутить цепочку причин на 3-5 звеньев назад.
Но остальные вопросы тоже ничем не хуже; кому что привычнее.

Я всегда с людей начинаю, например (привычка).
Уважаемый автор, может быть Вы подскажите какую-нибудь стоящую литературу по теме технического творчества? Сложилось впечатление, что вы эрудированы в этом вопросе. Читал Альтшуллера и Джонса («Методы проектирования»). Хотелось бы расширить свои знания в этом вопросе, узнать новые методы.
Не так-то просто ответить на этот вопрос. Что такое техническое творчество?

Есть масса книг по управлению проектами, которые включают в себя в том числе решение сложных задач, возникающих в процессе их реализации. Здесь лучшая книга, которую я читал, это The Project's Manager Desk Reference, James Lewis, который последовательно излагает все известные методы.

Есть масса книг по методологии программирования, их я знаю мало, но часто слышал (разные Agile, Waterfall, каскадное программирование, Joel on Software и т.п.)

Про решение инженерных, изобретательских задач есть гораздо меньше исследований, почти все основаны на ТРИЗ.

Есть методики креативного бизнес-мышления. Например, очень интересные книги Blue ocean strategy, Theory of Constraints, Good to Great. Эти методы можно применять и гораздо шире.

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

Есть методики, подстегивающие интуицию и позволяющие иногда находить совершенно неожиданные решения (частично об этом есть и у Lewis).

Есть философские труды про методологию науки, к примеру Поппера.

И есть мои методы, которые я много лет пока безуспешно пытаюсь изложить в виде книги. Но пока смог провести только один семинар по этой методике пять лет назад, который люди до сих пор вспоминают (когда мне пересказывают некоторые его эпизоды, я даже не могу представить, что это я действительно говорил). С тех пор многое забылось. Но вот буквально недавно оказалось, что сохранился один хороший конспект. Постараюсь его опубликовать по возможности.
Спасибо за столь полный ответ.
Под техническим творчеством подразумевал именно решение инженерных изобретательских задач.
Интересно было бы прочитать Ваш конспект.
А вот НЛП для решения технических задач звучит экзотично довольно.

Ну, с помощью НЛП можно включать turbo boost режим нашего мозга. Как оказалось, для решения изобретательских задач это тоже хорошо подходит.
С Вопроса №17 иногда прям нужно начинать))
Спасибо, отличная статья!
Sign up to leave a comment.

Articles