Подтвердить что ты не робот

Этика использования "бахромой" для вашей работы?

Просто хочу попросить здесь несколько мнений. Как вы относитесь к использованию языка (и/или фреймворка), который не широко используется в вашем местоположении для написания программного обеспечения для компании? Например, я живу в области, где доминирует .NET, со случайной работой PHP. Скажем, что я изучаю Python и решаю использовать его для написания программного обеспечения для моей работы (я - "Команда одного", поэтому я могу использовать все, что захочу).

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

Каковы ваши мысли?

Я должен упомянуть, что это очень маленькая компания, и я единственный ИТ-специалист, поэтому у меня есть полное правление, чтобы выбрать нашу платформу разработки. Я не специально использую Python, но выбрал его как пример, так как моя область почти полностью основана на .NET; Я больше не забочусь о .NET, поэтому я не хочу его использовать. Кроме того, компания... как мы будем говорить... чрезвычайно экономный и не будет покупать необходимые ресурсы для .NET(например, серверные лицензии, лицензии SQL, компоненты Visual Studio, компоненты). У меня лично есть подписка на MSDN, но я не могу использовать ее для них.

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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

Ответ 4

Для вашего личного развития, если в вашей области доминирует .net, почему бы вам не поспешить за этим быстрее, чем вместо Python?

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

Ответ 5

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

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

Ответ 6

Это действительно немного криво, если вы используете его только для этой цели.

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

Кроме того, они могут просто нанять кого-то другого, кто знает python.

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

Ответ 7

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

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

Целенаправленно оставляя приложение, которое никто другой не может поддерживать, очень плохое профессиональное поведение, ИМО.

Ответ 8

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

Ответ 9

Множество ответов коснулось этого, но здесь мой подход основан на поддержке производственных приложений.

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

Внесение изменений в норму, хотя, если это согласовано. Если Python собирается проложить путь к будущему, то идите на это. Не забывайте, что устаревший код .NET и PHP по-прежнему необходимо поддерживать до конца жизни. Построение самого мешанины платформ и фреймворков просто создаст больше трудностей для вас на работе и в компании, когда вас больше нет.

Ответ 10

Если вы чувствуете в своем сердце, вы действуете нечестно, тогда вы, вероятно, находитесь.

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

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

Ответ 11

Я сделал это, это был Delphi в моем случае. Я думаю, что Delphi часто использовался, когда я искал работу... Я видел 3 предложения о работе delphi за всю мою жизнь. Я также видел больше предложений java/j2ee/php, которые я могу запомнить. я думаю, что это плохая идея, с течением времени, когда я потратил время на обучение продвижению delphi-программирования, я мог бы стать лучше с j2ee и начать работу в лучшей компании и, возможно, теперь сделать больше денег.

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

Ответ 12

Это зависит. Я сделал то, что обычно было бы просто bash script, в Java вместо этого в одном месте. Зачем? Поскольку они все программисты на Java и часто проходят стажировки/кооперативы, которые могут или не могут знать ничего другого (и могут или не могут быть даже такими хорошими с Java).

Другие места, хотя, как правило, имеют более опытных программистов, и я ожидаю, что они смогут найти другой язык без особых усилий. Итак, я бы пошел с тем, что "лучше" для проекта.

Ответ 13

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

Ответ 14

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

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

Ответ 15

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

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

Ответ 16

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

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

Ответ 17

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

Вы говорите, что никто не может изучать Python? Мне трудно поверить.

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

Использовать Python. Быть успешным. Сделайте свое дело на основе ваших успехов.

Ответ 18

У меня была такая же проблема очень часто. Кстати, именно с этими двумя языками вы упоминаете:.NET навязывал мне, когда я предпочитал использовать Python (среди прочих). Может быть, наоборот, я не сужу.

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

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

Приветствия.

Ответ 19

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

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

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

Ответ 20

Другие плакаты сделали несколько хороших моментов, но здесь я не видел: обмениваюсь ситуацией с менеджментом и позволяю им решать. Другими словами, поговорите со своим боссом и скажите ему, что в настоящее время в вашей области больше разработчиков .NET, поэтому, если завтра вы попадете на автобус, легче найти кого-то другого для поддержания вашего кода; однако есть инструменты, необходимые для эффективной работы, и они стоят денег (и рассказывают им, сколько). В качестве альтернативы вы можете сделать это в Python или RoR (или что-то еще) и использовать бесплатные инструменты, но из того, что вы знаете, в настоящее время не так много людей в области, которые знают эти языки. Я использовал "в настоящее время" пару раз здесь, потому что это может меняться со временем.

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

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

Ответ 21

В отношении заданного вопроса я не вижу ничего неэтичного в этом вопросе, если:

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

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

Ответ 22

Когда в Риме... делай как римляне.

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

Я перенес некоторые материалы VBA на Perl для обработки на предыдущей работе и увеличил эффективность на несколько порядков, но в конечном счете никто не хотел изучать Perl, поэтому я застрял с этой задачей дольше, чем я хотел он.

Ответ 23

Раньше я занимался "использованием лучшего инструмента для работы", но я передумал. Этого недостаточно, чтобы просто спросить: "Как я могу сделать эту работу быстрее всех". Если вы думаете, что вы единственный, кому когда-либо понадобится посмотреть какой-нибудь код, есть хороший шанс, что вы ошибаетесь. Общая стоимость внедрения нового языка в среду выше, чем вы могли себе представить вначале.

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

Ответ 24

С выпуском MVC Framework я тоже был в аналогичной этической делеме. Используйте WebForms или переключайтесь на MVC Framework для всего. Ответ на самом деле заключается в том, что вы должны поступать правильно и использовать любой стандарт компании. Если вы отклоняетесь от стандарта, это создает много проблем для людей.

Подумайте, как бы вы себя чувствовали, если бы вы сбросили проект на VB6, когда все, что вы делали годами, это .Net. Итак, это два решения, которые я придумал.

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

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

Ответ 25

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

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

В вашем случае поговорите с вашими боссами. Если они действительно не хотят тратить необходимые деньги на .NET framework tools/libs, то переключение на что-то еще может быть правильным, что нужно делать для них в долгосрочной перспективе.

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

Ответ 26

Ruby on Rails, конечно, не является языком. Если компания слишком дешева для понижения для соответствующего лицензирования для инструментов Microsoft, тогда у вас не останется другого выбора, кроме как найти альтернативу. RoR, безусловно, был бы разумным выбором, и если вы также поможете продвинуть свою карьеру, то это будет беспроигрышным для вас обоих!

Ответ 27

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

Ответ 28

Вы можете хорошо разработать .NET с помощью бесплатных инструментов; стоимость не является хорошей причиной, чтобы избежать этой платформы. Ruby on Rails становится достаточно популярной для создания интернет-сайтов, управляемых данными. Вы даже не сказали нам, если это то программное обеспечение, которое вы строите, хотя.

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

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

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

Ответ 29

Так много обсуждений для такой четкой ситуации...

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

Ответ 30

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

Что касается актуального вопроса, на мой взгляд, если наиболее технически приемлемый выбор - это тот, с которым очень немногие работают, происходит одна из двух вещей: a) Это хороший выбор, и число людей, работающих с тем, что он будет взрываться в течение следующих 18-24 месяцев (например, Django), или b) Что-то не так с моим анализом. Технологии могут быть на периферии, потому что люди не спешат их принимать, но обычно это не то, почему они остаются на краю.

Если вы думаете, что "я не могу выбрать технологию X, это облегчит им замену меня!" у вас неправильная работа. Практически на любом предприятии, которое на самом деле не сработало, ИТ-парень, который легко поддается замене, стремится продвигаться к более сложной и интересной и прибыльной работе.