company_banner

Разрабы работают медленно и дорого — и люди считают нас лентяями. Просто в разработке всё сложно

    — Люди не из индустрии вечно не понимают программистов: что они там такое сложное делают, если видно только две кнопки? Что за непонятные слова говорят? Почему так много получают?


    Вместе с парнями из подкаста «Мы обречены» решили с этим разобраться и запустили совместную рубрику, где будем объяснять, почему в разработке всё так сложно. А для тех, кто любит читать, а не слушать, парни написали эту статью.



    Знаете такое чувство, когда вдруг понял, что работаешь уже целый год, хотя идея проекта была простой? Вас пять разработчиков, четыре тестера, проджект и продакт-менеджеры. Ты смотришь на получившееся ПО, и думаешь — ну что мы могли так долго делать? Пять основных фич, три десятка маленьких — нормальному инженеру на неделю работы.


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


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


    Нам всем приходится работать с не-инженерами, для них вся сложность существует только на наших словах — другого способа осознать её у них просто нет. И, конечно же, нам вечно не верят. Как будто нам не хватает собственного синдрома самозванца?!


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


    — Почему ты всегда всё делаешь в два раза дольше, чем обещаешь?


    — Потому что создатели Agile не верят, что можно делать что-то больше недели. Вот и говорю, во что поверят.


    А если серьёзно: детали не видны изначально, всегда кажется, что сделать надо немного, и получится быстро. Уже в процессе работы натыкаешься на кучу нюансов, иногда, пока делаешь задачу, требования меняются. Пока работаешь ты — над тем же проектом работают ещё пять человек, и часто их изменения означают дополнительную работу для тебя.


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


    — Зачем ты мудришь?! Сделай, чтобы просто работало!


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


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


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


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


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


    Это так работает, даже когда вас всего двое. Когда у тебя на рынке продукт, которым пользуется миллион человек — и каждый из них опосредованно участвует в выработке требований — можешь вообще забыть об идее, что у тебя в кодовой базе будет хоть что-то устойчивое. Миллион пользователей, аналитики и продакты генерируют идеи со скоростью света. Всё это надо воплощать так, чтобы не повалилась обратная совместимость. Чтобы все новые идеи заработали, а в старых всё осталось как было, хотя код старых и новых идей связан между собой. И чтобы поправить в одном месте, придётся затронуть другое.


    Разработчики думают наперёд, и это удорожает разработку в разы. Но если бы не думали, подорожало бы в десятки десятков раз.


    — Почему вы просто не возьмёте и не придумаете уже один нормальный язык, на котором всё будет работать?


    — А почему люди не начнут говорить на одном языке?


    А если серьёзно: у нас тысячи классов задач. Разные языки по-разному подходят под разные задачи. У нас миллионы очень разных разработчиков. Часть из них отлично подойдёт, чтобы делать простенькие приложения, а часть — чтобы пилить рокет саенс. Вторым нужен очень сложный язык, иначе получится непроизводительно. А первые такой просто не смогут освоить. А нужны-то и те и другие!


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


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


    — Опять баги! Почему вы не можете писать без них, неучи?


    — Баги — это чтобы бизнес не подумал, что сможет обойтись без нас.


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


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


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


    — Какой ещё новый язык? Какой ещё современный фреймворк? Нам не до игрушек! Почему не можете просто писать на чём есть?


    — Работа должна приносить удовольствие. Мы хотим поиграть в игрушки.


    А если серьёзно: все новые инструменты появляются только для того, чтобы решить проблему, которая не решена в старых. Мы боремся за десятые доли процента оптимизации, и в целом, это вообще единственный способ борьбы с хаосом роста требований и индустрии. Мы отвечаем этому хаосу мощью и универсальностью своих новых инструментов. И на дистанции видим — подход работает. Чтобы сделать простое десктопное окно на старом WinApi, надо было написать сто строк кода. А сейчас — одну.


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


    — Почему программисты так много получают? Ходите, кофе пьёте! За что вам платят!?


    — Потому что можем.


    Но если серьёзно: потому что простые вещи, которые мы так долго и так плохо делаем, автоматизируют человечеству процессы, которые стоят намного дороже, чем отделы программистов. Это просто экономика. Даже 1С бухгалтерия автоматизировала человеческий труд на многие миллионы долларов.


    А кроме автоматизации мы ещё делаем вещи, которыми люди буквально живут.


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


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


    Мы любим жаловаться, что джуны ничего не знают, но за этим «ничего» уже есть гигантское количество знаний и нейронных связей. До своей первой работы я год корпел над консольными шахматами, которые писал, чтобы изучить С++. Там было несколько тысяч строк кода, они работали каким-то чудом, потому что страшно толстого талмуда «Программирование на языке С++» не хватило, чтобы ответить даже на малую часть моих вопросов, как делать. Форумы, стековерфлоу, разные версии компилятора, стандарты, разные IDE — те дни были большим мучением для моих мозгов.


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


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

    Авито
    У нас живут ваши объявления

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

      +16
      О, профиль компании поменялся!
        +5
        Глянул последние 3 статьи корпоративного блога — ни одной строчки кода. И правда поменялся.
          +7

          Справедливо. Но! На следующей неделе у нас будет статья со строчками кода.

            +2
            Глядя на аватарку и имя я чувствую, что это будет в тинькофф-журнале)))
        +12
        Я так до сих пор и не понял, Король Разработки строчит вот эти посты вилами по воде для разных контор, чтобы их тут (на хабре) лишний раз пропиарить и баблишка намутить или как? Сколько вообще за это платят?
          +11
          Компания нанимает популярного автора хабра для написания пиар-статьи? Никогда такого не было!
            +4
            И ведь не просто строчит, а дичь какую-то строчит:
            Если пуля врезается в стену, она останавливается. А если стена резиновая, то отскакивает. А если пластиковая, прошибает насквозь.

            Ух ты, а мужики-то не знали что оказывается можно просто сделать резиновую броню на всей технике — и все начнет просто отскакивать, и пули и снаряды и даже ракеты с торпедами. Или побоялись что противник такую броню ножами разрежет и вытащит экипаж наружу?
              +1
              Так это же известный сплав резины со сталью, чтобы снаряды отскакивали обратно
                +1
                снаряды отскакивали обратно

                в стреляющего.
                  +1

                  Про жидкий вакуум забыли.

                    0
                    И про резиновые бомбы :(
                  +2
                  Это условный пример для демонстрации многообразия вариантов. Условность.
                  +2
                  У хабра существует система выплат авторам. В случае Короля Разработки — основную оплату заносит фирма, в чей блог он пишет. То, что засылает хабр — это так, на кофе.
                +52
                Если подытожить:
                — Почему разработчики так много получают?
                — За трудную работу: работа ведь гораздо сложнее, когда ты не знаешь, что и как делаешь
                  +1
                  у Фила в статьях вообще каждый раз что-то куда-то катится, и ничего.

                  kbaa
                  https://m.habr.com/ru/post/524796/comments/#comment_22222552

                    +6

                    Одни идут, толкая пред собой и перекатывая мир в будущее, а другие бегут вокруг и причитают: «Боже! Куда катится мир!» Ⓒ :-)

                      +1
                      … бегут вокруг _налегке_
                        +1
                        vladkorotnev
                        а прикольно сказано то
                    +6
                    Про разработчиков в авито не актуально в свете последних статей на хабре )
                    Почему в техподдержке так всё сложно (а точнее почему клиентам)?
                      +5
                      Потому что могут!
                      +30
                      Если совсем уж серьёзно, то все вышеперечисленное имеет место быть, но вместе с ним ничуть не реже бывает и:
                      — вот просыпаешься ты, и совсем не прёт работать. Да, задача понятная, но не прёт, и ты прокрастинируешь всеми возможными способами. На Хабре зависаешь, например. Другому работяге бы от работы не отвертеться, но мы-то можем себе такое позволить.
                      — а ещё мы можем делать всё тяп-ляп. Особенно если проект не интересный, клиент противный, начальник вредный,… или совсем не прёт работать. Так, впрочем, могут очень многие, и строители, и садовники, и ещё леший знает кто. Но нас на этом труднее поймать. Работа строителя-то на виду.
                      — а ещё мы действительно нередко занижаем сроки оценки. Не потому, что не видим всех деталей. Ну да, иногда не видим. Но если мы не совсем уж джуны, мы все равно делаем чаще то, что уже сто раз делали, те самые скрытые детали знаем, и более-менее достоверно можем оценить затраты. Но клиент же испугается. Да и времени точный анализ сам по себе много потребует, а это наше рабочее время и наши деньги.
                      Это я не к тому, что мы все такие плохие, а к тому, что бывает по-всякому, и жалобы клиентов тоже нередко бывают обоснованными.
                        +59
                        а еще бывает, когда закончился день, ты встаешь с рабочего места идешь домой, а в голове крутишь проект, как его лучше сделать. Ешь ужин и думаешь, а потом идешь к компу, чтобы проверить пару гипотез. После ужина ты продолжаешь думать. А на утро приходишь на работу, и за чашкой кофе, тебе приходит решение, и ты пишешь 20 строк кода, которые решают проблему.
                          +6

                          У меня нередко бывало, что решение приходило во сне, потому что когда я спал, мне снился текущий проект и нерешённая задача

                            +4
                            Это особенности работы мозга
                            Интересно описаны в книге Барбары Оакли «Думай как математик. Как решать любые проблемы быстрее и эффективнее»
                            К примеру решая трудную задачу и засев в тупик, не обязательно ждать сна, достаточно просто переключиться на какую-нибудь рутинную задачу, в идеале физическую, помыть посуду, прогуляться, сходить в тренажерку, решаямая задача перейдет в фоновый режим, будет продолжать обрабатываться подсазнательными процессами(если можно так сказать). Когда после переключения вы вернетесь к задаче, вы поймете что если не решили проблему, то 100% продвинулись в ее решении.
                            В книге много интересного, описание разных исследований и их анализ, советую ознакомиться.
                              +2
                              Имея широкий опыт применения этих и похожих советов на практике, могу сказать, что сон, как способ выйти из тупика, вне конкуренции с большим отрывом.
                                +1
                                Это очень индивидуально. У меня, например, это ходьба и велосипед.
                                  0
                                  Не забывайте такую замечательную вещь, как зависнуть в душе от внезапно пришедшего решения!
                                    +1

                                    А чего зависать? Надо быстрее выбегать и записывать-проверять решение!

                                    0
                                    Да, сон дает положительный результат в том числе и короткий дневной сон (10-20 минут) если есть такая возможность. Помогает перезагрузиться, расслабляет мышцы и позвоночник, главное лежа не зависать в соцсетях, пустая трата времени.

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

                                    Спасибо за рекомендацию, почитаю!

                                      0
                                      Ещё есть курс от Барбары Оакли на Coursera, называется «Learning How to Learn», книга + курс очень помогли мне в становлении джуном.
                                        0
                                        Спасибо огромное за книгу, мне как новичку очень пригодиться знать о таком
                                        0
                                        Прикольно. А у меня в душе или когда каким-нибудь физическим трудом занимаюсь.
                                          0
                                          У меня так решение, которое в итоге и ушло в релиз, пришло ко мне во сне, я вскочил в 4 утра, чтобы записать и не забыть))
                                          +6

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

                                            0
                                            Да, вот только разработчики в отличии от большинства реально могут работать просто думая за ужином, поскольку продумывание решения – это и есть значительная, если не бóльшая часть работы.
                                              +2
                                              Да все могут. И инженеры, и ученые. И даже — внезапно — учителя, размышляя о том, как заинтересовать Васечку математикой.
                                              Другой вопрос, что большинство — не хочет. Ну так и программисты не все думают вне работы.
                                              +2
                                              неумение закрывать рабочую дверь и оставлять работу на работе

                                              Это возможно только с однообразной механической работой.
                                              Пока что в человеке нет переключателя режимов работа/дом/семья/отдых.

                                                –1
                                                Невозможность отключаться называется недисциплинированность ума. Программистам когда-то сказали, что их профессия очень творческая, а они взяли, да и поверили — чисто дети. Но зато это позволяет им в массе продвигать своеобразное понимание дедлайна и оплаты, себе на пользу.
                                                Кто же от такого откажется?!

                                                Такое вот гиперболизированное мнение, сформулированное на личной практике. /тонкий юмор/
                                                0
                                                Вот кстати, еще одна причина, почему так много получаем. Потому что думаем о работе даже когда не за компом.
                                                  0
                                                  У Ричарда Хикки (создателя Clojure) есть отличное видео на эту тему — «Hammock Driven Development».
                                                  +2
                                                  а ещё мы действительно нередко занижаем сроки оценки

                                                  Это замечено еще очень давно.
                                                  Ф. Брукс. «Мифический человеко-месяц».
                                                  Книга издана чуть ли не полвека назад.
                                                    +1
                                                    просыпаешься ты, и совсем не прёт работать
                                                    Важный момент, не упомянутый в статье. Головой работать труднее, потому что починить разум труднее, чем руку или ногу, и способов надломить разум гораздо больше.
                                                    +1
                                                    А если тебе тимлид говорит что ты 3 месяца ничего не делал, тогда как ответить? Он то тоже программист, должен понять :)
                                                      +21

                                                      Тимлиду который говорит это раз в 3 месяца можно ответить что угодно.
                                                      Правильный тимлид задает вопросы о ходе работ чаще.
                                                      Первый: что сделал. Именно с приставкой "с" — Сделал, предъявляемый результат. Один из хороших критериев сделанности — можно дать на допиливание другому разработчику.
                                                      Второй: на чем забуксовал и где надо помочь.

                                                        +6
                                                        А может имеет смысл сразу тимлида спросить, как так вышло что человек в его команде 3 месяца ничего не делал?
                                                          0
                                                          Поверьте, бывают задачи и посложнее чем на 3 месяца простого обдумывания одним человеком.
                                                            +2

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


                                                            Всегда, когда мой человек уходит "в думки", взятие на буксир с разбором полетов и выжимкой из них сделанного сразу ускоряет процесс. К себе, да, тоже такой метод применяю.

                                                              0
                                                              Я не очень понимаю как «взять на буксир» ведущего, когда он зарылся в массиве входящих данных. Что бы просто войти в его контекст нужно потратить те же условные 3 месяца разработчиком не менее сильным, чем ведущей, т.е. удвоить затраты, когда первому может неделя и осталась. Второй разраб тогда только потеряет время, а это очень дорогое время. Второй момент что бы войти в контекст нужно, допустим, изучить некоторую теоретическую/практическую/математическую область, при этом не создав ни одного алгоритма, а приобретая новые навыки. Буксирующий разраб в таком случае на входе может получить три томика по 250 страниц не самой простой документации.
                                                                +2

                                                                Явный признак того, что проблема выше. На задачу выделена малая мощность (один человек) с большим периодом отклика (условные 3 месяца).
                                                                Бить задачу на грубую и мелкую аналитику. 250 страниц скорее всего в виде нескольких разделов. Ведущий разработчик координирует усвоение материала ведомыми, которые помогают переваривать ему этот томик.
                                                                Собственно мы и подошли к еще одному ответу на часть вопроса, почему дорого. Потому что тот, кто умеет решать быстро и качественно (или достаточно качественно для бизнеса), это делает (управляя не только собой), а остальные 3 месяца читают в одно жало 250 страниц документации.

                                                                  +2

                                                                  Чтобы разбить задачу, кто-то все равно должен прочитать эти 250 стрениц, понимать контекст и быть в состоянии адекватно разбить. В противном случае, получим 10 задач, 10-ти разработчикам и всем придется по 250 страниц читать)

                                                                    +1
                                                                    А один хрен всем придется все читать. Как правило работа разработчиков в режиме «тупой исполнитель» на выхлопе ничего путного не дает — получается какой-то нестыкующийся набор пазлов, потому что сделаны задачи бездумно с формальным подходом.
                                                                0

                                                                Ну вот я сейчас по своей недоработе читаю всякие статьи, чужой код и так далее, и так последние пару-тройку. Какой вещественный выхлоп тут можно ожидать? Как тут брать на буксир?

                                                                  0

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


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


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

                                                                    0
                                                                    Соответственно, если бы я брал вас на буксир на работе по такому процессу, то к вам был бы приставлен стажер, которого вы бы учили тому, что осваиваете факультативно.

                                                                    А если это никому не интересно, кроме меня?


                                                                    Ваша цель какая?

                                                                    В данном конкретном случае — понять, как решать одну задачу, которая что-то пока не решается.


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

                                                              0
                                                              В одной компании история была, человеку поставили большую задачу. А потом проект свернули, задача потеряла актуальность. Но сказать об этом ему как-то забыли. В итоге два месяца еще он ее честно пилил.
                                                                0
                                                                У меня была история, как я полгода пилил задачу, а когда отдал на приёмку, оказалось, совсем не то, что нужно было заказчику. На вопрос, что за @#$%^, вам же высылали ТЗ, вы сказали, что всё ок, делаем, ответили: «Ой, а мы этот файл не открывали, мы думали, вы только то, что в письме, просили утвердить»
                                                            +21
                                                            Разрабы работают медленно и дорого, потому что все хотят быстро и дешево.
                                                              0
                                                              А почему результат их работы при этом часто бесплатен?
                                                                +16

                                                                Потому что пользователи думают, что они потребители этого результата, а не товар.

                                                                  0
                                                                  Потребители — товар программиста? Извините, но не понятно.
                                                                    +3

                                                                    Потребители смотрят рекламу, за которую платят рекламодатели. Т.о. софтверная компания продаёт внимание пользователей рекламодателям.

                                                                      0
                                                                      Какую рекламу вы видите, например, при использовании google docs? Телеграма? Eclipse?
                                                                        0

                                                                        тут давеча фильм вышел — "Социальная диллема". Вот вам бы его посмотреть.

                                                                          +2

                                                                          Кроме рекламы есть ещё данные которые с вас собирают. Начиная со статистики и заканчивая ПД.

                                                                            +1
                                                                            Собрали статистику. Чем зарплату платят программистам, презентациями?
                                                                              +4
                                                                              Собрали статистику. Прикинули где вам можно поднять цены чтобы вы и дальше платили. Подняли. Заработали больше денег. Часть отдали программистам.
                                                                                +2
                                                                                Статистику же не просто собирают, чтобы любоваться. Если говорить про гуглы/яндексы, то все эти Воллмарты, Амазоны и прочие ЛуиВиттоны покупают у онлайновых сервисов данные о потребительских интересах за вполне себе весомые деньги.
                                                                                Чем зарабатывает Телеграм в свете того, что TON не взлетел — вопрос открытый. Но чудес не бывает, это же не благотворительный проект, какая-то монетизация у него будет.
                                                                                Eclipse живет на деньги спонсоров. Причём спонсоров, обильно продающих коммерческие решения, как железные, так и софтовые — Oracle, IBM, SAP.
                                                                                  +1
                                                                                  Замечательно! А почему это работает только для ПО? Можно отдав свою статистику Воллмарту, Амазону, ЛуиВиттону без посредника получать их товар бесплатно? Ведь они сейчас её покупают, плюс тратятся на обработку.
                                                                                    +1
                                                                                    Хм. Ну им-то не ваша статистика нужна, а ваши деньги. А статистика — это просто информация о том, с какой стороны к вам лучше зайти, чтобы больше денег собрать.
                                                                                      +1
                                                                                      Ваши данные — не статистика. Данные миллионов — статистика.

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

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

                                                                                      Как только сможете дать Амазону или Воллмарту статистику, получите от них деньги или может на бартер договоритесь
                                                                                        +1
                                                                                        Для грубой прикидки

                                                                                        Ваши данные стоят где-то 1-5% стоимости товаров что вы покупаете (размер скидок по картам лояльности или кешбекам). Предположим, что это 5 рублей в день при тратах 500 рублей в день. Это стоимость данных для самого магазина (не считая системы сбора, хранения и анализа).

                                                                                        Вот тут и вырисовывается рынок, когда мы продадим данные миллиона пользователей по 1 рублю в день
                                                                                          0
                                                                                          Сбор данных в интернете требует постоянных усилий, потому что идёт война защиты и сбора. Собирать напрямую в магазине не проще? И почему фонды спонсируют разработку ПО и раздают его бесплатно, но не производство хлеба или колбасы для бесплатной раздачи и сбора данных? Могли бы шильдики с рекламой на нее клеить.
                                                                                            0
                                                                                            Собирать напрямую в магазине не проще?

                                                                                            И что вы соберёте? Ценность данных возрастает при росте их объёма. Стоимость знания о том, что вы покупаете шампанское в рандомные дни, равна нулю. Стоимость знания того, что перед покупкой шампанского вы переписываетесь со своей любовницей, «бесценна».
                                                                                          +1
                                                                                          Потому что себестоимость лишней копии ПО ничтожна, в отличие от себестоимости палки колбасы.
                                                                                            +1

                                                                                            Почему не работает? Все эти акции формата "заполни анкету и выйграй подарок", скидочные карты, программы лояльности, мобильные приложения магазинов, etc — это вполне себе обмен каких-то ништяков на ваши данные.

                                                                                              0
                                                                                              Замечательно! А почему это работает только для ПО?


                                                                                              Кто сказал «только для ПО»?
                                                                                              Вот вы пришли к… не знаю ЛуиВиттону как постоянный покупатель, получили скидочную карточку и теперь он не тратится на рекламу вам, а просто даёт вам скидку… 1.5-2% от того, что потратил бы на привлечение ;)
                                                                                                0
                                                                                                Вы получили ПО бесплатно. Каждую новую версию — тоже. Это такие же затраты на разработку, покупку средств разработки. Почему же ЛуиВиттон 1% скидка, а ПО, разработку которого ведут высокооплачиваемые специалисты, бесплатно?
                                                                                                  0
                                                                                                  Потому что себестоимость каждой версии ПО, которую вы получаете, меньше чем та прибыль, которую с вас тем или иным способом получает тот кто вам это ПО даёт. А в случае с условным ЛуиВиттон эта прибыль составляет всего 1% от себестоимости изделия.

                                                                                                  Это если совсем грубо.
                                                                                        0

                                                                                        Про эклипс.
                                                                                        Его пилят не только за бесплатно, наверное тем кто оплачивает время части людей, занимающихся его разработкой, выгодно чтобы был некий инструмент разработки и, возможно, выгодно чтобы он был протестирован пользователями и,, возможно, выгодно чтобы на рынке было много людей, которые умеют этим инструментом работать.

                                                                                          0
                                                                                          Вы бы платили разработчикам раздавая результат бесплатно? Как долго? ОК, есть войны за завоевание рынка, а дальше? Отсутствие конкуренции и деградация после того, как остался один выживший?
                                                                                            0
                                                                                            Ваш вопрос слишком общий, для начала хороши бы понять чью роль на себя мне нужно примерить :)
                                                                                            А так, в общем, я бы занимался монополизацией рынка а конкуренцию бы устраивал уже внутри своей компании (по сути некоторые гиганты этим и заняты, на мой взгляд). Ведьлюди могут разрабатывать любое по, главное чтобы оно работало в моей операционной системе, запущенной на моём железе и использовало мою СУБД, и не за бесплатно и не могло быстро срулить :)
                                                                                              0
                                                                                              Эклипс живёт за счёт платных саппорта и кастомизации. Бесплатная версия это «рекламная кампания» чтобы подсадить побольше людей на эклипс в надежде что кто-то из них заплатит за те самые саппорт и кастомизацию.
                                                                                                0
                                                                                                Вы бы платили разработчикам раздавая результат бесплатно? Как долго?

                                                                                                Если в базовой версии он раздаётся бесплатно, а с дополнительными энтерпрайз-фичами — продаётся по пять-шесть тысяч долларов за лицензию с подпиской на год для одного разработчика, как, например, Eclipse у IBM (одного из основных спонсоров проекта), то почему бы и нет?
                                                                                            0
                                                                                            А можно также не платить за хлеб в магазине, ведь вы отдаёте магазину свои данные?
                                                                                              +1
                                                                                              Можно платить меньше. Что часто и происходит.
                                                                                                0
                                                                                                Только на ПО не скидка, оно бесплатно. А программисту надо платить зарплату, покупать ему оборудование и софт.
                                                                                                  +3

                                                                                                  Ну так ПО и скалируется/копируется практически бесплатно. В отличии от хлеба.

                                                                                                    0
                                                                                                    Тогда бы не держали штат программистов, которые постоянно его правят, и службу поддержки. И всё это стоит денег.
                                                                                                      0

                                                                                                      Ну так деньги то им платят. За информацию о вас. Или за рекламу.

                                                                                                0
                                                                                                «Кто платит тот и заказывает музыку» — спросите в магазине.
                                                                                                  0
                                                                                                  Ну, это хоть как-то объясняет почему пользователю приходится мириться с плохо работающим ПО :)
                                                                                        +26
                                                                                        Не согласен с изложенным. В изложенном точка зрения программиста. Если чуть чуть оторваться и посмотреть сбоку, то можно заметить что большинство программистов:
                                                                                        — пытаются решить проблемы которые не нужно решать, которые никогда не возникнут, а даже если и возникнут то их всё равно придется решать по другому
                                                                                        — делают звездолет вместо простых решений
                                                                                        — делают крутую архитектуру вместо фичей. Архитектура почему-то всё равно в итоге разламывается (никогда такого не было и вот опять)
                                                                                        — делают ненужную оптимизацию не там где узкие места а потому что «ну это же не оптимально так писать — оно тормозить будет»
                                                                                        — страдают НИХ синдромом
                                                                                        — считают что их код и архитектура красивая, продуманная, крутая и вообще непогрешима, а чужой код и чужая архитектура ужас, кто это писал, как так можно было, руки поотрывать
                                                                                        — одни считают что алгоритмы не нужны и вообще я так справлюсь и пишут лагающую жесть там где можно просто взять подходящую структуру
                                                                                        — другие считают «я тут крутой алгоритмист, сделаю так так и так и вообще покрутому» и пофиг что тут не нужно крутое, что никто кроме него потом это не поймет и запарится поддерживать
                                                                                        — не интересуются бизнесом, не понимают откуда берутся задачи, зачем они вообще пилят то что пилят

                                                                                        Очень много хайпа в IT, фреймворки и прочее — это по большей части отговорки, в других профессиях люди учат действительно сложные вещи и не ноют, а здесь «ой, у нас новый фреймворк, нейронов в мозге мало». Проблема в низкой квалификации, лени, и не желании повышать свой уровень и развиваться, ибо «а че если мне 300К за перекладывание байтов из базы во фронт платят, можно и дальше новый фреймворк ковырять и ныть на хабре».
                                                                                          +14
                                                                                          Про то, что большинство программистов делают перечисленные ошибки, я согласен, а вот насчет остального…

                                                                                          Сколько по вашему разработчик должен тратить личного времени на самообразование в свободное от работы время, чтобы не считаться ленивым? По 500-1000 неоплачиваемых часов в год на самообразование мне кажется тратит каждый второй.
                                                                                          Насчет развития — если человек развивается в направлениях, которые не относятся к работе, это тоже лень?)

                                                                                          Вообще, это работа нужна для того, чтобы улучшать качество жизни, а не жизнь нужна, чтобы улучшать качество работы)
                                                                                            +1
                                                                                            Просто так сложилось что даже низкокачественная слепленная фиг пойми как система даёт бизнес эффект, успешно автоматизируя / развлекая / etc.
                                                                                            Там где в других областях требуется длительное обучения фундаментальным вещам, зрелость людей в профессиональном и личностном плане и т. д. разработка софта всё прощает. Научился делать hello world и го в продакшен фигачить.
                                                                                            Это не синдром самозванства, это и есть low skill, просто cпрос на этот low skill превышает предложение, это не делает low skill чем то другим.
                                                                                              +2
                                                                                              Ну, я не в курсе, где спрос на low skill превышает предложение. Может в низкобюджетном фрилансе или совсем мелких конторах, где на готовых скачанных темплейтах простые проекты фигачат. Я знаю десятки компаний в своем городе, но ни одной такой.
                                                                                              Возьмем для примера веб-направление. Только фронт, без бека. Самый простой способ новичку устроиться в какую-нибудь компанию — пройти отбор на стажера, потом пройти отбор среди стажеров по результатам испытательного срока в 3 месяца. За эти 3 месяца помимо азов (язык, структуры, алгоритмы, базовое понимание ООП), которые уже знал, минимум нужно будет учиться работать с системой контроля версий в команде, таск трекером, знакомится с правилами написания чистого кода, с HTML, CSS, CSS препроцессорами, кроссбраузерной версткой, Bootstrap, Webpack, c NPM или YARN, линтерами, JS, AJAX, REST, Jest, фреймворк-ом. В качестве фрейморка возьмем, например, React. Тогда к списку добавляется JSX, Redux, Redux Saga или Thunk, Reselect, React Router, какой-нибудь плагин для форм, плагин для таблиц. И вот это минимум начинающего джуниора за зарплату где-то в 30к.

                                                                                              Не буду отрицать, что для перекидывание данных с бека на страницы — это перебор. Но, так уж вышло. Чтобы работать фронтендером в какой-нибудь компании, сейчас нужно знать хотя бы это.
                                                                                                +3
                                                                                                … а потом они говорят что фронтэнд не переусложнён, когда в подавляющем большинстве случаев достаточно было бы просто html + css (и иногда ajax из чистого жса, если действительно нужна динамика)
                                                                                                  +3
                                                                                                  пользователю уже не достаточно просто сухих страниц с информацией, он хочет интерактивности, платой за которую является весь тот ворох технологий, который выше перечислили.

                                                                                                  точнее пользователю нужна интерактивность -> разработчик не хочет страдать от лапшевидного кода и императивного управления dom (плюс на него давит бизнес «фича нужна была неделю назад») -> разработчик берет более удобное -> вес итоговой сборки больше, выполняется на клиенте дольше -> пользователь мирится с тормозами в обмен на интерактивность
                                                                                                  +3
                                                                                                  Ну, я не в курсе, где спрос на low skill превышает предложение. Может в низкобюджетном фрилансе или совсем мелких конторах, где на готовых скачанных темплейтах простые проекты фигачат. Я знаю десятки компаний в своем городе, но ни одной такой.

                                                                                                  Ну я работал программистом (в основном на C++) вместе с кусочками дата сайентиста.


                                                                                                  Контору, где я мог бы по полной применить свои навыки плюсов, пришлось отдельно искать (и на 100% я не был загружен даже в том месте, которое в итоге нашёл). И это, кстати, была не крупная контора уровня фаанга, а мелкая тусовка HFT-шников на десяток программистов и десятка три трейдеров-аналитиков. Среднее собеседование в околофаанг — «напишите свой auto_ptr».


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

                                                                                                  +3

                                                                                                  Если бы сидели за делом только high skill профессионалы, у вас был бы мир супер дорогой разработки, и кучи нерешенных проблем, большей части веба и приложений не было бы, потому что умные ребята вместо того чтобы сделать инструмент (архитектуру, абстракцию, либу, фремворк) снижающий порог входа и стоимость разработки — делают фичи, которые нужные здесь и сейчас. А у бизнеса никогда почти нет времени и денег на исследования, им лучше чтобы 10 идей попробовали, вот только те кто понял это и начали делать так, чтобы потом 10 идей эти не пришлось с 0 писать.
                                                                                                  Весь бизнес мог бы помолчать и многое простить программистам как профессии, за то что есть opensource который вобще не про бизнес, но в итоге решает его задачи. И что-то я не вижу примеров подобного в других областях где


                                                                                                  требуется длительное обучения фундаментальным вещам, зрелость людей в профессиональном и личностном плане и т. д.

                                                                                                  люди в целом закрываются, живут идеей или деньгами, и поэтому даже такая молодая тема как ИТ выдает множество решений, а где-то так и стоим в лыжи обутые, как в науке например, и как-то дальше не лучше. И в итоге, применяя продуманные идеи из ИТ, получаются даже инновации в других областях, даже если внедрено 0.01% от возможного, посмотрите как меняют мир коммуникации, ИИ в разных областях, криптовалюта и тд.

                                                                                                  +3
                                                                                                  По 500-1000 неоплачиваемых часов в год на самообразование мне кажется тратит каждый второй.

                                                                                                  У меня есть впечатление, что гораздо меньше. Даже 500 часов в год — это уже 10 часов в неделю вне работы. Большинство людей, с которыми я имел честь работать, не тратят столько времени. Да и на хабре так часто рассказывают про семью-детей-хобби-вне-работы, что не верится, что люди тратят много времени вне работы.

                                                                                                    0
                                                                                                    Может я и переборщил с количеством. Но в первые годы работы или при смене работы/стека приходиться довольно много тратить на самообразование.
                                                                                                    В самообразование я также включаю изучение английского, чтение книг по какому-нибудь менеджменту, пет проекты (если что-то новое по ходу применять), чтение статей, прослушивание подкастов, посещение конференций.
                                                                                                      0
                                                                                                      Так это на любой работе сложнее конвейера так. Ну если амбиции есть, конечно.
                                                                                                  +17
                                                                                                  Если теперь посмотреть с другого бока, то можно заметить что:
                                                                                                  — Бизнес со своей стороны выдумывает проблемы, которые в данный момент не нужно решать и которые не факт, что когда-нибудь возникнут.
                                                                                                  — Пытается продумать продукт наперед во всех деталях, заранее усложняя его дальнейшее развитие. Тот самый звездолет, что вы описали. Из этого пункта также следует развал абсолютно любой архитектуры.

                                                                                                  в других профессиях люди учат действительно сложные вещи и не ноют

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

                                                                                                  — делают ненужную оптимизацию не там где узкие места а потому что «ну это же не оптимально так писать
                                                                                                  — страдают НИХ синдромом


                                                                                                  с этим согласен

                                                                                                  — считают что их код и архитектура красивая, продуманная, крутая и вообще непогрешима, а чужой код и чужая архитектура ужас, кто это писал, как так можно было, руки поотрывать

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

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

                                                                                                    Редко встречал ноющих ученых или ноющих бизнесменов.
                                                                                                      0

                                                                                                      Вы то кем работаете?


                                                                                                      организовать коммерчески успешное предприятие.


                                                                                                      Не так и сложно. ИП можно открыть бытовой химии или кормов для животных. Будет успешно, но не так много денег.

                                                                                                        +8
                                                                                                        организовать коммерчески успешное предприятие. Не так и сложно. ИП можно открыть бытовой химии или кормов для животных.

                                                                                                        Сразу видно человека, который не пробовал это сделать, и о предпринимательстве знает понаслышке.

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

                                                                                                            Или наоборот, думает всю жизнь "это не моё", пока не приспичит.

                                                                                                              +2
                                                                                                              Не боги горшки обжигают. Потратьте на предпринимательство столько же лет, сколько занимаетесь программированием, и результаты будут


                                                                                                              Читал/слышал об успешных предпринимателях — сколько у них было неудач.

                                                                                                              Лично знаю про родственницу — бултыхалась в бизнесе с переменным успехом лет 20.

                                                                                                              Куча прогоревших проектов. Квартиру, заложенную под кредиты под бизнес, отдала банку. Жила в съемных. На старости лет это неудобно.

                                                                                                              И вот спустя 20 лет усилий — очередной её бизнес-прожект выстрелил. И как выстрелил! Квартиру себе новую купила (без ипотек) за полгода.
                                                                                                                +1

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

                                                                                                                  +2
                                                                                                                  Возможно (без обид), что у вашей родственницы было огромное желание «заниматься бизнесом», но совершенно не было способностей, скажем так. Тоже ведь бывает.


                                                                                                                  Она смеется над вами с берегов Испании, где у неё сейчас домик. Один из домиков.

                                                                                                                  Ключевая особенность для бизнеса — настойчивость.

                                                                                                                  Это вам и Роберт Кийосаки подтвердит.
                                                                                                                  У него там так и написано хочешь быть богатым — тебе нужна «железная жопа». Сидишь и занимаешься бизнесом. Делаешь как бы не было лениво, нудно, грустно…
                                                                                                                    0

                                                                                                                    Сначала вы написали про квартиру без ипотеки, потом это уже стало "смеётся с Канарских островов", потом это стало "один из домиков на берегах Испании".
                                                                                                                    Вы там определитесь, пожалуйста, где живёт ваша родственница.
                                                                                                                    В любом случае, вы сами написали, что в её успехе был сильный фактор случайности – "спустя 20 лет очередной бизнес выстрелил".

                                                                                                                      +1
                                                                                                                      Сначала вы написали про квартиру без ипотеки, потом это уже стало «смеётся с Канарских островов», потом это стало «один из домиков на берегах Испании».


                                                                                                                      Я привел пример скорости роста её дохода после удачи.

                                                                                                                      Или, когда вам выпадают деньги, вы покупаете только ровно одну вещь, пусть и дорогую, и на этом останавливаетесь? Несмотря на то, что бизнес работает и деньги капают?

                                                                                                                      В любом случае, вы сами написали, что в её успехе был сильный фактор случайности – «спустя 20 лет очередной бизнес выстрелил».


                                                                                                                      Ну как случайность…
                                                                                                                      Если опустить руки через 19 лет — можно сказать, не повезло.
                                                                                                                      А если стараться 20 лет, то это уже не одна случайность. Но и ваша настойчивость.
                                                                                                                      0

                                                                                                                      У Кийосаки бизнес по продажам книг и тренингов по ведению бизнеса. Никакого реального предпринимательского у него нет. Как и опыта инвестирования. Мне казалось, что уже все в курсе, но нет.

                                                                                                                        0

                                                                                                                        Продажа книг и тренингов нереальное предпринимательство?

                                                                                                                          0
                                                                                                                          Вполне реальное, но это не та область, в которой, он утверждает, что имеет реальный опыт. Недвижимость, финансовые рынки и пр. Проще говоря — он врет.
                                                                                                                    +1
                                                                                                                    Квартиру купила — теперь есть что заложить под новый бизнес-проект )
                                                                                                                    Процесс-то продолжается.
                                                                                                                      +1
                                                                                                                      Квартиру купила — теперь есть что заложить под новый бизнес-проект )
                                                                                                                      Процесс-то продолжается.


                                                                                                                      Не-а.
                                                                                                                      Она решила на пенсию уже пора.
                                                                                                                      Денег хватит до конца жизни.
                                                                                                                      И детям тоже.
                                                                                                                      Сейчас бизнес передан в руки сына.
                                                                                                                      Она отдыхает.
                                                                                                                      Ну и советы дает иногда.
                                                                                                                      +2

                                                                                                                      А сколько подобных "бизнесов" не выстрелило?

                                                                                                                        +1
                                                                                                                        А сколько подобных «бизнесов» не выстрелило?


                                                                                                                        Это совершенно нормально.

                                                                                                                        Если вы хотите гарантий — то вам не в предпринимательство, а именно что в работу по найму. Гарантирована зарплата.

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

                                                                                                                Довелось мне как-то наблюдать за работой двоих геодезистов в офисе. Сидели ребята перед монитором, а на экране было полно черных точек, линий, букв и разнообразной штриховки.


                                                                                                                И они, что-то бубня, водили мышкой по экрану, добавляли точки, проводили новые линии и добавляли буквочки.


                                                                                                                Я минут пять смотрел на эту магию, а потом спросил "Ребята, как вы в этом разбираетесь?".


                                                                                                                Они посмотрели на меня и спросили: "А как ты в том, как делать сайты разбираешься? Мы вот попробовали и нихрена ваще не поняли".


                                                                                                                Я ответил: "Ну там же все просто..."


                                                                                                                "Так и у нас всё просто", ответили мне ребята и попробовали объяснить....


                                                                                                                … Разумеется, я ни хрена не понял. Чтобы худо-бедно разбираться в этой магии — нужно хотя бы 4 года отучиться на геодезии и картографии и посещать все практикумы.


                                                                                                                Такие дела.

                                                                                                                  +1

                                                                                                                  Да нет, в прикладной геодезии действительно не так много сложного, и практикум по топографии студенты сдают уже после первого курса. Там не требуется ничего такого, с чем программист или, шире, инженер, не сможет разобраться. Помню, вел переписку по работе с субподрядчиками, пытаясь доказать, что у них ошибка в каталоге координат. На том конце провода уже скатились до доводов вида "я 30 лет в геодезии!" (дословно), но еще через пару итераций признали ошибку и выслали исправленный вариант.


                                                                                                                  PS это не отменяет того, что высшая геодезия — это весьма сложная наука, но ей и занимаются совершенно другие люди, не "геодезисты в офисе".

                                                                                                                    +1

                                                                                                                    Кхм, простите, а где надо заниматься высшей геодезией? А чего офис не угодил? Ну, вот, скажем, если председатель РАН сидит в офисе – он тоже ерундой низкопробной занимается, получается?

                                                                                                                      –1

                                                                                                                      Вот так и знал, что кто-нибудь прицепится к словам. По-моему, из контекста с высокой долей достоверности следовало, что автор комментария общался именно с прикладниками.

                                                                                                                        0

                                                                                                                        Простите, а программисты в офисе прям все сложное делают? Сложное делают единицы — основная клепает простые формочки :)

                                                                                                                      +1
                                                                                                                      Там не требуется ничего такого, с чем программист или, шире, инженер, не сможет разобраться.

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


                                                                                                                      Ну и, если каталог координат еще постижим разумом программиста/инженера, то "как нарисовать топографический план на основании данных трех топосъёмок" — тайна тайн. Даже при наличии софта.


                                                                                                                      Этому, всё таки, пять лет учат.

                                                                                                                        0

                                                                                                                        Увы, но вот как раз-таки этому не учат. Это искусство, которое постигают на практике. Но тут дело такое — каждый исполнитель может свести данные по-своему, и уровень мастерства определяется степенью правдоподобности: углы у зданий прямые, горизонтали лежат ровненько и не пересекаются и т. д. Здесь нужен тренированный глаз и практика, но какой-то фундаментальной сложности нет. А каталоги координат наоборот — на вид цифры и цифры, что в одной системе координат, что в другой, но поскольку вся топосъемка опирается на них, то маленькая ошибка в каталоге может иметь очень большие последствия потом, когда результаты съемки не будут сходиться.

                                                                                                                      +8

                                                                                                                      Проработал три года геодезистом после пары лет работы эникейщиком/сисадмином/немного программистом после института в геодезической конторе.
                                                                                                                      Двух- трехкратное увеличение зарплаты занесло меня на путь геодезии.
                                                                                                                      Могу сказать, что все это становится просто после пары месяцев "вкатывания". Нет там ничего сложного, кроме горы всяких СНиПов.
                                                                                                                      При этом я единственный писал точки съёмки в память тахеометра и скачивал их потом с тахеометра в рабочий софт, а не писал их на листочке и перебивал вручную. Разобрался и научил других работе в RTK на GPS, написал кучу полезных скриптов для автокада и освоил высотную съёмку с формированием правильных чертежей.
                                                                                                                      Это всего лишь подход, когда ты стремишься понять, что ты делаешь, а не запоминаешь последовательность нажатия кнопок.
                                                                                                                      Все как в программировании: самообразование, гугл, обдумывание. Никто из коллег этим себя не утруждал. И профильное образование им не помогало.


                                                                                                                      Кстати, хоть и считаю ошибкой тот выбор в пользу геодезии, с ностальгией вспоминаю некоторые моменты той работы. Романтики выездов на объекты не отнять.

                                                                                                                        +2

                                                                                                                        Ну разумеется :)


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

                                                                                                                      +2
                                                                                                                      Байты перекладывать — легко. А, к примеру реальную научную статью написать и привнести что-то новое (да хотя бы просто понять чужую)

                                                                                                                      Тут момент очень важный, между «Байты перекладывать» и «научную статью написать» (10% всего IT), остается как раз «да хотя бы просто понять чужую» — 90% спроса и предложения на рынке труда.

                                                                                                                      К сожалению по незнанию у нас очень много людей, которые еще раз симфонию Баха сочинили. С одной стороны хорошо что есть соображающие люди, с другой стороны сними невозможно работать. И уж совсем плохо когда прописные истины выдают за «творение твоего гения». И те и другие разбавляют 90% подходящих кандидатов и работодателей.
                                                                                                                      «ой, у нас новый фреймворк, нейронов в мозге мало»

                                                                                                                      Да все эти фреймворки на одно лицо, берешь исходники с мануалом и не отрываясь от реализации используешь уже знакомое или более подходящее. Я вот от работодателей чаще стоны слышу, когда в твоем списке знаний нет подходящего (переименованного) названия. Сами по себе фреймворки сейчас — это не столько новый функционал, сколько перепись для удобства старого. Имея фундаментальные знания, разобраться в них не проблема. Поэтому такое нытье тожк может быть двояко, с одной стороны это отсутствие фундаментальных знаний, с другой нежелание менять шило на мыло.
                                                                                                                        +1
                                                                                                                        Байты перекладывать — легко.

                                                                                                                        Ну это тоже от некоторых дополнительных условий зависит, тащем-та. То-то у нас на последней работе в одной комнате собиралось с полторы дюжины умных людей, две трети из которых минимум с PhD, и обсуждали, как бы эти байты перекладывать получше да побыстрее.


                                                                                                                        А, к примеру реальную научную статью написать и привнести что-то новое (да хотя бы просто понять чужую) — сложнее.

                                                                                                                        Привнести что-то новое — сложно, а статью написать — легко. Даже цитируемую статью написать легко.


                                                                                                                        Блин, у меня больше всего цитирований у моей статьи 2011-го года, которую я писал на третьем курсе в рамках курса на базовой кафедре, где мы по большому счёту учились, собственно, писать статьи (чтобы структура, библиография, поиск литературы, латех, рецензирование друг друга), и которая больше похожа на реферат, а не на нормальную статью.


                                                                                                                        Стыдоба.

                                                                                                                          0
                                                                                                                          Под написать статью я имел ввиду реальный SOTA с новизной, а не то что у нас там принято.
                                                                                                                            +3

                                                                                                                            Но современный мир устроен так, что на SOTA с новизной всем плевать, а не плевать на публишабельность.


                                                                                                                            Скрытый текст

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

                                                                                                                              0
                                                                                                                              Никому не плевать. Полезную новизну сделать сложно — нужно выбрать правильное направление куда копать, упорный труд, хай скилл, да ещё и везение. А признание и зачастую внедрение получают достаточно быстро. Недавние (условно) примеры из CS — CNN или Attention, из биологии CRISP/CAS, да и в других областях тоже прогресс есть. Только двигают его не перекладыватели байт а настоящие ученые.
                                                                                                                                +2

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


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

                                                                                                                          +1

                                                                                                                          А я немного занимался наукой, потом бросил и стал программистом. И знаете, я не скажу что программировпть проще. Да большинство задач которые мы решаем простые по сути, но они решаются при помощи очень сложного устройства (ЭВМ), а методы разработки еще далеки от стабилизации. В результате куча сил уходит на то что-бы разбираться в нюансах всего этого зоопарка технологий с которыми приходится иметь дело. А что-бы быть в состоянии в них разобраться, надо немного понимать как работает то самое ЭВМ и весь софт на нем, а вот это уже действительно сложно.

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

                                                                                                                          Не самый худший бизнес, кстати. Мне кажется, чаще встречается вариант, когда бизнес понятия не имеет что делать дальше и в какую сторону развиваться. И именно от этого и разваливается архитектура, потому что в начале строили звездолет, потом подсмотрели что у конкурента в соседнем ларьке хорошо продаются подводные лодки, а потом увидели в новостях о заморском стартапе, который заработал миллиард на <что-то совсем другое>. И вот так и живет проект в постоянных метаниях.
                                                                                                                          +3
                                                                                                                          в других профессиях люди учат действительно сложные вещи и не ноют

                                                                                                                          Мне кажется, сложность в IT в том, что здесь приходится иметь дело с колоссальным объёмом колоссальных абстракций. Какой-нибудь, скажем, химик-технолог может знать целую вселенную про производство бздюлек из полимергептилфреона, но там есть изрядная, скажем так, наглядность (не путать с визуализацией), логичность, прямота и линейность знаний и массивов информации. Тут же – абстракция на абстракции, абстракцией погоняет. Математики ближе всех, как мне кажется.

                                                                                                                            +9
                                                                                                                            Математики ближе всех, как мне кажется.

                                                                                                                            Вот как бывший математик, возражу, в программировании крайне мало общего с математикой. Программирование по духу куда ближе к современной электротехнике или чему-то подобному. Куча всяких разнородных финтифлюшек от разных вендоров, причем от одного вендора обычно друг с другом стыкуются, а от разных — как повезёт, но нередко приходится обрабатывать напильником. И конечный результат надо набирать из этих финтифлюшек, соединяя их нехитрыми алгоритмами.
                                                                                                                              +3
                                                                                                                              В программировании с математикой бывает по-разному, и есть технологические ниши где ее предостаточно (вот например то, что будет в ближайшем мажорном релизе GHC — arxiv.org/pdf/1710.09756.pdf). Там где ее больше, интерфейсы страдают от плохой согласуемости меньше. Проблема в том, что в индустриальном программировании математически-ориентированный подход к решению бизнес-задач, к сожалению, считается плохим тоном и элитизмом, потому что дефолтный Engineering Manager мыслит категориями «мало кто осилит» и «если Васю-математика собъет автобус, нам будет дорого нанять десять других математиков, чтобы во всем разобраться». Проблема во-многом надуманная и раздутая до размеров слона, но такова реальность индустрии.
                                                                                                                                +3
                                                                                                                                В программировании с математикой бывает по-разному,

                                                                                                                                Да это уже сказано-пересказано по десять раз на каждом программистском сайте. Но это частные случаи, связанные с предметной областью. Где-то в программировании есть математика, где-то химия, где-то экономика.
                                                                                                                                Проблема в том, что в индустриальном программировании математически-ориентированный подход к решению бизнес-задач, к сожалению, считается плохим тоном и элитизмом,

                                                                                                                                А разве есть такая проблема? Простой и понятный код, решающий какую-либо задачу, и вписывающийся в требования по производительности, ресурсоёмкости, всяко лучше сложного и непонятного кода, решающего ту же задачу. Поэтому математико-ориентированный подход к решению задач, которые успешно решаются последовательностью простых операций, это действительно дурной тон. Классический пример — бухгалтерия. Это простая фиксация фактов и арифметические операции, в основном, сложение. Но регулярно всплывают учёные, которые пытаются что-то соорудить на основе формул, которые позволяют быстро выводить бухгалтерские итоги без множества операций сложения. Причём абсолютно искренне считая, что они решают какую-то проблему бухгалтерии.
                                                                                                                                  +1
                                                                                                                                  Да это уже сказано-пересказано по десять раз на каждом программистском сайте. Но это частные случаи, связанные с предметной областью. Где-то в программировании есть математика, где-то химия, где-то экономика.


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

                                                                                                                                  А разве есть такая проблема? Простой и понятный код, решающий какую-либо задачу, и вписывающийся в требования по производительности, ресурсоёмкости, всяко лучше сложного и непонятного кода, решающего ту же задачу.


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

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

                                                                                                                                  Классический пример — бухгалтерия. Это простая фиксация фактов и арифметические операции, в основном, сложение.


                                                                                                                                  Сложение в бухгалтерии тоже бывает нетривиальным. Что с чем можно складывать? В какой системе счисления работает валюта данного экономического региона (не везде она десятичная) и как нам конвертировать транзакции из валют других стран? Да и сам учет в двойной записи подразумевает, что в этой предметной области нужно уметь отделять множество правильных последовательностей операций от множества неправильных последовательностей, которые несут в себе финансовые издержки для бизнеса. Как нам закодировать эти множества максимально точным образом и возможно ли это в принципе — это вопрос, который уже достоин некоторых математических абстракций, которые было бы очень неплохо перенести в код без потери точности.
                                                                                                                                    +3
                                                                                                                                    Пример с GHC я привел как инструмент общего назначения, не зависящий от предметной области

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

                                                                                                                                    Давайте возьмем критерий, имеющий практичную ценность: легкость, с которой случайный программист с улицы читает некий код. Этот критерий вполне объективен и логичен.
                                                                                                                                    И математические абстракции нам в этом помогут.

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

                                                                                                                                    Я вам могу достаточно уверенно сказать, что ни одной из перечисленных вами проблем в бухгалтерии нет вообще ни в каком виде :) Не существует учетных систем, которые работают не с десятичными системами счисления, равно как и не существует потребности в них. Не существует вопроса, как конвертировать транзакции из валют других стран, т.к. правила конвертирования валют регламентированы. Если даже повезло работать в стране, где нет жесткого государственного регламента, у вас все равно будет или МСФО, или корпоративный регламент.
                                                                                                                                    Как нам закодировать эти множества максимально точным образом и возможно ли это в принципе — это вопрос,

                                                                                                                                    Вот это замечание я вообще не понял. Любой учёт, и бухгалтерский в том числе, это просто фиксация фактов, в их оригинальном виде. Кодировать эти множества надо так, как есть, там нет никаких вопросов и недопониманий, ну кроме возможных расхождений в законодательстве вида «Амортизацию сепулек стоимостью от 5000 рублей отражать на счете 0245», и в другом подзаконном акте «Амортизацию всех сепулек необходимо отражать на счете 0250». И вот думай, как тебе правильно её отражать. Но математика-то тут вообще не причём.
                                                                                                                                      0
                                                                                                                                      Я вам могу достаточно уверенно сказать, что ни одной из перечисленных вами проблем в бухгалтерии нет вообще ни в каком виде :) Не существует учетных систем, которые работают не с десятичными системами счисления, равно как и не существует потребности в них. Не существует вопроса, как конвертировать транзакции из валют других стран, т.к. правила конвертирования валют регламентированы. Если даже повезло работать в стране, где нет жесткого государственного регламента, у вас все равно будет или МСФО, или корпоративный регламент.


                                                                                                                                      Как ни странно, основная сложность не описать регламенты. Сложность возникает когда необходимо учесть все возможные взаимодействия между процедурами, при этом добиться того чтобы данные во всех взаимодействиях оставались верными.
                                                                                                                                        0
                                                                                                                                        т.к. правила конвертирования валют регламентированы.
                                                                                                                                        так и кем же регламентированы правила конвертирования пары тугрика к австралийскому доллару для российского потребителя?
                                                                                                                                        Если даже повезло работать в стране, где нет жесткого государственного регламента
                                                                                                                                        Или если не повезло, вот тут как посмотреть… Ибо жесткий регламент вполне может жестко противоречить самому себе, со всей вытекающей ответственностью за несоответствие.
                                                                                                                                        или корпоративный регламент
                                                                                                                                        а вот тут «беги, форест, беги» ) потому что этот регламент окажется днищем из днищ.
                                                                                                                                        И вот думай, как тебе правильно её отражать. Но математика-то тут вообще не причём.
                                                                                                                                        Дожил до седин и вот нате вам!
                                                                                                                                        Амортизация сепулек на разных счетах может идти по разным алгоритмам, с разными суммами и периодами амортизации и в зависимости от прогнозируемой налоговой нагрузки по прибыли может таки влиять на динамику этой самой налоговой нагрузки в текущем моменте. (это мы про амортизацию сепулек, с НДС интересней замуты). И вот в холдинге расчет оптимальных алгоритмов (счетов в данном случае) списания это вполне себе поиск экстремума функции численными методами (а с НДС все веселее).

                                                                                                                                        //ну и вот так понизить всех бухгалтеров до «фиксаторов фактов», не, я то понимаю что подавляющее количество бухов не может даже тупо зафиксировать факты, но все же встречаются и между ними те, кто считает что суть их работы это поиск оптимального варианта фиксации фактов в целях, определенных уставом/руководством…
                                                                                                                                          0
                                                                                                                                          так и кем же регламентированы правила конвертирования пары тугрика к австралийскому доллару для российского потребителя?

                                                                                                                                          Для российского — Центробанком РФ. Учитывать и тугрики, и австралийские доллары в бухучёте РФ вы будете в рублях. Да и в любой другой бухгалтерской системе у вас будет базовая валюта, в которой будет вестись учёт.
                                                                                                                                          И вот в холдинге расчет оптимальных алгоритмов (счетов в данном случае) списания это вполне себе поиск экстремума функции численными методами (а с НДС все веселее).

                                                                                                                                          Эээ, вы точно это когда-то делали? Какой, к лешему, «экстремум численными методами» в задаче «пройтись по книге ОС и выбрать по некоторым другой метод амортизации (из аж пяти возможных, или даже трёх, если МСФО), который даёт меньшую налоговую нагрузку в текущем периоде»?
                                                                                                                                          встречаются и между ними те, кто считает что суть их работы это поиск оптимального варианта фиксации фактов в целях, определенных уставом/руководством…

                                                                                                                                          Я это прекрасно понимаю, а ещё в бухгалтерии бывают очень важны софтскиллы, владение законодательством на уровне юриста и так далее, но вот математика там нужна на уровне простой арифметики, и не выше. Что-то посложнее на предприятии есть, но это уже управление запасами, логистика, планирование, а не бухгалтерия.
                                                                                                                                            0
                                                                                                                                            Эээ, вы точно это когда-то делали?
                                                                                                                                            бл*буду! и были вещи и посложнее: свести к минимуму НДС, прибыль, распределение кредиторских и дебиторских задолженностей и распределения активов у участников холдинга на ограниченном железе за очень ограниченное для таких задач время при расчете сотен тысяч документов. Вы то думаете что первичку принесли и это «незыблемое дано». А первичку то можно сгенерить, и не один раз. Бумага терпит. Но это, впрочем, не главное.

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

                                                                                                                                            UP: и за наличие таких вот формул по счетам, позволяющим получить итоги пусть хоть и с приблизительной точности кое кто в холдинге где вся первичка между участниками генерится в целях оптимума прибыли довольно много бы дал. Потому что одно дело прогнать «простыми операциями, в основном сложения» пять итераций на имеющимся железе и выбрать из них оптимальную, или сгенерить всю прикидочную матрицу возможных вариантов документооборота по прикидочным же формулам и выбрать для конечного варианта лучшие условия. Это был бы уже следующий уровень управления/планирования.
                                                                                                                                              0
                                                                                                                                              бл*буду! и были вещи и посложнее: свести к минимуму НДС, прибыль, распределение кредиторских и дебиторских задолженностей и распределения активов у участников холдинга на ограниченном железе за очень ограниченное для таких задач время при расчете сотен тысяч документов.

                                                                                                                                              Я верю, что вы это делали, но как по мне, вы просто забивали гвозди микроскопом, если речь идёт про амортизацию. Искать экстремумы численными методами — это если у вас есть функция с несколькими переменными. Амортизационная нагрузка же формируется как сумма дискретных величин, никак друг от друга не зависящих. Пройтись по ним в цикле, выбирать минимальные до тех пор, пока итоговая сумма не достигнет желаемого значения. Это секундная задача для компьютера, даже если у вас там тысячи ОС и по каждому ведется своя книга амортизации лет на пять.
                                                                                                                                              Вы то думаете что первичку принесли и это «незыблемое дано».

                                                                                                                                              Как и любой человек, который не раз автоматизировал отечественные предприятия, я ничего подобного не думаю, естественно. Но оно в общем-то тоже без математики обычно делается :)
                                                                                                                                    0
                                                                                                                                    (вот например то, что будет в ближайшем мажорном релизе GHC — arxiv.org/pdf/1710.09756.pdf)

                                                                                                                                    Тут довольно иронично, что это достаточно прикладное описание, и до хардкорной линейной логики а-ля Жирар со всеми этими coherence spaces ему далеко.


                                                                                                                                    По крайней мере, папир на линейный хаскель легко читается перед сном, а P&T лично я с первого захода не осилил — матана не хватает.

                                                                                                                                      0
                                                                                                                                      Собственно, посыл был именно в том, что с математикой в программировании по-разному, и это даже не доменная область, а тулинг общего назначения. Кто-то будет это читать перед сном и считать это беллетристикой, кто-то будет рассказывать что ничего кроме simple haskell не нужно, а кому-то дженерики не нужны, потому что кодогенерация.
                                                                                                                                      0
                                                                                                                                      нам будет дорого нанять десять других математиков, чтобы во всем разобраться». Проблема во-многом надуманная и раздутая до размеров слона, но такова реальность индустрии


                                                                                                                                      Не так. Сейчас нанимать нынешних monkey coders — дорого. А вот нанимать математиков на их место будет ОХ… О ДОРОГО. Так что дилемму эту бизнесы, скорее всего очень хорошо понимают.
                                                                                                                                        0

                                                                                                                                        Зарплата аспиранта среднего американского вуза — 25-30к в год. Зарплата среднего софтваре инженера зависит от города, от каких-нибудь 40-50к в год в Усть-Дикхединске в Оклахоме (где, впрочем, и вузов нет) до минимум 200к в год в Долине или Нью-Йорке.


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


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

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


                                                                                                                                          [в королевском научном обществе]
                                                                                                                                          — А нафига нам нужно это ваше «электричество», господин Фарадей?
                                                                                                                                          — Однажды вы начнете брать с него налог, сэр
                                                                                                                                            0

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

                                                                                                                                              0

                                                                                                                                              Ну, если честно, тут средний аспирант не сильно уступает среднему инженеру, увы.

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


                                                                                                                                                Чё-то вы преувеличивайте: уже как минимум отдельная профессия по апгрейду и даунгрейду на целевой машине (админы, DevOps).

                                                                                                                                                Многоплатформенность за вас решает ваш универсальный инструмент, который написали совсем другие люди. Вряд ли вы под продукт пишете специальные модули совместимости под различные ОС.

                                                                                                                                                Совместная разработка — это всего лишь несколько навыков как вести разработку в разных ветках и не ломать код коллег. За неделю разберетесь.

                                                                                                                                                0
                                                                                                                                                Матан это матан. После того как математические модели построены, их еще нужно переложить в код, а после увязать с бизнес логикой, которая вокруг этой модели крутиться.
                                                                                                                                                И аспирантов, я уверен, нанимают, чтобы что то особо сложное построить.
                                                                                                                                                  0
                                                                                                                                                  Во-первых, человек абстрактной науки привык именно что «решать» проблемы, удовлетворяя личное любопытство за счет платящей стороны, а не get things done, что обычно подразумевает бизнес. Во-вторых, с таким подходом срок выполнения работ становится эластичней латексного изделия, что в итоге приведет 100% к просеру и по срокам и по деньгам. Так что это будет именно что супердорого и астрономически долго. Примерно как чайной ложкой рыть Беломорканал.
                                                                                                                                              0
                                                                                                                                              Куча всяких разнородных финтифлюшек от разных вендоров, причем от одного вендора обычно друг с другом стыкуются, а от разных — как повезёт, но нередко приходится обрабатывать напильником. И конечный результат надо набирать из этих финтифлюшек, соединяя их нехитрыми алгоритмами.

                                                                                                                                              А что, в математике не так же? Разве что "финтифлюшки" почти все абстрактные.

                                                                                                                                              –1
                                                                                                                                              Абстракции везде есть, это не изобретение программистов. Большинство разработки — это скорее игра в «трубопровод», подключи здесь, дотащи туда, и убедись что не выльется по пути и не прорвёт от напора. Увлекательно, но большинство сложностей в этом процессе программисты создают себе сами.
                                                                                                                                                0
                                                                                                                                                Поделитесь уже секретом, как написать проект на 100к строк и с 30-ю сторонними плагинами, половина из которых кривые, так, чтобы в проекте быстро мог разобраться новый разработчик и чтобы легко можно было внедрить любую новую фичу.
                                                                                                                                                  +3

                                                                                                                                                  Разбить трубопровод на куски, за каждый кусок назначить ответственного, разобраться с 30-ю сторонними потребителями и вариантом их подключения, в идеале свести все к единому стандарту фитингов, новых абонентов так же подключать стандартными фитингами. Схему трубопровода отрисовать и держать в доступном для монтажников месте, по мере роста абонентов — актуализировать.
                                                                                                                                                  Мне кажется, вся магия начинает пропадать?
                                                                                                                                                  А теперь добавьте сюда то, что у трубопроводчиков нет запасного трубопровода в теневом городе. У них нет возможности "откатить" новые подключения до лучших времен.

                                                                                                                                                    +1
                                                                                                                                                    На словах-то оно всё очень просто…
                                                                                                                                                    Разбить трубопровод на куски, за каждый кусок назначить ответственного

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

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

                                                                                                                                                    А сама отрисовка схемы трубопровода занимает до 50% времени (и бюджета соответственно) разработчиков/конструкторов, схема меняется каждую неделю, а «монтажник» должен будет изучить её всю, чтобы ненароком не залезть куда не надо — не сломать систему мониторинга давления при врезке подключения или, скажем, не поменять одним движением стандарт фитингов на новый, ни с кем не согласованный. А, и каждое движение монтажников тоже нужно будет документировать, то есть иметь либо очень квалифицированных монтажников, либо специальную команду для документирования всех процессов.
                                                                                                                                                      +2
                                                                                                                                                      Немного забыли добавить сюда налаживание связи между каждым куском и тем, что у Вас задублируется (во сколько раз?) масса вещей этими отдельными ответственными, плюс интерфейсы (и протоколы) между ответственными и с 30-ю сторонними потребителя и еще много-много нюансов. Декомпозиция штука сама по себе сложная. Правильная удачная декомпозиция с первого раза сложных задач внедряемых в первый раз без опыта их применения — вещь на грани искусства.
                                                                                                                                                        +1
                                                                                                                                                        Магия начала пропадать поскольку вы упустили самый важный аспект разработки: скорость изменения требований. Представьте теперь, что нужно делать все тоже самое, только в условиях перманентного перестраивания конфигурации в масштабе всего города.

                                                                                                                                                        Я бы посмотрел, как бы вы согласовывали изменения на лету между 30 ответственными за каждый кусок, решали вопросы перегрузки и недостатка ресурсов заложенных заранее, планировали запас и проектировали с учетом неопреденного будущего, а потом отчитывались почему перестройка происходит так долго и не эфективно.

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

                                                                                                                                                        Вот это и есть ад разработки.
                                                                                                                                                          +1

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

                                                                                                                                                            +1
                                                                                                                                                            Я лично не против чтобы сварщик или врач зарабатывал на уровне мидла, или даже сеньйора.

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

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

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

                                                                                                                                                              Посмотрите на застройку новых районов, когда квартиры начинают продавать еще на этапе котлована, потом вносят кучу изменений в проект по мере постройки дома.
                                                                                                                                                              Посмотрите на сети ресторанов быстрого питания и как они разворачиваются в городе, бывает что не успев открыться — они уже закрываются.
                                                                                                                                                              Посмотрите на сети интернет провайдеров в 2005-2010 годах, они так же росли без плана и с ежедневной корректировкой и переделкой.

                                                                                                                                                                +2
                                                                                                                                                                Вы ошибайтесь со скоростью внесения изменений на несколько порядков.

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

                                                                                                                                                                Просто приведите мне пожалуйста пример в любой из упоминаемых вами индустрий аналога понятия «пивот», когда за один год ресторан привращают в пивоварню, затем в завод по производсту амиака, а затем в лабораторию по производству вакцин.

                                                                                                                                                                Это примерно тот уровень изменений архитектуры, который ожидается бизнесом от команды разработки в ИТ.

                                                                                                                                                                То что вы приводите (рост интернет сетей) – это лишь количественное масштабирование, но не качественное. Как наращивать сеть интернет провайдера можно оценить еще в самом начале развития.
                                                                                                                                                                  +1
                                                                                                                                                                  Да, ресторан может успеть стать неликвидным еще до того, как успеет открываться, так редко, но бывает. Но условия разработки – это когда шашлычная за неделю перестраивается в суши-бар, с возможностью по выходным принимать рок-концерт.

                                                                                                                                                                  Просто приведите мне пожалуйста пример в любой из упоминаемых вами индустрий аналога понятия «пивот», когда за один год ресторан привращают в пивоварню, затем в завод по производсту амиака, а затем в лабораторию по производству вакцин.


                                                                                                                                                                  Плохая аналогия подобна котёнку с дверцей в боку.

                                                                                                                                                                  Ты забываете о важном отличии:

                                                                                                                                                                  Если в работе ресторана есть множество материальных вещей, то с программой, как с продуктом мысли — всё проще.

                                                                                                                                                                  Из шашлычной вы не сможете сделать рок-площадки банально из-за нехватки площади. Это физический параметр. И только в фантастике помещение может быть больше внутри, чем снаружи.

                                                                                                                                                                  В программировании начать обрабатывать в 10 000 больше данных вам может позволить, к примеру, простое включение кэша на определенном уровне обработки данных внутри вашей программы.
                                                                                                                                                                    +1
                                                                                                                                                                    Извините, но вы апеллируете мне моими же аргументами. Я выше писал:
                                                                                                                                                                    Но сравнивать разработку с проектированиям трубопровода крайне не корректно, поскольку доступность внесения изменений в ПО гораздо ниже, чем в трубопровод, и бизнес ожидаемо пытается выжать из скорости разработки максимум, а это значит что изменение требований будет настолько часто, насколько это позволяет команда разработки.
                                                                                                                                                                    Не я начал вереницу плохих аналогий. Я просто утверждаю, что любой бизнес пытается выжать ту скорость изменений, которая конструктивно возможна. Для разработки ПО это несравненно более высокая скорость, чем для других бизнесов, и потому проводить аналогии между проектированием ПО и проектированием водопровода или сети ресторанов просто не корректно.

                                                                                                                                                                    Это просто совершенно разный класс проблем. В проектировании ПО в основном цена ошибки значительно ниже, но и размерность задачи (количество параметров, которые необходимо принимать во внимание) на порядок выше.

                                                                                                                                                                    Проектируя сайт, вы заранее должны продумать, что будете делать, когда нагрузка увеличится в 1000 раз. От ресторана никто в принципе не ждет тысячекратный прирост наплыва посетителей.
                                                                                                                                                              +2
                                                                                                                                                              Трубы знаете ли тоже сами себя не согласуют.
                                                                                                                                                              Просто трубопроводчик, как и врач — не могут работать на удаленке, получая зп в евро. А здесь у нас принято не доплачивать рабочим специальностям. Но в последние годы это меняется. Теперь уже сварщик вполне может зарабатывать на уровне мидла.


                                                                                                                                                              Да это банальная нехватка людей-профессионалов.
                                                                                                                                                              Джуны-разработчики сейчас копейки уже зарабатывают, ибо происходит насыщение.

                                                                                                                                                              А очень хорошего сварщика или сантехника — поискать еще. И зарабатывают они очень хорошо. Побольше миддла.
                                                                                                                                                                0
                                                                                                                                                                Хорошие сварщики всегда зарабатывали прилично. Если не пили. Я когда-то на стройке работал, был шикарный сварщик. Но сильно пил. Поэтому и получал копейки. Но при этом, даже если он не может стоять (Его просто сажали перед нужным объектом), он все равно варил идеально.
                                                                                                                                                                0
                                                                                                                                                                Магия начала пропадать поскольку вы упустили самый важный аспект разработки: скорость изменения требований. Представьте теперь, что нужно делать все тоже самое, только в условиях перманентного перестраивания конфигурации в масштабе всего города.


                                                                                                                                                                Это касается только специалистов высокого уровня.

                                                                                                                                                                До сеньора — вообще не ваша проблема как придумать такую архитектуру, чтобы легко адаптироваться под грядущие изменения.
                                                                                                                                                                  0
                                                                                                                                                                  То есть по вашему джуны и мидлы тупо пишут код и вообще мозг не включают? Это не так, поскольку как только мы достигаем такого момента с точки зрения развития технологий (а мы его регулярно достигаем), прошлая работа джунов и мидлов становится не нужной, поскольку их работку можно автоматизировать. И в этот момент всем уровням разраработчиков, включая сеньйоров, приходится прыгнуть на один уровень асбтракции выше, где опять нужно включать голову.

                                                                                                                                                                  В итоге через 10 лет команда, проектировавшая разводку воды по деревне занимается (условно) логистикой в масштабе Земли, с применением всех видов транспорта, учетом погоды, изменения цен и дипломатических отношений, с применением искуственного интеллекта, арендуя транспорт у поставщиков. Это буквально то что происходит с разработкой – то, что еще 10 лет назад делалось вручную сеньйорами, сегодня автоматизировано, а серьйоры отвечают за оркестрацию более высокого уровня.
                                                                                                                                                                    +1
                                                                                                                                                                    То есть по вашему джуны и мидлы тупо пишут код и вообще мозг не вкл