2008-10-25 2 views
-1

В заключительной конференции Agiles 2008 (Буэнос-Айрес, Аргентина) некоторые из лекций говорят о том, чтобы стать мастером вместо инженеров. Что ты об этом думаешь?Должны ли мы стать мастерами вместо инженеров?

Edit: добавить ссылку на Тобиас Майер Блог link

+0

Кажется, что этот вопрос полностью вращается вокруг вашего определения «ремесленника». – TraumaPony 2008-10-25 04:18:47

ответ

10

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

Инженер строится на общепризнанных знаниях и практиках инженерных дисциплин. Инженер может искать и получать статус профессионального инженера. «Программная инженерия», как таковая, пока не существует. Существует множество отличных разработчиков программного обеспечения и разработки программного обеспечения. Однако программное обеспечение не поддается такому же применению прикладных знаний и опыта, как механическое, гражданское, химическое, электрическое/электронное, материаловедение.

Дайте ему немного времени. На данный момент (около 75 лет к этому) у Гражданского Строительства еще не было правильного треугольника. Мы все еще разрабатываем методы, принципы и знания, чтобы сделать возможной разработку ПО.

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

IMNSHO.

3

Если быть crafstmen включает в себя быть хорошим инженером. Тогда мой ответ звучит ДА!

+0

Я согласен с тобой. Вы не можете быть тем или иным. Программирование - это и ремесло, и наука. Вид как архитектура. Плохой архитектор сделает уродливую сборку, которая сильна, или слабое здание, красивое, или слабое и уродливое здание. Хороший архитектор построит красивые сильные здания. – Kibbee 2008-10-25 01:34:56

0

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

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

0

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

1

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

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

+0

Я считаю, что логика ошибочна. Если вы строите мост, он не должен находиться под условиями, которые вы ожидаете. Не следует ожидать, что мост в Мичигане будет обрабатывать ураганные ветры класса 5. Построение его для этого - плохая инженерия, потому что вы делаете его более дорогим, чем это должно быть. – Kibbee 2008-10-25 01:51:15

+0

Таким же образом, программное обеспечение для строительства должно выполняться таким образом, чтобы оно работало в ожидаемых условиях. Кроме того, программы действительно должны деградировать изящно при плохом вводе. Только плохие программы выходят из строя, когда они получают плохую информацию. Хорошее программное обеспечение сообщает об ошибках оператору. – Kibbee 2008-10-25 01:52:46

+0

Извините, я должен был уточнить, что я имел в виду события, которые должны произойти, то есть программа, которая принимает аргумент командной строки имени файла, не должна разбиваться, если файл не существует. – mdec 2008-10-25 01:57:01

0

Это отчасти напоминает мне о развитии этого очень StackOverflow сайта;)

Не все здесь является абсолютно на основе инженерных Foolproof методов (Scott Hanselman был отчасти обжалованы идеей запуска веб-сервера в том же поле, кроме базы данных), но, как сказал Джоэл Спольский в своей книге, речь идет о том, чтобы быть Smart and getting things done, и это требует мастерства.

Конечно, вы все еще может быть ... hum... both;)

3

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

-1

Хорошие инженеры делают программное обеспечение, которое они хотят, чтобы показать

Хорошие Ремесленники написать код, который они хотят, чтобы показать

ли как :)

-5

Я не думаю, что так.

Для меня «инженерная» подразумевает дисциплину. «Craftmenship» подразумевает, что он является ad hoc и хаотичным.

Большинство программистов уже недисциплинированы и хаотичны в своих процессах.

Редактировать: Похоже, что многие из вас не согласны со мной. Не могли бы вы объяснить свое определение «ремесла»?

0

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

  • Наука (от латинского Scientia, что означает «знание» или «знание») является попыткой обнаружить и увеличить человеческое понимание того, как работает физический мир. link

  • Искусство - это продукт человеческого творчества. link

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

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

Заменить ___ словом «искусство» или «программное обеспечение». оба имеют смысл.

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

1

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

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

Просто, чтобы бросить свою собственную субъективную формулировку в микс - мне нравится использование Линусом слова «вкус». Я поеду научного инженера со вкусом.

0

Фрэнк Ллойд Райт был определенно ремесленником, но его дома имеет много структурных проблемы, и, я полагаю, может быть болью, чтобы на самом деле живет в

Я предпочитаю судебный запрет Роберт Мартин в Agile 2008 (Торонто). - быть профессиональным, писать чистый код, а не дерьмо.

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

0

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

0

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

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

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

1

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

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