Какой метод программирования вы предпочитаете? Успех против свободы - PullRequest
1 голос
/ 05 декабря 2008

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

Ответы [ 15 ]

11 голосов
/ 05 декабря 2008

Отношение "свобода или ничего" юношество и раздражает, реальный мир так не работает.

Дайте мне установленный процесс.

5 голосов
/ 05 декабря 2008

Экономист. Если это приносит мне деньги и не является неэтичным, я за это.

4 голосов
/ 05 декабря 2008

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

3 голосов
/ 05 декабря 2008

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

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

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

3 голосов
/ 05 декабря 2008

Зависит от того, умны ли вы.

Если ты умный, тогда свобода. Вы добьетесь успеха.

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

2 голосов
/ 05 декабря 2008

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

С другой стороны, когда Амитабх Шривастава наложил некоторые основные требования к анализу и тестированию для команды Windows, уровень ошибок снизился, и, по крайней мере, среди моих друзей в Microsoft, производительность и моральный дух повысились. Я предполагаю, что нечто подобное произошло в проекте KDE, когда они начали требовать от всех использования valgrind . Внезапно больше нет ошибок памяти и сбивает с толку дампы ядра.

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

Свобода для разработчиков - это совсем другой вопрос. Мне повезло в том, что у меня есть работа, где у меня есть почти полная свобода выбирать все в моей среде разработки. (Пример: я работаю в магазине Red Hat, но у меня был бюджет на покупку компьютера и установку Debian.) Поскольку у меня более 20 лет непрерывного опыта разработки программного обеспечения, я обычно могу довольно неплохо выбирать, какие языки и инструменты использовать. использовать. Но обратной стороной этого является то, что я могу быть достаточно продуктивным на любом языке или в любой среде. Использование perl или C ++ может замедлить меня в 2 или 3 раза, а использование Lua или Haskell ускорит меня при определенных проблемах, но я доберусь до конца.

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

Я также видел, что ограничение разработчика конкретной средой или языком не является гарантией успеха. Я считаю себя очень плохим программистом на Perl; Я в основном отношусь к perl как к awk на стероидах. Я полный идиот. И все же мне приходилось иметь дело с кодом на Perl, написанным другими, который был намного хуже всего, что я мог написать, просто потому, что они никогда не учились думать о проблемах или о том, как организовать код.

Думаю, мне лучше прекратить разглагольствовать сейчас.

2 голосов
/ 05 декабря 2008

Это не правильный вопрос. Вы можете воспользоваться своей свободой следовать за процессом, или вы можете использовать свою свободу не следовать за процессом. Следите ли вы за процессом или нет, у вас все еще есть свобода.

2 голосов
/ 05 декабря 2008

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

1 голос
/ 05 декабря 2008

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

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

1 голос
/ 05 декабря 2008

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

Я думаю, вы действительно должны переосмыслить это. По моему опыту, разработчики должны быть БЕСПЛАТНЫ, чтобы выбрать лучший метод реализации, если он лучше после проверки, чем "проверенные и испытанные" методы, тогда он будет сохранен и использован остальной командой. Но им все еще нужно убедиться, что код, который они пишут, УСПЕШЕН в выполнении задач, которые они должны выполнять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...