Адрес для входа в РФ: exler.world
Программеры филонят
Исследователи из Стэнфордского университета создали модель, которая количественно оценила работоспособность более 50 тысяч разработчиков программного обеспечения из сотен крупных IT-компаний, проанализировав исходный код из закрытых репозиториев Git.
Результат меня прям удивил. Оказывается, только 14% инженеров-программистов, работающих удаленно, ни хрена не делают. Я был уверен, что их заметно больше. Также исследователи выяснили, что 9% работающих одновременно удаленно и в офисе ни черта не делают, а в офисе ни черта не делают 6%.
Мой опыт показывает, что этот процент - прям очень заметно выше. Так что у них явно что-то с методологией.
Оказалось, 14% инженеров-программистов, работающих удаленно, практически не выполняли никакой работы, то же самое касается 9% трудящихся одновременно удаленно и в офисе, а также 6% работающих в офисе постоянно. В среднем этот показатель составляет 9,5%.
Подсчет коммитов (способ сохранения изменений в коде, содержащий информацию о том, что было изменено и кем были внесены эти изменения) кода выявил, что примерно 58% сотрудников делают менее трех коммитов в месяц. Остальные 42% вносят тривиальные изменения: например, редактируют одну строку или символ, делая вид, что работают. (Отсюда.)
про удаленку еще вот такой результат получился:
У среднего программиста есть множество другой важной работы. Принимать участие в митингах, вносить предложения по улучшению работы, тестировать, запускать что-то, отвечать на вопросы сослуживцев, писать планы, искать причину проблем, проверять коммиты других, и много чего ещё.
Common software measurements include:
ABC Software Metric
Balanced scorecard
Bugs per line of code
Code coverage
Cohesion
Comment density[3]
Connascent software components
Constructive Cost Model
Coupling
Cyclomatic complexity (McCabe's complexity)
Cyclomatic complexity density[4][5]
Defect density - defects found in a component
Defect potential - expected number of defects in a particular component
Defect removal rate
DSQI (design structure quality index)
Function Points and Automated Function Points, an Object Management Group standard[6]
Halstead Complexity
Instruction path length
Maintainability index
Source lines of code - number of lines of code
Program execution time
Program load time
Program size (binary)
Weighted Micro Function Points
Cycle time (software)
First pass yield
Corrective Commit Probability[7]
.......
Как вовремя я это все безобразие бросил.
cond засылать эвентом через Кафку. Результат писать в hdfs.
Вот тогда норм.
А так нещитово, любительщина какая-то.
PS: Кстати, во времена молодого Билла Гейтса Жабы, которая на картинке, даже в проекте не было.
Зануда-моде-офф 😄
К моменту релиза библиотеки у нас было написано примерно одинаковое количество кода на VHDL за одно и то же время, при том, что он нажимал примерно раз в 100 больше меня на клавиши. До сих пор не знаю, как он писал - писал и тут же удалял? Комментировал всё, а потом удалял комментарии? В общем, для меня это осталось загадкой. Вполне возможно, для него мой способ работы - тоже.
Ещё один комментарий от другого коллеги, уже из другого проекта: "Когда садишься за компьютер, очень хочется не думать, а сразу что-то печатать." Возможно, здесь ключ к разгадке?
Интересно, а как бы они оценивали работу хардверщиков - по количеству припаянных микросхем?
folklore.org
Офигеть, если честно. У меня за вчера где-то коммитов 20. Около тысячи строчек кода + несколько тысяч строк мок-данных.
У меня есть уникумы, которые коммитят, не проверяя даже на уровне "компилится оно или нет". Зато дешёвые, что руководство и ценит.
Ну, осуждаю, но бывает. Хоть засквошил потом?
Тысяча строк кода в день. 125 строк в час, две строки в минуту. Чуваку думать некогда, он код педалит.
Несколько тысяч строк мок-данных. Ну тут ваще. Мало того, что мок, за который в приличных фирмах стреляют в голову, так еще и несколько тысяч.
Короче, у него еще, жена - модель, яхта океанского класса и три приватных джета
Из человеколюбия.
Его ж разорвёт в бане из-за такой темы.
бред какой-то...
а я не знал...
Секретное за физический пределы офиса не должно попадать.
"Закрытые репозитории" не просто так же закрыты.
Вот я вокруг этих двух строк разные варианты и пробую. По мнению исследователей из Стэнфордского университета я - бездельник?
Я сказал что-то вроде "потому что так заработало с первого раза, а у коллеги, с его циклами, нет".
Вот если ты стучишь по клаве со скоростю света и комитишь как не в себя, то ты значит продуктивный работник. "Но в основном фигня какая-то получается" (с) анекдот
А на экране ползут красивые строчки комментариев...
А наутро так: садились и пили вермут. Потом вставали и вчерашний кабель вытаскивали из-под земли и выбрасывали, потому что он уже весь мокрый был, конечно. А потом – что же? – потом садились играть в сику, на деньги. Так и ложились спать, не доиграв.
Рано утром уже будили друг друга: «Лёха! Вставай в сику играть!» «Стасик, вставай доигрывать вчерашнюю сику!» Вставали, доигрывали в сику. А потом – ни свет, ни заря, ни «Свежести» не попив, ни вермуту, хватали барабан с кабелем и начинали его разматывать, чтоб он до завтра отмок и пришел в негодность. А потом – каждый за свой досуг, потому что у каждого свои идеалы. И так все сначала.
Став бригадиром, я упростил этот процесс до мыслимого предела. Теперь мы делали вот как: один день играли в сику, другой – пили вермут, на третий день – опять в сику, на четвертый – опять вермут. А тот, кто с интеллектом, – тот и вовсе пропал в аэропорту Шереметьево: сидел и коньяк пил. Барабан мы, конечно, и пальцем не трогали, – да если б я и предложил барабан тронуть, они все рассмеялись бы, как боги, потом били бы меня кулаками по лицу, ну а потом разошлись бы: кто в сику играть, на деньги, кто вермут пить, а кто «Свежесть».
Москва—Петушки
Поэма
А коммит один.
Те же джуны часто переделывают по 5 раз одно и тоже - и там в день просто куча коммитов. Вот они, получается, супер работники...
У нас просто есть план на квартал и он разбивается на спринты. Ставятся задачи в спринты - если выполняешь, то всё отлично. И неважно сколько там коммитов/строк кода/времени - хочешь ночью работай а днём на паре созвонов побудь (время созвонов, кстати, в тайм трекере не учитывается... Надо его раскидывать на задачи), и занимайся своими делами, если тебе так удобно.
«Обычно» рабочий день 6.5 часов на sprint tasks, остальное время на standups, planning, retrospectives, etc. При этом не нужно «раскидывать» ceremonies на задачи.
Вот выходит новая версия программы или даже ОС, или новая игра - и делали все это туеву хучу лет, и там багов как блох на бродячей собаке. Ну как так?
Более того, как правило аддоны почти всегда делают нормально работающую программу хуже, чем она была.
Что это?
И такая шняга стала нормой лет 20 как.
Если бы в моей сфере деятельности народ (включая меня) так работал, то после второй, а иногда и первой ошибки вылетел бы с места впереди собственного визга. А тут компании и их сотрудники десятилетиями косячат, и хоть бы хны.
Ты выпускаешь продукт. Работаешь несколько лет. У тебя есть возможность бета-тестинга. И все равно выпускаешь говно, которое потом приходится ещё пару лет допиливать.
Так может, просто этих программистов развелось слишком много? Похоже как минимум половину можно тупо заменить ИИ, и никто не заметит. Будет по прежнему выходит недоделанное говно, потому что ИИ создают и программируют те же самые долбоклюи.
IYKWIM
А за крупные баги очень даже по шапке дают
Но могу успокоить - ошибки всегда разбиваются по уровню критичности для конечного пользователя. Если где-то на сайте стиль, например, поехал и какой-то текст поменял цвет или там съехал куда, скорее всего такой баг не будут экстренно фиксить, а запланируют в следующий релиз. Если пользователь не может пользоваться какой-либо важной функцией софта - то да, такое в релиз в нормальных конторах не выпустят. Или будет выпущен внеочередной патч уже после релиза.
(с) Какой-то из законов Мэрфи
Недостаточный уровень тестирования. Тестируют в принципе все, но уровень тестирования сильно отличается. К тому же правильно написанный код (автоматически) тестировать куда легче.
Говнокод Этим страдают почти все. Неправильно написанный код заставить работать корректно невозможно. Его нельзя нормально поддерживать.
Изменения в требованиях В процессе разработки вносятся изменения, которые вносят хаос на всех уровнях.
Бизнес причины Софт релизят с багами вполне сознательно.
В бар заходит тестировщик. Заказывает стакан пива. Заказывает два стакана пива. Заказывает миллион стаканов пива. Заказывает ноль стаканов пива. Заказывает минус один стакан пива. Заказывает полтора стакана пива. Заказывает ящерицу в стакане.
В бар заходит первый настоящий посетитель. Спрашивает, где туалет. Бар взрывается.
а вообще программирование нельзя сравнивать со всем остальним
єто чистое творчество причем абстрактное, мест где может поломаться уйма , все не предвидишь, чем сложнее программа тем больше багов
Megathread: Sony/PlayStation will offer full refunds to those who have purchased Cyberpunk. - SIE will also be removing Cyberpunk 2077 from PlayStation Store until further notice.
Потому что софтверные компании могут выкатить апдейт, который вы можете даже не заметить.
А вот если бы программисты сидели бы на сдельщине... Выпустили нормальный продукт, получили часть прибыли. Выпустили недоделанное говно, сосите хер. Может, тогда меньше говна бы выходило?
Разгадка проста: продукт создается людьми.
Подробнее: Законы ненадежности Джилба.
Возможно, изрядная часть программистов просто не профессионалы?
Вот объясните, почему продукт делают несколько лет, проверяют, тестят, а потом после его реализа там куча багов, которые, бывают даже гаджет кирпичат? Ой, ошибочка вышла...
Это важно.
Для тебя же.
Совсем недавно убрал штук сто строк из одного модуля.
Запрос, который выполнялся секунд двадцать, стал выполняться меньше, чем за секунду.
Да, мне было очень стыдно, поскольку эти сто строк писались тоже мной.
И знаете, что обидно? Абсолютно никто этого не заметил!
Гомо сапиенс."
I have skill in receiving emails, opening emails, reading emails, writing emails, sending emails...
Вот это тоже самое - он один контрибюшен разделил на 5 мелких шагов и каждый преподносит как отдельное достижение. И ничего, что мы этого уберспеца 6 месяцев ждали, пока он из Индии припрётся (ЕС бюрократия+индийская тоже), и что мы с коллегой его полгода настаскивали по таким вопросам, которые он, судя по его CV, должен был знать наизусть. Если бы от меня зависило - уволил бы нахрен. Специализд...
Многие страницы "как пройти собеседования в Гугле, Амазоне итд" в помощь.
Они очень хорошо умеют играть в корпоративные игры, представлять себя в наилущем свете.
Им что, специально дали доступ в закрытые репозитории?
Не оспаривая тезис, что среди нашего брата есть ленивые жопы, таки хочу заметить, что считать коммиты — это не очень хорошая метрика. Разработчик более-менее продвинутого уровня может общаться, составлять ТЗ для июней, решать какие-то вопросы с юзерами, читать резюме и собеседовать, разбираться с архитектурой и делать много чего ещё.
Ну и иногда чтобы внести изменения в одну строчку надо потратить два дня на понять что вообще происходит.
Хотя, повторюсь, лентяи и дармоеды есть, тут не поспоришь.
Чёт лежит. Надеюсь, временно, и с ними всё в порядке.
На широко известном в узких кругах итальянском ресурсе для ойти специалистов это, в общем, расхожее определение для молодых неопытных разработчиков. Оттуда и взял.
Но даже если искренне болеешь за проект, то случается, что до программизма руки не доходят при всём желании.
Правда потом этого доброго менеджера убрали. Без бонуса.
Мне как-то на глаза попалась отличная статья о том как менеджмент попросил тим-лида уволить разработчика, который меньше всего стори-поинтов закрывал, дескать, зачем нам он такой малопроизводительный. Тот наотрез отказался, и вот почему.
Да, тот чувак закрывал мало тасок. Иногда вообще ни одной за спринт. Но он активно помогал в решении задач другим членам команды. Постоянно. День за днём. Каждому. И каждый же член команды признавал значимость вклада этого парня.
Вместо того, чтобы непосредственно обеспечивать деливери решений задач, "малопроизводительный" разработчик деливерил всю команду. А его уход неминуемо сказался бы на общей продуктивности.
Но для такого отказа менеджменту нужен не просто ум, нужна определённая мудрость. Которая есть не у всех лидов.
Реально?
если у вас программистов дрючат за coverage - то нафиг такую контору
Amazon kills remote working, tells workers to be in office 5 days a week
Ешкин кот.
Знаю несколько организаций, федеральных, государственных, где ни хрена не делают, и даже не скрывают этого, 80% сотрудников. Т.е. какие то бумажки перекладываются, что то происходит, какая то активность есть, но по сути они ни хрена не делают.
Совпадениенедумаю.
Как он сказал, что-то типа - он повышает уровень компетентности нашей команды.
Так что все эти исследования из серии - "британские ученые", жизнь - она намного сложнее.
А вообще есть такой анекдот:
- Как только из параметра делают KPI, он перестает иметь отношение к реальной жизни.
- О, как это верно. У нас накопилась куча бессмысленных KPI, давайте их отменим!
(через месяц)
- В эту итерацию мы отменили на 20% больше бессмысленных KPI, чем в прошлую!
еще есть возможность, что анализировали не все репозитарии, типа пилит человек свою задачу в своем локальном репозитарии, а потом подмёрживает сорцы в глобальный.
Станфорд в США.
Лет 20 назад в одной крупной немецкой компании один добрый менеджер предложил гениальную идею (шокирующую своей новизной) как посчитать производительность девелоперов. А давайте, говорит, будем считать сколько строчек кода они в день барабанят. А давайте, весело отозвались топ менеджеры (и не замедлительно выписали доброму менеджеру, нет, не в бубен, а довольно крупный бонус за рац. предложение). Что на это сказали разработчики? А ничего не сказали, ухмыльнулись и давай развлекаться CTRL+C - CTRL+V и так весь день. В конце месяца посчитали, прослезились от умиления и осознания как все тяжело и усердно работают и всем выписали, нет, опять не в бубен, а бонусы. И так продолжалось какое то время пока на устройстве (а проект был под эмбеддед устройство где ресурсы ограничены) закончилось место и бинарь в него уже никак не лез. И тут топ менеджмент начала подозревать, что находится на пороге грандиозного шухера. Но появился еще один добрый менеджер и сказал, а давайте мы в Украину зааутсорсим задачи по оптимизации кода, мол слышал там ребята толковые и стоят крепко дешевше чем наши родные немецкие парни. А давайте, радостно отозвался топ менеджер и незамедлительно выписал, опять нет, не в бубен, а бонус этому доброму менеджеру. Вот так проект попал нашей команде. Нас спросили можете ли хоть за пол года что то с этим сделать? Мы ответили - можем за пол года, а вот за год - не справимся.. Надо бюджет расширять. В общем сделали за три месяца и нам выписали .... нет, не угадали, не в бубен, а бонусы.
Что бизнес хотел? Очевидно, улучшить производительность труда своих разработчиков. А что получил по итогу?
Я в предыдущей инкарации прожил через несколько "оптимизаций расходов" в одном ныне несуществующем банке. Поскольку под "оптимизацией", без исключения, понимается сокращение кадров банк поручал ЖОРАМ и ЛОРАМ, сокращались только работающие и неудобные СУКи. И как неизбежен восход солнца уторм, так ровно через пол года после сокращения штат банка удваивался, просто чтоб поддержать производителность на том же уровне.
Кстати, если что - я как вы. Программист, тащу такой вот аутсорснутый в Украину проект. Тоже все счастливы.
Вот в таком офисе - чья хотелка будет совпадать с "хотелкой бизнеса"?
Три коммита в месяц - это странно
Но очень напрягает и расстраивает бездельничанье. Так что большая часть усилий уходит именно на переживания по этому поводу.
Но как база потянет.
Да и корректно выглядит: в офисе работают лучше.