Как стать автором
Обновить

Комментарии 104

Что с таким подходом мешает программистам специально наделать багов в программе, чтобы им заплатили ещё раз за их «исправление»? Лучше уж поднять цену часа и гарантировать качество продукта, так заказчику будет понятнее за что он платит
Если код будет регулярно работать плохо, то с таким программистом расстанутся очень быстро.
Репутация.
Но вообще есть смысл смотреть, что именно просят чинить. Одно дело — допущенные программистом ошибки. Совсем другое — неоговоренные функции дописать, или учесть условия работы, о которых не договаривались.
Иначе будет — «нагрузка 10 RPS в ТЗ»… прошло 3 года… «парни, у нас 20k RPS, сервер не справляется, чините, это ваша ошибка».
Бывает и еще проще. За две недели до внедрения: «Ой, а мы вам забыли сказать, у нас тут будет не одна база данных и три схемы в ней, а кластер из трех экземпляров Oracle». И тот факт, что в проект заложены были JOIN между таблицами, рассматривается как ошибка программистов. В то время как на самом деле налажал тот, кто ставил задачу, а именно РП скорее всего.
Да, такой пример намного лучше подходит =)
И тот факт, что в проект заложены были JOIN между таблицами

Я давно не серверщик. Можете дать авторитетную ссылку, пожалуйста, которая говорит, что джоины и кластеризация — несовместимы и приводятся альтернативные рекомендации?

Тут, скорее всего, вольно употребление слова кластер. Читать следует "три отдельных базы данных"

Так я еще и пояснил, что это «три отдельных экземпляра». Вот казалось бы, что тут непонятного? Нельзя выполнить JOIN между тремя отдельными базами.
а кластер из трех экземпляров Oracle

Под кластером серверов/БД/… в ИТ обычно имеют введу несколько экземпляров, объединённых так, что для клиентов они выступают как один сервер. Не знаю как в Oracle, но в PostgreSQL нельзя выполнить джойн между разными базами данных, независимо от того на одном экземпляре СУБД они крутятся или нет (вернее можно подключить внешний источник данных, прежде всего другую базу, но не тот кейс, кажется). С другой стороны, если несколько экземпляров СУБД объединены в кластер, то запросы в пределах одной базы данных можно выполнить на любом из экземпляров.


Судя по тому, что вы описываете, у вас не кластер, а просто три разных базы данных, а вы рассчитывали на три схемы в пределе одной базы данных. И практически не важно, один это экземпляр СУБД, на котором эти три базы крутится, три независимых экземпляра каждый со своей базой или кластер из трёх экземпляров, по которому "размазаны" эти три базы.

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

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

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

Ну то есть — это не техническая проблема. Если бы всего один болван заранее спросил бы, куда мы будем развертывать все добро, и попросил бы схему, где нарисовано, что и куда — там бы уже было бы видно все. И вопросы были бы заданы.
Отличный пример! В нашем случае ответственность ляжет именно на эту птицу, так как программист делает и получает за часы. Не устраивает программист? — Бери другого! — Опять такая же ситуация? — Бери третьего. — Все 10 программистов плохие, хотя других заказчиков они полностью устраивают? — Сам всё понимаешь.

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

Если это реально независимые экземпляры — то один из них вообще ничего не знает про другие. Кто с чем будет делать JOIN?

Можно установить связь foreign table :)

Гы. Ну вот мы это в конечном счете и сделали. И при чем тут это?

P.S. Заметьте, что дело происходит у заказчика. Вы приходите к DBA заказчика (это другая компания, и вы ему никто), и говорите ему — чувак, нам нужно сделать вот тут link на вон ту базу (потому что это — функция админа). Зачастую он вас посылает достаточно далеко — потому что об этом нужно было думать чуть раньше, чем за неделю до прома. И думать должен не разработчик, и к DBA ходить тоже не разработчик. Вот об этом и была история.

Что можно сделать джойн :)

А теперь представьте, что нельзя сделать линк. DBA отказал, потому что безопасность. И все.

РП ставил задачу и налажал с запретом JOIN? — Так РП в отличии от программиста систему заказчика видит опосредованно, через призму документации, которая всегда отстает от реальности. Документацию готовят аналитики. Решение строят архитекторы. Но у разработчика есть прямой доступ к системе и среда тестирования. Сколько копий было сломано, что кластеризация и отказоустойчивость в тестах должны быть аналогичны продуктиву, иначе вот такие сюрпризы с JOIN. И что тогда мешало программисту или тестировщику заблаговременно заметить предстоящую сложность? Ах тестов производительности нет? Вообще не тестировали? На архитектора денег не хватило? Тесты на простой БД, а в проде кластер 3node active? Документация не просто отстает, а отсутствует? Аналитиком назначили штатного помощника менеджера? Вчера на проект наняли? И техническое задание и требования делали без консультантов? Так РП вот каждый этот вопрос записывает в журнал рисков. По каждому риску уже команда оценивает варианты реализации, вероятность и влияние каждого. А заказчик принимает. И вариантов не так много, ибо в большинстве случаев, минимизация рисков ведет к увеличению бюджета, а привлечение дополнительных спецов в проект вовсе нелинейно влияет на его качество и сроки. Так что чаще рискуем. Хочется верить осознано. А стоимость риска либо изначально в стоимости часа заложена и сроки жестко ограничены, что стимулирует бизнес консалтера/интегратора к найму лучших и предоставлению качества. Либо стоимость часа по-меньше выбираем и сроки плавающие, тогда консалтеру/интегратору выгоднее прислать к вам джунов по цене сеньеров. Да, этотне исключает, чтоту джуна все получится или сеньер накосячит. И истина где то посередине. А управляющий комитет проекта и РП следят за балансом и расставляют приоритеты.

>РП ставил задачу и налажал с запретом JOIN?
На самом деле — все еще хуже. РП вообще не ставил задачу. Он не привлек для этого аналитиков. Он не обеспечил сред тестирования (тем более — идентичных планируемому прому). Он вообще не сделал ничего. А факап пытался списать на программистов.

>На архитектора денег не хватило?
Это тоже должны были сделать программисты? Да неужели?
должны быть аналогичны продуктиву, иначе вот такие сюрпризы с JOIN. И что тогда мешало программисту или тестировщику заблаговременно заметить предстоящую сложность

Он когда заметил и говорил, и писал об этом. Только кто его будет слушать?

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

Все проще.
Тот, кто ставит какие-то дополнительные вопросы в начале проекта, просто не доживет до его конца.
Да и до середины не доживет… За забором множество послушных молчаливых джунов.

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

В обязанности программиста не входит — продвижение риска. Есть обязанность — участвовать в правильной формулировке и оценке. Но владелец риска — это другое лицо — главный инженер, архитектор, тимлид, руководитель программиста, РП, спонсор проекта и т.п. Попытка сделать владельцем риска исполнителя работ приведет лишь молчанию. Реестр рисков решает эту проблему. Риск без владельца или где владелец = исполнителю (инициатору) без его прямого согласия — косяк РП. И на то есть руководитель проектного офиса, аудитор, спонсор проекта и управляющий комитет в целом. Они могут плохо реагировать на сложные вопросы, но такие простые вещи как: «Я сформулировал риск, а РП не занес его в реестр» — решают легко и быстро.

Вы вот сейчас перечислили людей больше, чем у нас в компании всего, если не считать операционистов. :)

Одна из обязанностей РП — занести в реестр рисков любое сформулированное в виде риска замечание любого участника проекта. Даже если в замечании бред сивой кобылы — запись остается в реестре, ей присваивается вероятность, влияние и выбирается стратегия — принять риск, смягчить, исключить или передать. Под риском в реестре так или иначе подпишется заказчик. И если он реализуется, претензии могут быть только к формулировке. А кто формулировкой занимался? — И тот кто говорил, и тот кто оценивал, и РП. Но у каждого риска свой владелец. И задача РП вовсе не столько в том, чтобы устранить все риски или абсолютно правильно их сформулировать, а прежде всего в том, чтобы риски были учтены, обсуждены, оценены и не остались без внимания заинтересованных сторон.

Это наверное в гугле так работают...


У меня на одной работе у РП было три аргумента, перекрывающие все другие аргументы ото всех других членов команды:


  1. ну и что
  2. все равно
  3. я же сказала

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


На нынешней работе РП — сам генеральный. На компьютере он конечно как-то работает, но например про Ctrl+F в браузере впервые в жизни услышал в прошлом году...


Таковы сегодняшние реалии.

Можно я уточню, баги в коде влияют на репутацию?


Упс… У кого код без багов, поднимите руку.

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

Поскольку баги у всех и у всех от этого меняется репутация, то относительная репутация не меняется.


Либо кто-то пишет код без багов.

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

Я первый раз в жизни слышу, чтобы частота багов была фактором оценки качества работы программиста. Архитектура — да. Кривизна в коде (когда никто не может разобрать что написано) — да. Срезание углов и халтура — да.


Про баги первый раз слышу.

Есть такие KPI типа сколько раз разработчику задачу тестировщики возвращают на доработку. Конечно с привязкой к сложности и объёму задачи, но тем не менее встречается.

Я знаю, некоторые таким страдают. Ещё веселее, когда у QA обратная метрика — чем больше задач вернул назад, тем лучше.

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

А ещё есть аналогичный параметр репутации у компании в целом. Какую-то аутсорс контору будут считать багописателями (а оно по сарафанному радио быстро разлетается между потенциальными заказчиками) и ничего важного им никогда не доверят. Или вот игры от blizzard покупать теперь будут только после того, как поиграют в спираченные.

Вот, смотрите, у нас есть четыре софтописательные конторы:


  • Майкрософт
  • Гугль
  • Эппл
  • Амазон

У кого какая репутация? Какое ожидаемое число багов от этих компаний? Почему оно одинаковое/разное?

Про МС ничего не скажу — 10 лет не слежу. У гугла репутация понятная — переделывают все свои сервисы и получается тормозное гомно (но багов ждёшь немного и чуть ли не каждую пятисотку на ютубчике скриншотишь, так уж они редки). От эппла ждёшь малое количество ошибок и проблем. А амазону нужно нанять специалистов по UX (впрочем, я и не помню, что они делают, кроме инопланетного AWS и самого магазина).

Есть репутация, есть. Просто она уже воспринимается как «это моё мнение, я так 5 лет считаю». Наверняка же вот считаете, что sennheiser делают хорошие наушники =) Или что blackberry — это какие-то инопланетные телефоны из прошлого века.
Вот sennheiser — выезжает на своей репутации. А blackberry из-за этой самой репутации лапки откинул. При том что sennheiser после ~2012 ничем не выделяется (у beyerdynamic всегда есть ответ получше), а blackberry на закате пилил телефоны на обычном андроиде, которыми никто не интересовался, потому что «ой, это blackberry? как ты с ним живёшь-то без приложений!».
Чем ещё хороша система независимых заказчиков и исполнителей, каждому исполнителю не обязательно обладать самой лучшей репутацией у всех заказчиков, а можно иметь достаточное количество заказчиков, которые удовлетворены твоей работой, чтобы они загружали тебя новой по полной.
У нас было наоборот, один заказчик платил абонентку, но работы было мало, поэтому он перешёл на почасовую оплату. А вот программист от почасовой оплаты не факт, что будет радоваться, потому что, чтобы при почасовой оплате получать столько же, сколько на окладе, стоимость часа нужно поднимать раза в два, так как лично я не видел людей, которые могли бы чистых 8 часов изо дня в день программировать. Или же придётся трекать что-то типа «пока шёл в туалет, раздумывал над оптимизацией кода». Лично у меня самые оптимальные решения задач рождаются именно по дороге в туалет и обратно (у нас в офисе до него метров 20 идти нужно). Только трекать придётся задним числом, потоу что вдруг в этот раз раздумья будут о другом?
Или, скажем «40 минут. Читал сегодняшний хабр со всеми комментариями в надежде найти что-то, что позволит поднять эффективность работы. Не нашёл». И не понятно, как трекать ситуацию, когда от усталости или недосыпа мозг переходит в неадекватный режим работы и генерирует сюр, а оплата почасовая, поэтому заканчивать никак нельзя, если хочется зарплату.
Какая разница иметь маленькую стоимость за час и учитывать грязное время или большую стоимость часта и высчитывать чистое время? В конце концов заказчик будет оценивать общий объём и скорость работ и выставленную оплату. И да, как правильно написали выше, если кто-то будет постоянно химичить, то, просто, откажутся от работы с таким медлительным программистом.

Скажите, а сколько часов по-вашему работает в день программист?
А почему столько?
Хотелось бы услышать аргументацию про медлительных и быстрых и увидеть критерии оценки скорости.
Спасибо.

Всё познаётся в сравнении и конечно на ощущениях. Начинаешь чувствовать движение по задаче, но это всегда повод поговорить и до, и во время, и после — чтобы лучше понимать. И вопрос же не в незаметных +-10%, а разнице в разы, или в некоторых случаях даже на порядок. И вопрос, конечно, не в скорости нажатия на клавиши, а в желании и интересе или их отсутствии, которое ты чувствуешь с той стороны.

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

Нет, не могу. Я это не оцифровываю. Но когда делают задачу в течение часа, я точно считаю, что быстро. А кто-то не может в принципе меньше недели делать задачу, даже не сложные — это для меня медленно. Или вот был случай, программист делал задачу месяц, и не доделал, просил ещё месяц, я обратился к другому и он за 2 дня сделал. Я теперь работаю со вторым, а не первым.
НЛО прилетело и опубликовало эту надпись здесь
Мы тоже с этой особенностью знакомы. Именно поэтому при наличии такой возможности стараемся привлекать к задачам программистов, которые уже с ними работали, чтобы получить результат быстрее и дешевле. Но понимаем, что когда нанимаем нового, то придётся платить и за часы, пока он знакомится с системой — по сути это наша инвестиция в будущие меньшие издержки.
Ну так вы накидываете пару часов, а не дней. Для меня медленный программист, это который оценив задачу в 1 день делает ее 3-4 дня, а потом еще доделывает 1 день свои косяки (не влияющие на работоспособность, корявые циклы, логгирование, try/catch и так далее).
НЛО прилетело и опубликовало эту надпись здесь

Если найдете того, кто сможет — позовите пожалуйста.

В конце концов заказчик будет оценивать общий объём и скорость работ и выставленную оплату.

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

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

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

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

А не будет ли программист затягивать работу при оплате по часам?

НЛО прилетело и опубликовало эту надпись здесь
Вот это и есть ключевой вопрос, который высвечивает что оплата по часам — фикция. Варианты такие:

1. Сказать что работа, которую ты делал 5 часов — должна была занять 1 час, по этому получишь денег как за 1 час. В этом случае тогда нафиг не нужны были часы — сразу сказать что за эту работу столько то денег.

2. Терпеть и платить за часы, но по итогам месяца сказать, что ты слишком медленно работаешь, по этому понижаем ставку в 2 раза.
Мы делаем по-третьему: принимаем столько, сколько сказал программист, но если не нравится, то перестаём ему заказывать работу.
Правильнее делать так, чтобы оценивал работы один, а исполнял другой. В идеале получать оценку от троих, считать среднюю — если есть значительные отклонения — собирать совещание и выравнивать оценку, если нет — переводить на следующий этап — где пул исполнителей уже выбирает задачи в работу видя и описание и предложенную оценку (цену). Правильно оцененные работы и работы с завышенной ценой будут расходится сами. Зависающим в очереди работам оценка повышается в зависимости от срока нахождения в очереди и приоритета. Это прекрасно работает в больших компаниях, но в пределе имеет свои дефекты, например, сговор и массовое завышение оценок. Но и здесь уже выработаны методы идентификации и ограничения.
Это хорошо, когда ответственность несёт начальник, и ему нет времени разбираться в ситуации и хочется увидеть быстро все оценки, чтобы понять, где есть проблема, требующая его внимания. В нашем случае ответственность несёт заказчик. Да, его оценка субъективная, но зато и субъектная. То есть только он ответственен за ситуацию, в которой исполнитель всё время имеет плохую оценку. Это он не донёс до исполнителя, что нужно исправить, не помог тому это сделать и в конце концов не заменил исполнителя, если этот оказался никуда не годный.

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

В этом случае тогда нафиг не нужны были часы — сразу сказать что за эту работу столько то денег

Скажите, как часто в вашей практике профи может точно оценивать объём работ?
всегда. риски +- 1-2-3 измерения.
при оценке в 4 часа, задача будет сделана максимум за 5-6
если задача оценена в 4 часа, а сделана за 16+ это уже никуда не годится
+ вопрос декомпозиции задача. если плохо декомпозирована — хуже будет оценка
Что значит
1-2-3 измерения
?

если плохо декомпозирована — хуже будет оценка
— т.е. для хорошей оценки нужно проработанное и подробное ТЗ?
На чужом несчастье своего счастья не построишь

Почему несчастья? Чел. может выдавать результат и радоваться что его ценят — деньги могут быть не на первом месте.

почасовка как раз более справедлива

Почасовка — такая же фикция. Нужны то не жопочасы а результат. Можно работать быстро, можно медленно — зависит от множества факторов — не обязательно специально тормозить. Депрессия, выгорание, сложные обстоятельства — вот уже за час чел. делает в 3 раза меньше работы, чем раньше. Начинаешь ругать и тыкать носом — становится хуже.
Согласен, что ругать и тыкать носом не стоит! Поэтому мы так ни в коем случае не поступаем. Но очень заинтересовало: в чём можно численно измерить результат работы программиста, кроме часов работы по созданию этого результата с учётом стоимости часа?
Ну есть же методики, такие как FP. Но в этом нужно разбираться, быть спецом по оценке, а не просто делать видимость. Так же некоторые оценивают в Story Points и т.д.

Ну или еще вариант — проведение ревью кода, после чего оценка объема кода (без ревью — получите раздувание кода). Но тут тоже нужно быть специалистом.

В общем — как ни крути — а оценка труда требует затрат. И часы ничем не помогут.

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

У нас главный посыл, чтобы пользователи понимали: работа программиста — не бесплатная, и соотносили ценность от выполнения своих задач программистами и затраты на них. То есть ответственность за эти затраты на заказчике, и не надо никак дополнительно обосновывать необходимость в увеличении количества программистов, работающих на компанию или приоритизировать задачи, что одни важнее других и поэтому буду сделаны раньше, так как производство ограничено.
Если программисту меняют схему оплаты, а он говорит работодателю, что теперь его час стоит в два раза дороже, тогда и проявится разница. Не каждый работодатель поймёт это. Особенно если он планировал сэкономить.
Конечно, тут последует стандартный совет сменить работодателя, но ещё и не всем это легко даётся.
Грамотный работодатель понимает, что самое ценное — это время, и принимает обоснованное повышение ставки. Так как если результат программирования даёт прибыль, то она обычно на порядок больше затрат на него. А значит, чем раньше он будет получен, тем быстрее пойдёт доход.

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

Грязное проще посчитать.

Поэтому мы считаем грязное.

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


Прошло три месяца, первый магазин уже работает. Второй сияет современными решениями. Третий работоспособен, но постоянно какие то проблемы.


Израсходованный бюджет на открытие первого, 10 млн, второго 20млн, третьего 5млн. С кем продолжим работать, когда понадобится еще 10 магазинов?


С кем

Очевидно же — будем искать на услоыном апворке еще дешевле.

НЛО прилетело и опубликовало эту надпись здесь
В нашем случае это будет решать тот, кто тратит деньги и может как-то перевести блеск второго и проблемы третьего в деньги, чтобы сравнить с затратами. Но конечно, мы тоже человеки и тоже имеем субъективное восприятие и тоже ошибаемся, как и все вокруг. Главное не ошибаться очень сильно и очень часто. Иначе заменят уже не программистов, а их заказчика.

Когда специалист вырабатывает 40 часов в неделю / 20 дней в месяц и больше, работает на нас более 3х месяцев, показывает результат => платим оклад. Иначе, платим по часам. Премии до 20% годового оклада по интегральному критерию на основе финансового результата работы всей компании (объективная оценка) и личного вклада (субъективная оценка) для тех кто достиг определенного грейда и работает с нами больше года

А почему разный подход?

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

А почему сразу не оклад? Проверяете стрессоустойчивость?

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

В качестве кого вы защищаете почасовую оплату? Программистов самих спрашиваете? И о каких продуктах или проектах идёт речь?

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

Можете кратко рассказать какие такие отношения вы считаете правильным. Вот я программист, допустим, работаю в компании на проекте одного заказчика. Компания с заказчиком договорилась об объёме работ, сроках (привлекая меня для оценки) и стоимости (все понимают, что её основа — сроки * рейт). Я работаю на окладе, если сделаю в оговоренные сроки, то всем нормально, ожидаемый результат. Сделаю медленнее — все будут не рады. Сделаю чуть быстрее, все, наверное будут рады и, может быть мне премию дадут. Сделаю заметно быстрее — моя компания будет рада, наверное, и даже премию дадут, но, вероятно это по факту будет выходным пособием. У заказчика же, вполне может быть, останется мнение, что его обманули — рассказывали, что работы на полгода, оплату соответственно взяли, а сделали за месяц. Кому тут поможет, если у меня будет почасовая оплата?

Мы считаем пустой тратой времени точную предварительную оценку объёма ожидаемых работ по задаче, которая ещё не завершается. Кроме лишних трудозатрат — а значит и дополнительных времен и денег, которые в конце концов теряет заказчик — такая оценка вынуждает торговаться исполнителя и заказчика, держа про себя в кармане фигу. Такие вещи противопоставляют тех, кто должен будет плотнее всего взаимодействовать в процессе допостановки задачи и тестирования результатов разработки. И даже в попытке как-то оценить задачу сверху не видим особых плюсов. Как известно, аппетит к заказчику приходит во время еды, а понимает он, что хотел, только в тот момент, когда получает от программиста то, что просил. Так зачем их ставить в заведомо конфликтную ситуацию более ранней или более поздней сдачи работ, которые так красочно были описаны? Если задача требует больше недели времени, то разбиваем её на подзадачи и делаем постепенно, совместно фиксируя еженедельный прогресс и приходя к итоговому нужному результату итеративно. При этом мы же не сделали какую-то одну задачу и разбежались. У нас, как и многих других компаний всегда есть, что ещё можно автоматизировать, особенно в бухгалтерии. И если появляется программист, который делает хорошо и быстро, то его хотят все заказчики, и он: во-первых, может уже теперь сам выбирать из них, для кого хочет работу делать — с кем ему комфортнее взаимодействовать, кто лучше даёт вводные по задаче, кто быстро тестирует и принимает результаты, кто ищет решение а не виноватого; и, во-вторых повышать ставку за час, о чём писал уже выше. типа изян

Ок, допустим что-то вроде скрама с оплатой заказчиком по каждому недельному спринту. Допустим планируем на программиста по 30 часов чистого программирования и 10 часов сопутствующей деятельности (общение с заказчиком, своими менеджерами, с коллегами-программистами, с тестировщиками, с админами-девопсами и т. п. — это же время так же оплачивается как и программироание, да?). И в целом в оценки попадаем, где-то переоценили, где-то недоценили — то на то и выходит. В результате каждый отрабатывает по 40 часов, заказчик оплачивает одну и ту же сумму до копейки раз в неделю. Кому тут выгода?


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


Вот в чём мне, программисту, смысл переходить на почасовую оплату в отношениях с моей компанией (подрядчиком заказчика по сути), если отрабатываю я по 40 часов в неделю, овертаймить возможности нет (worl/life баланс и всё такое), но есть всякие праздники и их переносы, уменьшающие количество рабочих часов в неделю, есть всякие феврали, уменьшающие количество рабочих часов в месяц, что делает при постоянной работе по 8 часов в день неравномерным месячный доход. в чём мне выгода, в чём мои, как программиста, плюсы?

НЛО прилетело и опубликовало эту надпись здесь

То есть это не почасовая оплата программисту, с которой всё начиналось:


Мне регулярно приходится защищать почасовую оплату труда программистам.

а простое осмечивание. Оценили фронт работа в часах программистов (конкретных или средних джун/миддл/сеньор), посчитали в деньгах, добавили накрутку на орграсходы и прибыль и выставили заказчику счёт. Программист же получает по сути фикседпрайс за задачу, становится не работником, а субподрядчиком, пускай и с элементами трудовых отношений (отпуска, больничные и т. п.). Сделал быстрее чем по смете — получает те же деньги за большее время, задержал (по своей вине) — работает больше за те же деньги. Так?

НЛО прилетело и опубликовало эту надпись здесь
Нет, мы смету не делаем. Программист работает и по фактически затраченным часам получает. А быстро он делает или медленно, качественно или не очень — влияет на его спрос, а значит загрузку и стоимость часа в будущем. То есть у хороших спецов появляется интерес играть в долгую. А кто пытается урвать здесь и сейчас — урывает, но для него это продолжается не долго…
В моём случае у проектов есть этап приёмки. Исправление всех проблем, обнаруженных во время приёмки, входит в цену проекта. Исправление проблем, вылезающих после — это отдельное ТЗ, отдельный договор, отдельная оплата. Либо ежемесячная оплата абонентки за поддержку, чтобы иметь возможность оперативно исправлять проблемы. Тут уж заказчик сам выбирает, что ему удобнее.
НЛО прилетело и опубликовало эту надпись здесь
Автор описывал в прошлой статье (которую потом удалил) как работает по такой схеме Вкусвиль. Так вот там нет координации. Поэтому у них один проект работает, а другой в совершенно непонятном состоянии. То есть для бизнеса есть некая экономия по затратам, но так же очевидна просадка по качеству. И просадку без координации не устранить. Но координировать людей «свободных взглядов» (то есть работающих неполный день/неделю/месяц) сложнее, чем гарантированно пашущих по 40 часов в неделю. Отсюда вытекает необходимость получения гарантий от разработчиков. Но в ответ они, разумеется, потребуют гарантий от работодателя. Почасовая оплата = отсутствие гарантий. То есть в сумме во Вкусвиле не получится совместить ужа с ежом, ибо гарантии для одних не даются даром другими.

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

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

Хотя автор, похоже, по сути пиарит свою книжку про бирюзовое управление. Тогда вообще конструктивного диалога не выйдет — цели у него не соответствуют диалогу.
Прошу прощения, что мои сообщения были так восприняты — к сожалению, очень мало практики общения с местным сообществом профессионалов. Прошлую статью удалил не я, а администрация. За рекламу «Вкусвилла». Здесь я, оказывается, уже «рекламирую» книгу. Хотя по мне странно это делать внизу комментариев к своему заминусованному материалу… Хоть кто-то стал бы так делать? А если посмотреть мои комментарии к другим материалам на этом ресурсе, то можно обнаружить, как я там «рекламирую» книгу «Скорость доверия» — так что похоже в ваши ряды в моём лице затесался ещё и рекламный агент Стивена Кови… Как бы с него только свой процент стрясти с мегапродаж, случившихся сразу после публикации обложки его книги в комментарии к сообщению!?..

То, что все компании по-разному оплачивают работу программистов, и не только мы платим за часы, видно из результатов опроса выше. Крестить мы никого не крестим. Чистая почасовка. Объяснял это в других сообщениях «рекламирующих» данных способ работы выше. То, что он имеет свои минусы — согласен и разбирали там же, в том числе и с моим участием. Плюсы тоже привёл.

По тому, что задачи у нас не «Гугла» — тоже полностью согласен, поэтому и хотелось бы сравниться именно с ситуацией в других розничных компаниях сопоставимых по размеру или даже больше, с кем советуют сравниваться старшие товарищи. Если кто-то знает, то напишите, пожалуйста: лучше там реализовано взаимодействие с программистами, чем у нас или хуже? И на каких принципах всё это оплачивается?
У вас используется какое то программное обеспечения для трекинга задач? Jira? asana? redmine? trello? todoist?
Разное, в том числе никакое. Главное условие — чтобы было удобно и заказчику, и исполнителю. Я вообще ничем не пользуюсь. Стараюсь не ставить больше задач, чем можно сделать за неделю, а остальные себе записываю в памятку, чтобы не забыть и выдаю потихоньку программистам. Заодно и что-то срочное может появиться, я тогда вне очереди пускаю.
Когда-то давно я работал в отдельном магазине. Не сеть, но размер был неплохой. Они вполне нормально относились к обычному найму. Хотя денег, понятно, меньше чем у сетей. Правда приходилось совмещать всё, что относилось к компьютерам — кассы, юзеров, установку винды и прочую чистку мышек с реальной разработкой.

Теоретически им вряд ли было бы выгоднее нанимать админа и отдельно почасового разработчика. Админ бы не сильно меньше получал, но зато никаких гарантий от чужого разраба. А свой всё же был всегда под рукой, пока простаивал — з/п за админство начислялась (ну или оправдывалась в глазах директора).

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

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

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

Но с другой стороны — есть в бюджете строчка «расходы на ИТ» и ею начальство довольно — вот и нет нужды что-то координировать. Если у вас так, то это ни чем не обоснованный подход, кроме как экономией времени и нервов того, кто строчки в бюджете оценивает.
Да, у нас именно такая история, когда строчка затрат на Информационные Технологии теряется в отчёте о доходах и расходах. Но боюсь, что при классическом подходе, затраты были бы на порядок больше, при не сильно лучшем качестве. А проблему с координацией и общим качеством мы решили созданием группы программистов с архитектором, которые оказывают услуги другим программистам. Им за эту работу как раз я закрываю почасовку, 2 раза в месяц скопом по всем их задачам, у которых по сути нет конкретного заказчика, но есть явная польза для нас всех.
Вы сейчас, по сути, отрабатываете методологию. Начальству, опять же по сути, плевать на ваши опыты до тех пор, пока строчка в затратах не сильно растёт. Вы сами «творите», опять же по сути, фактически для себя. В сумме получается условный стартап по проработке методологии обеспечения ИТ среднего предприятия. Стартап работает за деньги даже не подозревающего об этом инвестора.

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

Но может и удастся упаковать и продать методологию другим средним предприятиям. Тогда бы возможно стал возможен вариант «неполной ставки» для тех, кому время важнее денег. Этим подход интересен. Но дьявол, как известно, в деталях. Поэтому может получиться плохо. А может и хорошо. Я со стороны разработчиков голосую за «хорошо», но понимаю, что всё это лишь очередной стартап с непонятными перспективами.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории