• Переговоры о повышении зарплаты

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

    к сожалению, это точка зрения 99% руководителей

  • Платить или не платить зп программисту

    если все именно так, как описано — нет
    если есть четкое ТЗ, четко оговорены сроки и требования к коду, разговор простой — «Задача не выполнена, сроки провалены — какие деньги? » от незаконченной программы толку ровно столько же, сколько и от отсутствующей...

    другой вопрос — иногда бывает так, что «а давайте тут вот это добавим...» со стороны заказчика через полгода от прежнего ТЗ не оставляет камня на камне.

  • Переговоры о повышении зарплаты


    А на счёт смены работы для повышения зарплаты, рано или позно упрёшься в потолок (2−3 косаря), а учитывая, что птичка ты залётная, действительно вырости, до начальника, к примеру, тебе уже не дадут, так как лояльностью ты не отличаешься. И что тогда?
    Не показатель. Я работал как в конторах, в которых топ — “отцы-основатели”, так и в фирмах, где начальство — сплошь наемники. ИМХО, это больше зависит от политики владельца, а не от каких-то объективных критериев. А не пробившись в топ-менеджмент, трудно рассчитывать на з/п выше “потолка” — все равно, работаешь ты на одном месте 5 лет или пришел год-два назад со стороны.
    Опять-таки (тут уже звучало о “лояльности” ). Что под этим понимать? Аккуратно следовать контракту, принося конторе пользу за ее деньги, или же “лояльность” — это работать несколько лет на одном месте за половину рыночной стоимости?

    Если мои способности, которые контора А оценивает в 2К, например, подходят конторе Б за 3К — что такого нелояльного в том, что я могу туда перейти? Это рынок. Сливать инсайд конкурентам — это да, нелояльно. Проваливать проекты — нелояльно. А сменить работу, если кто-то оценивает тебя выше — абсолютно нормально.

    це джуніорів також стосується? тобто було в тебе для прикладу 300$, то за рік на 600 не варто надіятися?

    Я бы особо не рассчитывал. Опять же — это исключительно личное впечатление. 400−450; больше — уже сказал бы “везет”.

  • Переговоры о повышении зарплаты

    Из своего опыта могу заметить лишь, что радикально поднять планку, не меняя работу, практически невозможно. Повышение на 20−30% — да, может быть, а раза в 1.5−2 — увы. Парадокс, но факт; вдвойне парадоксально, когда тебе отказывают в 1.5К, а потом на твое место берут нового человека за 2К:)

  • Во сколько вы приходите на работу?

    позиция?
    если саппот должен быть в онлайне с 9−00 до 21−00 — это одно дело,
    а если с 9 до 18 ставят рамки разработчикам... я лично тут же стал бы искать другую работу

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

  • Стоит-ли писать в резюме опыт работы не в IT?

    не факт: -)
    если отправлять резюме на вакансию «Разработка системы автоматизации ресторана» с КПК у официанток и централизованной обработкой заказов — опыт работы барменом может оказаться достаточно весомым плюсом

    в общем, стоит смотреть по каждому конкретному случаю

  • Где найти работу хорошему программисту?


    borlase

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

    для этого и нужны архитекторы

    иначе любая многовекторная система превратится в клубок спагетти

  • Где найти работу хорошему программисту?

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

    В том то и дело, что это не два проекта — это один проект с двумя специфичными модулями.
    Позволю прибегнуть себе к аналогии (сказывается преподавательское прошлое: -))
    Вот делается проект для заказчика А. Он один — как ствол у пальмы. Весь код в одном репозитории. Радуемся.
    И тут приходит заказчик Б и говорит — ой, почти все ОК, вот только тут вот так бы и вот так бы. Варианты решения? Вариант 1: посадить рядом еще одну пальму, специально для него — плохой вариант. Вариант 2: разветвить верхушку пальмы, и поворачивать ее к каждому заказчику своей стороной — плохой вариант. Вариант 3: оставить ствол, и сделать свинчивающуюся макушку, а обе макушки выращивать рядом — каждому свою. Вот это гуд.
    Почему последний вариант хорош. Я как-то прочитал замечательную фразу «Природа не знает числа 2». Т.е. чего-то может либо не быть, либо быть в единственном экземпляре, либо это что-то — бесконечно. Применимо к данной ситуации — проекта либо нет, либо он исключительно для одного, либо... либо для любого числа заказчиков. Иного не дано — где два, там может быть и три, и пять, и триста.
    Как это конкретно должно выглядеть? Пишется проект для А. Пишется, как для одного — без всякой оглядки на расширяемость (и это правильно). Как только появляется Б, в смету для него включается не только разработка персонального кода, но и стоимость рефакторинга по тем пунктам, куда его требования нужно «подключить» — т.е. мы берем изначальную пальму и выносим клиент-зависимые блоки в отдельные модули. Таким образом, мы разделили ОБЩИЙ код и КЛИЕНТСКИЙ, связав все это через ЕДИНЫЙ интерфей подключения.
    Как быть, если появится клиент В? А точно так же — если его требования укладываются в ту же модель и в те же интерфейсы — ему повезло. Если нет — он дополнительно оплачивает рефакторинг с тем, чтобы уже три клиента «заточить под нужную резьбу»; или же, как вариант, не три, а 2+1 (т.е. есть интерфейс СТВОЛ-А, и есть еще промежуточный СТВОЛ-ПЕРЕХОДНИК-Б + СТВОЛ-ПЕРЕХОДНИК-В.
    Идея, думаю, понятна. Кажущиеся потери времени на рефакторинг все равно потом возмещаются — главное, регулярно следить за ветвящимся деревом проекта (именно проекта, а не проектов!) и не допускать дублирования кода. Есть дубль для троих — в ствол его. Для двоих — в переходник. И т.д.

    Примерно так.

  • Где найти работу хорошему программисту?


    borlase
    Много мелких изменений в разных местах, так что не прокатит.

    Вопрос меня всерьёз интересует — в чём кайф для хорошего профессионального программиста плодить код, а потом вручную его поддерживать?

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

    хотя, по уму, стоит подумать о пучке световодов и ОДНОЙ лампочке нужного цвета.

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

    и напоследок -, а если понадобится поддержка еще парочки платформ? опять макросами?; -)

  • Где найти работу хорошему программисту?

    2KD
    как по мне, макросы — тоже не комильфо

    я лично в этом случае вынес бы платформо-зависимый функционал в отдельные проекты, а потом подключал бы модули к основному (общему) проекту

  • Откуда берутся программисты (или сферический софт в вакууме)

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

    Ну да: -), а пока наблюдаем антиутопию — приходит джуниор, сразу после института, прочитал пару книг, написал в общей сложности 5 программ по 100 строк — и претендует на Senior с з/п не меньше 3х килобаксов...

  • Стоит-ли писать в резюме опыт работы не в IT?

    ИМХО, это стоит писать только при отправке резюме на конкретную вакансию.
    Т.е. указать год работы бухгалтером, претендуя на место разработчика бух-программы можно и нужно.
    А вот в остальных случая — в лучшем случае, пройдет нейтрально. В худшем — читающий с раздражением подумает «какое отношение имеет двухлетняя работа таксистом, если мне нужен PHP-программист? »

    А резюме раздражать не должно; -)

  • Где найти работу хорошему программисту?

    Феерический топик:)

    Уже само начало

    Мой близкий друг — хороший программист
    настроило на позитив, напомнив старый анекдот:
    — Доктор, посоветуйте... Мой друг переспал с девушкой, и теперь у него... — Ну, доставайте своего друга, показывайте...

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

    Работал с ASP, Perl, ASP.NET, PHP, Python, MS/Postgre/My SQL, (X) HTML/XML/CSS, а также VB, VBA, Win32, COM, ActiveX (VB, C++/ATL), MS Access, а также немного с Borland C++, Assembler, Java, Flash. Использовал OS Windows, FreeBSD, Mac OS, Linux
    У меня лично (и, я так подозреваю, у 99% нанимателей) столь длинный и разношерстный список вызывает одну и ту же реакцию: «работал» = «написал Hello, world! » Да, безусловно, 10 лет — большой срок, и я сам за 15 лет работы сталкивался так или иначе почти со всеми вещами, тут перечисленными -, но я лично никогда не напишу в резюме MS Access, хотя и делал когда-то на нем платежки для бухгалтерии, АСМ (20 строк для особо тонкого места в программе на С++), да и тот же С++, по большому счету — хотя первые 5 лет работал именно как сишник. Хотя бы потому, что за последние 10 лет Java плюсы задвинула на такие задворки памяти, что с лету, наверно, уже и Hello, world не напишу.
    Но нет. Пишут, пишут, пишут простыни из баз данных, языков, технологий -, а потом удивляются, почему никто не ценит?
    Случай из жизни: нужен бы человек на проект. В требованиях — Java, SQL, Linux. Пришел один... в резюме были перечислены базы от MySQL до DB2 (штук 7, не меньше). На собеседовании предложили ему составить простенький запрос с JOIN из двух таблиц. Парниша с минуту смотрел на листик, потом недоуменно поднял глаза: «А я это не делал никогда...» Тут уже удивились мы — как же так, а что ж это тогда за список??? «Ну, я JBuilder создавал EJB, оно само потом с базой работало! »
    Логично, ничего не скажешь.

    Второй веселый момент:

    Потому что он не может работать бездумно, и пишет код медленнее. К тому же поджимающие сроки не оставляют ему места для творчества, что приводит к быстрой моральной и физической усталости.
    Опять-таки, ТС демонстрирует полнейшее непонимание основы основ — программы пишутся не для того, быть идеальными, а для того, чтобы удовлетворить техзадание. Никому не нужен программист, который за год напишет идеальный код функции, когда этот код можно написать за час.
    Опять же, случай из прошлого. Делали мы как-то прототип системы для одного заказчика. Сроки поджимали, и одну подзадачу (раз в час проверять БД на предмет наличия новых ордеров, и если они появились — выдернуть эти ордера из БД и разослать по мылу) отдали локальному гуру. Спустя несколько дней гуру выдал на-гора 2.5 МБ jar, который... не работал. Вот на его машине работает, а когда деплоим на тестовый сервер — нет. Еще пару дней у него уходит на ловлю бага... Итог: пятница, 6 часов вечера, в 10 (заказчик из Штатов) демонстрация — гуру печально смотрит в код, остальная команда молча смотрит на него. Садимся с коллегой за комп, в четыре глаза за полчаса набиваем код в 20−30 строчек, деплоим — PROFIT!
    А гуру тоже был сторонником вдумчивого программирования — его код в UML — это была просто сказка! Куча классов, интерфейсов, взаимосвязей — заглядение! Достаточно сказать только, что гуру для чтения INI файла испольльзовал собственный парсер, в котором было наследование то ли 3х, то ли 4х уровней...

    Ну, и напоследок хотелось бы откомментировать

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

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