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

Что субъективно?

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

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

В разработке программного обеспечения субъективное — это выражение, используемое для обозначения заявленной истины или метода, которые не имеют доказательств того, что способны обеспечить полезный результат, и, как известно, ведут к бесполезным дискуссиям.

Можно возразить, что у нас достаточно инструментов для устранения субъективности. Научный метод — это результат сотен лет философии, направленной на устранение человеческих слабостей в рассуждениях, метод, который даже способен давать эффективные результаты для определенных аспектов сложности Вселенной. Математика позволяет выражать мысли так, чтобы не оставалось места для субъективизма: у уравнения есть одна интерпретация, и только одна.

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

Однако с программным обеспечением все не так просто.

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

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

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

Когда мы работаем с нетривиальным программным обеспечением, мы имеем дело не с компьютерами, а с людьми.

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

Хотя невозможно дать правильный ответ на то, что не может быть обоснованно доказано, мы все же можем определить общие закономерности, чтобы решить, менее вероятно что-то даст правильный ответ, если известно, что они ведут бесконечные субъективные дискуссии.

Вот некоторые из этих шаблонов:

  • Аргумент шума — это когда разработчик заявляет, что часть кода неразборчива, потому что она слишком шумная, что не является очень полезным аргументом, потому что количество токенов на экране не реальное измерение удобочитаемости.
  • Аргумент удобочитаемости — это когда автор кода заявляет, что код удобочитаем для других читателей, что, как правило, неверно, поскольку автор кода — это тот, кто знает весь контекст того, что было написано. Выполнено.
  • Правильное решение — это когда кто-то утверждает, что предложенный способ — лучший способ написать решение проблемы, когда на самом деле лучшего решения нет, есть только решение, максимально близкое к тому, что есть. команда способна, учитывая текущие обстоятельства.
  • Излишнее проектирование – это когда кто-то, по-видимому, написал более чем достаточно для решения проблемы, которую трудно измерить количественно, потому что иногда в простом коде может быть больше проблем в долгосрочной перспективе, чем в явно перегруженном коде. один.

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

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

Если мы приложим усилия, пытаясь распознать их, мы сможем предпринять действия и предотвратить бесполезные обсуждения.

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

Спасибо за чтение. Если у вас есть отзывы, свяжитесь со мной в Twitter, Facebook или Github.