Отличный способ сделать код, который создается в команде более качественным – просмотр кода. Существует мнение, что код должен смотреть более старший по званию программер и давать свои советы и рекомендации по улучшению. Я где-то слышал, что программеры начинают комплексовать из-за боязни, что кто-то будет смотреть их код. Мне кажется, что комплексовать будут только батаны, которые пишут гениальный код и они никогда не ошибаются. Нормальному человеку нечего боятся. Есть просто еще стеснительные люди, которые не хотят, чтобы их обсуждали, но это просто нужно перебороть.
Смысл боятся, когда ваш код все равно сможет увидеть любой член команды, когда вы его запихнете в SVN. А так вам подскажут в чем может быть проблема и вы в будущем будете писать более качественный код. Поэтому не стоит стесняться, и без проблем показывайте свои работы другим.
Но я категорически против того, чтобы код смотрел только один программер, который старший по званию. Это очень серьезное заблуждение, которое делает код хуже, а командную разработку более конфликтной. Код должна рассматривать команда из 3-4 человек. Чаще всего программеры работают небольшими командами, и они должны обсуждать код, который будет написан до того, как кто-то приступает к кодированию. Они должны обсуждать архитектуру и решение до кодирования.
Обсуждать то, что получилось нужно и после завершения. Если результат устраивает всю команду, то решение можно принимать. Если есть замечания, то нужно исправлять, а не оставлять так, только потому, что кто-то стесняется. Если не исправлять таких ошибок, то проекты засоряются говнокодом. Полно модулей, которые написаны криво и используются, только потому кто-то ошибся или не знал о лучшем решении, а времени переписывать нет.
Времени переписывать никогда нет и говнокод будет только расти. Он не будет уменьшаться сам по себе, а проверка кода только одним программером старшим по званию не всегда дает результат. Не всегда этот программер реально умнее своих подчиненных. Да и когда код смотрит команда, то каждый ее член (ничего пошлого я тут не хотел сказать, ведь в команде могут быть не только члены (блин, теперь звучит еще пошлее, хотя я имел ввиду, что могут быть люди, которые не входят в команду)) может поделиться своим опытом. У каждого может быть свой опыт и свои знания, которыми нужно делиться на всех этапах разработки и тогда создаваемый вами код будет максимально приближен к идеалу.
Тут нужно понимать, что все программисты в команде работают над одной целью – они пишут один продукт, успех которого зависит от кода и от работы команды (и не только, но от кода очень зависит), а не над своей карьерой. Если в команде есть карьеристы, то это зло, которое нужно искоренять.
Менеджеры проектов должны помогать команде и координировать их работу. Старшие программеры должны проверять выбранное командой решение и могут повлиять на это решение, но если старший программер не умеет видеть более хорошие решение, чем он знает или если команда не умеет доказывать свою правоту и будет соглашаться на неверные наказы старшего программера, то успеха не будет.
Учитесь работать в команде и учитесь обсуждать свой код. Учитесь делиться знаниями для успеха команды, и не стоит жмотиться знаниями ради собственного успеха. Я вообще считаю, что в случае карьерного роста вверх должен идти не тот, кто больше знает, а тот, кто лучше работает в команде и лучше умеет общаться. А знания тут уходят на второй план. Руководителем может быть программер, знания которого намного ниже любого из членов команды, но он должен уметь организовать работу. А если он организует командную работу, то команда восполнит недостаток знаний руководителя. Если же вы завидуете, что ваш начальник более тупой чем вы в программировании, то вы карьерист и вам в команде делать нефиг.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
1. лучшая комманда 4-5 человек и если члены команды равнопривилегированны, то лучше что бы их было 4 - это с точки зрения психологии самый оптимальный коллектив.
2. Михаил, вы жуткий идеалист)) Ну какая команда без карьеристов? :) В команде, на мой взгляд, могут работать по трём чуть ли не взаимоисключающим причинам:
- для повышения квалификации;
- для карьеры;
- при разработке больших интересных проектов, типа всякого рода OpenSource проектов.
Мне так видится вы видите последнюю причину единственной которая имеет право на жизнь, забывая, что было время, когда и вы были не особенно нужны миру, когда у вас не было ни опыта, ни имени.
Нет ничего (!!!) плохого в том что люди хотят сделать карьеру! Я хочу! Нет ничего плохого в том что бы пытаться набраться опыта в команде, хоть это и раздражает других!
Всё проще - есть засранцы. Их надо избегать не только в командах по разработке. Но здоровая мотивация к успеху и некоторая конкуренция необходимы.
Для карьеры работать в команде не обязательно. Очень плохо, когда в команде человек думает только о повышении и о том, как стать начальником. Я с тамики не очень хочу работать, потому что они спасобны на самые ужасные подлости.
Соглашусь с Ekstrem, карьеристы бывают разные. Бывают действительно засранцы, те самые, что способны на любую подлость ради повышения должности, а есть те, кто работает наравне со всеми и даже больше, потому что хочет, чтобы его заметили. Только вот стремится такой карьерист к повышению не подлянками, а хорошей работой. И работать с таким человеком - одно удовольствие, доводилось однажды.
>>Очень плохо, когда в команде человек думает только о >>повышении и о том, как стать начальником.
Приходилось с такими работать, это сущий ад, такой человек ждет когда ты сделаешь какую нибудь оплошность, чтобы об этом рассказать начальству, постоянная нервная обстановка очень напрягает, и этого непонять пока не побывашь в такой ситуации. Правду сказать спасибо начальсву (хотя они не рубили в программировании), по его доносам они поняли, что человек гнилой и через месяц уволили.
--------
Михаил хотелось бы от Вас увидеть статью или набор советов, о том как работать в коллективе программистов, я имею ввиду и организацию дела, и то как надо себя вести
Соглашусь с Михаилом, и не соглашусь Ekstrem , ZeroXor.
Таких карьеристов я называю моральными уродами и быдлокодерами. Которые заинтересованы в своём деле по стольку поскольку.. Деньги ,власть,уважение от начальства вот что им надо от работы. Их не интересует собственный результат и процесс работы. Зато задницы лижут исправно. Помните карявые коды с множетсвами бездарных ошибок и глупостей? Это работа карьеристов.
За ранее прошу прощение за резкость. Но это так и есть своими словами.
Heshurg, у меня хорошо с рефакторингом - я работал над этим. Не могу сказать что я карьерист, но у меня было всегда бешенное желание делать мою работу лучше окружающих. Это вредная привычка, пристрастие, которое делает меня лучше, но оно же меня когда-нибудь меня убьёт. На своём примере могу сказать что ты не прав, и снова скажу что есть засранцы в принципе - бойтесь их всегда и повсюду :)
Из любого правила есть исключение. И среди карьеристов тоже бывают люди, которые карьеру делают честным путем, а не наступая на горло окружающим
Ну так и я о том же писал, что карьеристы бывают разные. Да, бывают и уроды, но бывают и те кто хочет делать карьеру, но делает ее тем, что хорошо и качественно работает.
Ну так это не карьеристы разные, это люди проффесионалы. И они не спецом себе карьеру делают, эта карьера сама к ним идёт. Чего и вам советую. Становитесь проффесионалами и карьера сама нагрянет)
Heshurg, прям рекламный слоган! Мне нравится)хорошо сказал!
Есть очень интересная книга - "Программирование: ступени успешной карьеры" Кузнецова и Симдянова. Всем советую, прочитал на одном дыхании. ИМХО, книга Джоэла намного менее интересна, чем эта, хоть так сравнивать очень не корректно, т.к. они слишком разные.
Михаил, настоятелно рекомендую ;)
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.