Витгенштейн 3. Воплощение

В моей предыдущей статье, я рассказал о наиболее сложном аспекте моих впечатлений от чтения Витгенштейна, который он сам обозначил в письме Людвигу фон Фикеру: “Моя работа состоит из двух частей: первая представлена в этой книге, вторая – то, что я не написал. Именно эта вторая часть является самой важной.

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

Одна из ловушек, в которую каждый программист иногда попадает, это создание программы, которая делает не то, что требуется, а то, что программист умеет делать лучше всего. Нам нравится использовать наши умения. Зря что ли столько лет мы улучшали свое мастерство, изучали программы других, откладывая в копилку самые лучшие и “красивые” приемы и решения? Нам хочется поскорее применить то, что мы знаем и умеем. 

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

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

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

Сказав это, мне пришло в голову, что такое, наверное, происходит не только в программировании. Каждый профессионал предпочитает использовать те средства, которыми он владеет лучше всего. “Я думаю, что если твоим единственным инструментом является молоток, то на что угодно хочется смотреть как на гвоздь,” – писал Абрахам Маслоу в книге “Психология науки” в 1966. С тех пор, понятия “молоток Маслоу”, “золотой молоток“, “закон инструмента” вошли в обиходный язык науки и инженерии. Между тем, Абрахам Каплан зафиксировал подобное наблюдение на два года раньше в книге “Проведение расследования” (1964): “В дополнение к социальному давлению со стороны научного сообщества, на отдельного ученого влияет также очень человеческая черта. Я называю это закон инструмента, и он формулируется так: Дайте маленькому мальчику молоток, и он обнаружит, что по всем окружающим предметам просто необходимо стукнуть. Неудивительно, что ученый формулирует свои проблемы так, чтобы для их решения нужны были те способы, которыми он владеет особенно хорошо.”

И вот что я заметил. Большая часть объема двух книг Витгенштейна, особенно первая – Логико-философский трактат – поглощены формальным переходам от одного утверждения к другому. Но когда обсуждаются идеи Витгенштейна, никто не говорит о верности или неверности этих логических переходов. Обсуждаются главным образом его начальные допущения и выводы.

Людвиг Витгенштейн, 1947

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

Вот такое мое еще одно впечатление от книг Витгенштейна. 

Trackbacks/Pingbacks

  1. Витгенштейн 4. Язык - Николай Самойлов - программист и писатель - 12/05/2020

    […] заметить, что в моей предыдущей статье я говорил о том, что каждый ставит проблему так, […]

Powered by WordPress. Designed by Woo Themes