Вы всегда были в корне верны в проектах программного обеспечения, которые вы предложили? Когда вы даете какой-то дизайн, который был в корне неверным, вы теряете уважение коллег по команде. Независимо от того, что вы делаете после этого, вы в конечном итоге будете перепроверены за все, что вы предлагаете после этого инцидента. Это особенно плохо, когда вы новичок в команде, и они не знают вашего прошлого, где у вас были хорошие истории успеха.
Может быть, причина, по которой вы дали плохой дизайн, была из-за недостатка опыта или знаний или того и другого в этой области. Как вы столкнулись с такой ситуацией? Это что-то одноразовое в твоей карьере или это происходит время от времени? Остаётся ли это позади, или в такой ситуации нужно искать новую линию работы? Некоторые честные отзывы, пожалуйста ...
Спасибо.
Ответы:
Однажды, вице-президент Fortune 500 стоил компании 1 миллион долларов с плохим деловым решением. Когда он подал заявление об отставке генеральному директору, он получил ответ: «Я только что вложил один миллион долларов в ваше образование, а теперь вы пытаетесь уйти? Я не согласен».
Я устал от менеджеров и других работников, которые быстро обвиняют кого-то в том, что он новичок или полагает, что он некомпетентен. Есть только один способ стать хорошим дизайнером, это поднять на несколько процентов. Мне все равно, если мои сотрудники совершат ошибку, мне важно, если они сделают одно и то же несколько раз. Вопрос в том, насколько ты скромен и насколько обучаем? Когда кто-то представляет вам вашу ошибку, вы сначала защищаетесь или выслушиваете их? Если вы один из тех редких парней, которые могут проглотить свою гордость и извлечь из нее уроки, то вам стоит придерживаться. Тот, кого вы потеряли из-за того, что допустили ошибку один раз, не тот, кто заслуживает вашего уважения.
Мне лично пришлось переписать первые два проекта, которые я разработал, по крайней мере, дважды, но знаете что? Я многому научился, и хотя мои работодатели были обеспокоены в то время, это было быстро компенсировано эффективностью, которую я приобрел с течением времени, желая учиться на своих ошибках.
Что касается аспекта унижения и как выздороветь, у меня есть два совета. Во-первых, люди забывают со временем. Кроме того, когда кто-то еще находится в центре внимания, они тоже облажаются. Тогда все снова будет равным. Во-вторых, не будь мудаком для других, когда они делают честные, учатся, ошибки. На самом деле, вы должны поощрять их, если им просто не нужен сильный удар в задницу. Со временем вы можете помочь изменить культуру своей команды, вспомнив, что вы чувствовали, когда допустили честную ошибку. В конечном итоге вы вдохновите людей стать лучшими программистами, дизайнерами и людьми.
источник
Я делал это долгое время (15+ лет), и я все еще не понимаю это с первого раза. Лучшие проекты получаются из итеративного, совместного процесса. Когда вы некоторое время работали над дизайном, легко оказаться в ловушке, думая, что это единственный способ сделать это. Свежая перспектива полезна для наблюдения за вещами, которые вы упускаете.
Чтобы это работало, команде нужно доверять друг другу. Вы не можете бояться показывать людям дизайн, который может быть ошибочным и должен быть в состоянии принять критику дизайна. В свою очередь, остальная часть команды должна понимать, что недостатки в дизайне не являются отражением для дизайнера. Это ожидаемая часть дизайна. Это также, как члены команды учатся и становятся лучше: от своих собственных ошибок и ошибок других.
Если вы находитесь в неблагополучной команде, которая не работает подобным образом, у вас есть два варианта:
источник
Насколько я знаю, я всегда был принципиально защищен . Это не совсем то же самое, что быть принципиально правильным . Часто обстоятельства меняются между временем, когда вам нужно принять решение «х», и временем, когда становится ясно, что «х» было неправильным решением задним числом .
Это похоже на подготовку ваших подоходных налогов в США. Многие люди думают, что должен быть ответ. Нет У вас есть свое мнение; у вашего налогового бухгалтера есть свое мнение; IRS имеет свое мнение.
Когда я делаю ошибки, я не теряю никого уважения. (Насколько я знаю.) Я думаю, что это отчасти потому, что я всегда признаю свои ошибки. (На самом деле, я часто нахожу свои собственные ошибки.) Кроме того, почти во всех значимых дизайнерских решениях их подписывает более одного человека. Любые ошибки в этих решениях принадлежат группе, а не одному человеку.
Что касается признания ошибок, я думаю, что это становится легче, когда вы приобретаете компетенцию и опыт. По моему опыту, чем новее вы будете проектировать и разрабатывать, тем меньше вероятность допустить ошибку.
Это происходит время от времени, и это не должно сорвать вашу карьеру. Никто в положении значительной ответственности неизменно принимает правильные решения. На самом деле, никто из тех, кто несет значительную ответственность, неизменно принимает оправданные решения.
Но в большинстве случаев вы должны иметь возможность принимать обоснованные решения на основе неполной информации. Как сказала бы моя дочь: «Это просто быть людьми».
источник
Каждый иногда ошибается. Ошибки неизбежны. Признайтесь свободно, когда вы не правы, учитесь на своих ошибках и проявляйте смирение, особенно если вы изначально не были убеждены, что на самом деле ошибаетесь.
«Унижение» никогда не должно произойти. Это вряд ли улучшит производительность человека вообще.
Здесь, в моей компании, мы выработали культуру уважения к тем людям, которые все еще готовы высказать свое мнение о трудных решениях, но могут признать свою ошибку и скорректировать свое поведение в случае необходимости.
источник
Да, я сверхчеловек! Ну, конечно, нет.
Нет! Если это произойдет, значит, что-то не так с командным духом.
Все делают ошибки. Некоторые решения оказываются хорошими, некоторые - плохими, большинство между ними. И успехи, и неудачи должны восприниматься вами и остальной командой как урок.
Первые ошибки могут показаться плохими, но после того, как вы сделали сотни из них, это как часть работы.
источник
С кем не бывает. Главное - учиться на своих ошибках и стараться не допустить, чтобы это повторилось. Также обязательно признайте, что это была ошибка с вашей стороны. Например, я однажды допустил ошибку, используя нижний уровень доступа к данным (SubSonic3). В то время, когда я принимал решение, я просто хотел уйти от созданных вручную SQL-запросов. Поэтому я выбрал то, что в то время казалось одним из самых простых для начала. Я тоже не был слишком опытен с DAL. Что ж, после решения нескольких проблем мне стало интересно, почему некоторые запросы занимают слишком много времени, и обнаружил, что SubSonic рушит целые таблицы без веской причины.
Итак, я сказал своему боссу, объяснил, что допустил ошибку, и дал ему план по ее исправлению. Мой босс, конечно, не был в восторге от того, что я допустил довольно большую ошибку, требующую нескольких дней чистой миграции. Но он также позаботился о том, чтобы я больше не повторял ту же ошибку. Он заставил меня создать проект для проверки концепции для следующего уровня доступа к данным, на который я предложил перейти, и мы убедились, что он будет соответствовать нашим требованиям, и что он не разрушит целые таблицы. В целом, это был хороший опыт обучения для меня, и теперь я буду уверен, что ключевая часть проекта отвечает требованиям и не имеет огромных проблем.
Итак, в основном то, что вы делаете, это:
Если вы не уверены, как это исправить, не бойтесь втягивать в это других членов команды.
И последнее, расслабься! Все совершают ошибки. Очень немногие доводят это до совершенства с первого раза
источник
Это отвратительный конкурсный материал, а не хорошая ситуация. Никто не всегда прав, и нечего стыдиться, если кто-то придумает лучший способ сделать это, или если он обнаружит проблему с как ты это сделал.
Вам необходимо эмоционально отделить себя от своего решения и потратить время на поиски наилучшего решения, тогда вы будете довольны, когда проблема решена, даже если она решена кем-то другим.
источник
Есть много того, что вы не говорите в своем вопросе. Я не могу сказать, какие у вас настройки для «выдачи дизайна». Это начальная дискуссия с коллегой по вашему запланированному подходу или это то, что, как вы надеетесь, является окончательным кодом?
Если первое, то нет причин чувствовать себя плохо и нет причин для ваших сверстников подозревать вас в будущем.
Если вы ждете до окончательной доставки, чтобы обсудить ваш дизайн с кем-то еще, то я не виню их за то, что они с подозрением относятся к вашей другой работе.
Каждый должен обсудить свой дизайн с кем-то еще. В зависимости от сложности или критичности вам может понадобиться несколько раз обсудить это с несколькими людьми. Каждый может ошибиться, неправильно понять требование или пропустить особый случай.
Ошибки, выявленные на ранней стадии, легче и дешевле исправить. Они должны быть очень простительными, если вы не повторяете одни и те же ошибки снова и снова. Экспертные обзоры облегчают выявление ошибок на ранней стадии.
Если вы пытаетесь быть одиноким программистом в командной среде, вы совершаете (почти непростительный) грех, думая, что вы настолько совершенны, что вам не нужна чья-либо помощь. Тот факт, что это командная среда, доказывает, что проблема достаточно велика, и никто не поймет всего этого. Люди должны разговаривать друг с другом, иначе из-за ошибок их головы будут слишком близко к выпуску (или после выпуска).
источник
Я всегда проводил различие между, с одной стороны, хорошими или плохими решениями; а с другой правильные и неправильные решения. Хорошее решение - это то, что при одинаковых обстоятельствах, с одной и той же информацией, вы бы приняли таким же образом; плохое решение - это то, что вы бы приняли по-другому. Правильное решение - это то, которое, с учетом задним числом и дополнительной информации, оказывается правильным; и наоборот с неправильными решениями.
Часто говорят, что человек, который не принимает неправильных решений, никогда ничего не делает. Неправильные решения - это способ учиться. Плохие решения часто усугубляются, потому что лицо, принимающее решение, вкладывает себя в решение и пытается ретроспективно обосновать решение или доказать, что это было хорошее решение в конце концов (сокрытие всегда более разрушительно, чем первоначальное решение).
Большинство проектных решений, которые я принял, оказались верными, но я узнал больше всего и продвинулся с теми решениями, которые были неверными. Я надеюсь, что очень немногие из моих решений были плохими, но частью проблемы с плохими решениями является признание того, что решение было плохим, и принятие часто неприятных уроков, вытекающих из них.
источник
Пока они не являются " защитником в понедельник утром ". Я бесполезен для кого-то, кто сидит во всех обсуждениях дизайна, не говоря ничего, только утверждая, что они знали, что это не будет работать после факта. Вы должны уметь воспринимать критику, даже если она не находится в конструктивном контексте.
Вероятно, одна из лучших особенностей сайта SO - это возможность рисковать, предлагать и неуверенное решение. Вот как ты учишься. Идти по жизни с кучей дерьма в голове, что неправильно, но тебе никогда не говорили, что это обман, - настоящее невежество.
Они могут знать то, чего вы не знаете, но они не будут знать всего. Преодолеть это, приступить к работе и сделать что-то. Пусть они тратят время, думая, что они такие умные.
источник
Я всегда обеспечивал хороший дизайн? Нет! Я стремлюсь сделать это, я стремлюсь становиться лучше, но с каждым последующим проектом, что я, похоже, всегда могу сделать, это оглянуться назад на то, что я делал раньше, и съежиться от того, как я каким-то образом пропустил отметку.
Что касается кого-то, кто предложил менее звездный дизайн, я не стал бы возражать против этого человека, если бы этот человек продемонстрировал, что он или она хотел учиться на этой ошибке и был открыт для критики. Если я вижу доказательства того, что человек так же стремится стать лучше и у него есть способность сделать это, то плохое проектное предложение - это просто возможность обучения.
источник
Время от времени это случается со всеми, поэтому лучше всего выяснить, почему дизайн был неправильным, и извлечь из этого уроки. Если это недостаток знаний, то, надеюсь, неудача проекта даст вам новые знания, которые вы сможете использовать в следующий раз. Не позволяйте этому обескураживать вас, каждый проходит через это в какой-то момент. Это лучший способ получить опыт и пообщаться с новой командой / средой.
источник
Это случается часто. Наша индустрия меняется так быстро, что шансы никогда не ошибаться практически равны нулю.
Тем не менее, вы толкнули плохой дизайн вниз их горло из-за их возражений? Возможно, поэтому они слишком остро реагируют.
Если ошибка была огромной, конечно, потребуется время, чтобы восстановить уважение. Если один из ваших коллег взял вас в плохом направлении и создал проблемы для всей команды, разве вам не нужно, чтобы он проявил себя в ближайшем будущем?
Все, что вы можете сделать, это признать, что вы ошиблись, отдать должное тому, кто был прав, и стремиться лучше слушать и лучше исследовать варианты в будущем.
Что вы не считаете, что сделало дизайн ошибкой? (Не случайный пример - спроектируйте процесс импорта, чтобы использовать существующий веб-сервис, работающий построчно (повторное использование кода и требующий только изменения бизнес-правил в одном месте), не понимая, что для некоторых импортов будут иметься миллионы записей, и на это уйдут дни закончите.) Учитесь на этом и обдумайте эти вещи в будущем.
источник
Там будет всегда быть ошибки. Ошибаться - значит быть программистом. Продолжайте учиться у других в Интернете и особенно у своих коллег. Единственный позор здесь будет в том, чтобы сдаться или спрятать голову в песке, когда дело доходит до подобных вопросов.
Оставь это позади себя, опусти голову и сделай все возможное. Если вы хороший программист, вы будете просвечивать свои ошибки.
источник
Если вы не уверены, что ваша идея лежит в основе, вам следует обсудить ее с несколькими доверенными коллегами, прежде чем предлагать ее всей компании или отделу. На самом деле, даже если вы уверены, вам все равно следует обсудить это с людьми, с которыми вы работаете, и которые, скорее всего, знают вас лучше всех. Они помогут вам определить проблемы на ранней стадии.
источник
Это случается с нами все время от времени. Используйте первый дизайн в качестве прототипа. Узнайте, что именно сработало, а что нет и почему. Тогда вы можете написать гораздо лучший конечный продукт.
Не пытайтесь оправдываться или защищаться. Признайте ошибку и двигайтесь дальше.
источник
Кажется, фундаментальная проблема не объясняется: это социальная проблема. Такое поведение можно увидеть почти в каждой профессии: если вы совершаете ошибку и им нравится «категоризировать» вас в определенных вещах, это навсегда. Это социальное поведение. Даже умные и умные люди будут стремиться следовать за всеми.
Позвольте мне привести вам пример, который не имеет ничего общего с программированием: на моей предыдущей работе я забыл помыть посуду один или два раза. С тех пор все рабочие думали, что я такой человек, который никогда не моет мою посуду. И теперь, как только в раковине есть грязная вещь, это я (кто еще это мог быть).
Это везде одинаково: это социальное поведение, независимо от того, какая это проблема.
Вы говорите мне, что хотите честный отзыв? Единственное решение - уйти на другую работу. Если все люди команды считают, что вы не очень хороши в своей работе, это не изменится в ближайшее время, извините, если скажу об этом. Так что ищите другую работу, потому что вы никогда не измените этот тип (глупый, я должен признаться) социального поведения.
источник
Ключ в том, как вы изложите свое дело и какие изменения вы внесете. Если вы утверждаете, что вы гуру программирования, который не делает ничего плохого и более удивительный, чем Джон Скит, то вполне вероятно, что в какой-то момент вас за это убьют. Ключ заключается в том, как вы представляете свои решения, чтобы вы могли показать, что это разумное решение проблемы, а не идеальное решение, которое не следует даже проверять.
Моим лучшим примером было бы обнаружение побочных эффектов от присутствия класса
static
в веб-приложении, где я когда-то работал. Я не знал, насколько ужасно было бы, чтобы этот экземпляр сохранялся и был доступен всем пользователям приложения, но я извлек из этого урок и вовремя восстановился. Иногда может случиться так, что что-то будет найдено, и основные исправления должны быть сделаны. Я тоже был в этом лагере, где мне пришлось просеять кучу VBScript, чтобы уменьшить конкатенации строк, которые вызывали проблемы с памятью, когда я работал один раз. Я даже помню, как писал код, уязвимый для SQL-инъекций, еще в 1998 году, когда я писал фрагмент кода для поиска клиента, который должен был динамически генерировать SQL, поскольку у меня было ~ 20 необязательных полей в этой части приложения.Перфекционизм может быть чем-то вроде обоюдоострого меча, вот как я вижу этот 3-й комментарий, так же как и время от времени я тоже. Плохо видеть, что есть все эти ошибки, и ничто не всегда правильно. Преимущество состоит в том, что, получая лучшее, что вы можете, вы вполне можете встретиться, если не превзойти ожидания других. Непрерывное совершенствование вполне может быть способом ПК видеть в себе перфекционизм, и если его сдерживать, я считаю это хорошей вещью. После всех сделанных ошибок ваш код попадает в производство? Это выполнит работу? Это пункты для размышления, а также, если кто-то всегда что-то исправляет, или это хорошо, что ты хочешь быть великим настолько плохо, что ты предпочел бы не делать ничего другого, пока это не станет совершенным? Практика может быть полезной, чтобы помочь найти шаблоны, чтобы сделать работу лучше. Тем не мение,
источник