Что могут узнать программисты из строительной отрасли? [закрыто]

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

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

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

[Кредит Концепции программирования, взятые из искусство и гуманитарные науки для идеи]

31 голос | спросил Nicole 13 Jpm1000000pmThu, 13 Jan 2011 22:44:22 +030011 2011, 22:44:22

13 ответов


10

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

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

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

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

Затем клиент просит что-то абсурдное: можете ли вы превратить садовый сарай в гараж? Я не хочу, чтобы ты переделал все, что ты сделал ... Я просто хочу, чтобы ты сделал это больше, чтобы я мог припарковать машину. Затем во многих случаях разнорабочий считает, что «клиент всегда прав», и продолжает строить дополнения на 3 сторонах сарая, чтобы сделать его больше, сбивает стену между перегородками и т. Д. Конечно, крыша заканчивается прогиб, потому что он не построен правильно и т. д.

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

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

  1. Человек, имеющий право строить действительно красивый садовый сарай, не обязательно квалифицирован для строительства дома.

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

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

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

Agile Manifesto - результат признания того, что программная /строительная аналогия нарушена. Такие вещи, как автоматические модульные тесты и итеративные циклы выпуска, не имеют параллельной конструкции. Эти вещи используют почти нулевую стоимость перехода от дизайна к прототипу (мы называем его компиляцией или построением).

ответил Scott Whitlock 24 Jpm1000000pmMon, 24 Jan 2011 21:03:51 +030011 2011, 21:03:51
7

Приходят на ум термины Завершить работу и Trim .

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

ответил sal 13 Jpm1000000pmThu, 13 Jan 2011 23:20:25 +030011 2011, 23:20:25
4

Старая пословица: измерьте дважды и вырежьте один раз.

Edit: Существует раздел в Манифест контрольного списка Атул Гаванде, который рассказывает об управлении большими строительными работами. Когда они доходят до такой степени, что это действительно сложно, они встречаются с экспертами, чтобы пересмотреть проблему и посмотреть, произошло ли что-либо во время проекта, о котором все должны знать. Вероятно, мы не планируем их заранее.

ответил JeffO 14 Jam1000000amFri, 14 Jan 2011 04:19:48 +030011 2011, 04:19:48
3

Ограничения существуют как в конструкции, так и в программировании .

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

ответил 13 Jpm1000000pmThu, 13 Jan 2011 23:37:33 +030011 2011, 23:37:33
3

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

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

Тем не менее, строительство имеет тысячи лет опыта, чтобы опираться. Основные правила торговли основаны на тех же законах физики, которыми они всегда были. Расчеты ветровой нагрузки и мертвой нагрузки такие же, как и при выполнении правил скольжения. Усовершенствования в инструментах и ​​методах приходят вместе, но в ледяном темпе по сравнению с тем, что мы переживаем.

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

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

Конечно, в обоих полях архитектор может рисовать то, что не может быть реализовано.

ответил MIA 14 Jam1000000amFri, 14 Jan 2011 04:30:42 +030011 2011, 04:30:42
2

Леса , «временная структура, используемая для поддержки людей и материалов при строительстве или ремонте зданий и других крупных сооружений». [определение из википедии]

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

ответил Nicole 13 Jpm1000000pmThu, 13 Jan 2011 23:35:15 +030011 2011, 23:35:15
2

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

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

ответил Bernard Dy 14 Jam1000000amFri, 14 Jan 2011 05:08:01 +030011 2011, 05:08:01
1

Ошибки могут оказаться дорогими как ад или даже убивать людей?

ответил Davor Ždralo 18 FebruaryEurope/MoscowbFri, 18 Feb 2011 02:11:42 +0300000000amFri, 18 Feb 2011 02:11:42 +030011 2011, 02:11:42
1

Существуют базовые рекомендации для сложных инженерных проектов любой дисциплины:

  1. важность планирования, синих рисунков, дизайна и т. д.
  2. важность лежащей в основе математики
  3. повторное использование идей /изучение других подобных проектов
  4. с использованием готовых строительных блоков /компонентов, построенных кем-то другим.
  5. исправление проблем в самом начале жизненного цикла
    и т. д.,

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

ответил CMR 22 FebruaryEurope/MoscowbTue, 22 Feb 2011 19:24:53 +0300000000pmTue, 22 Feb 2011 19:24:53 +030011 2011, 19:24:53
0

Сверхурочная

Но в строительной отрасли рабочие получают сверхурочную оплату.

ответил DavRob60 16 FebruaryEurope/MoscowbWed, 16 Feb 2011 22:03:09 +0300000000pmWed, 16 Feb 2011 22:03:09 +030011 2011, 22:03:09
0

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

  

Я ничего не могу найти на рынке   который подходит для наших настраиваемых сокетов.

ответил BillThor 17 FebruaryEurope/MoscowbThu, 17 Feb 2011 03:07:43 +0300000000amThu, 17 Feb 2011 03:07:43 +030011 2011, 03:07:43
0

Когда у вас есть молот, все выглядит как гвоздь. :)

ответил Domchi 23 FebruaryEurope/MoscowbWed, 23 Feb 2011 00:39:05 +0300000000amWed, 23 Feb 2011 00:39:05 +030011 2011, 00:39:05
0

Повторяющиеся травмы деформации

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

ответил user16764 10 MaramSat, 10 Mar 2012 00:51:59 +04002012-03-10T00:51:59+04:0012 2012, 00:51:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132