«Могу рассказать про общую боль всех iOS-разработчиков» — 10 вопросов программисту, выпуск 2



    Пилотный выпуск вам, кажется, понравился. И мы по-прежнему уверены, что ребята, которые не попадают в объективы камер, столь же интересны, как и ИТ-звезды. А может и еще больше, потому что они рассказывают о реальных проблемах и их решениях. На этой неделе мы задали 10 вопросов человеку, который скромно стоит за «Яндекс.Картами» для iOS.


    Николай Лихогруд (likhogrud) из Москвы. Начал с HTML и Basic в девятом классе. Потом самостоятельно изучал C#, поступил на ВМК МГУ, а следом попал в команду Any Void. Вместе с Any Void перешел в «Яндекс», последние 2,5 года работает тимлидом группы разработки «Яндекс.Карт» для iOS.

    1. Расскажи о фиче, которую ты реализовал и которой гордишься.


    — Тут надо разделять командные фичи и мои личные. Из личных — самое запоминающееся — это то, что я полтора года назад в два раза ускорил время запуска приложения. И рассказал коллегам об этом. Раскопал некоторые особенности iOS, которые не были нигде описаны. Там была проблема из-за того, что Swift тянет за собой очень много динамических библиотек. Для каждой из них нужно проверять подпись на старте — это тормозит. Полезную работу провел — это реально сказалось на жизни пользователей. Я тогда даже выступил на Mobius.

    А что касается командной разработки, то «Карты» — это огромный проект с кучей разных фичей. Я такого, наверное, больше и не видел. И если сесть разбираться, то я могу показать штуки, о которых многие даже не догадываются — там очень много всего! Почти в каждом новом релизе мы какие-то новые прикольные вещи делаем, и я всем этим горжусь. Сейчас мы стараемся прокачать в «Картах» не исторически сложившиеся сценарии поиска и маршрутизации, а такие, которые больше рассказывают о том месте, где ты находишься. Мы это называем гидом по городу. В общем, больше не справочной информации, а познавательной, развлекательной. И очень здоровская фича — дополненная реальность в картах. Мы быстро ее сделали: сразу все получилось, все взлетело. Успели прямо на запуске iOS 11, раньше других команд. Было приятно.

    Пышка плывет по Неве, ничего необычного

    2. А теперь — про самый лютый факап.


    Факап был. Это было в начале, когда я только на «Карты» перешел: проект незнакомый, предыдущая команда полностью разошлась, некому было меня проверять. И в одном релизе я заддосил серваки геокодера, потому что забыл проверочку одну добавить. После некоторых манипуляций в приложении на каждое обновление позиции пользователя отсылался запрос к серверу, который возвращал данные о том, где юзер находится. А таких изменений геопозиции может быть 10 раз в секунду. И с учетом того, сколько у нас пользователей, даже если каждый сотый или тысячный выполнял эти действия, у нас возникала большая нагрузка на сервер.

    Это был такой момент, который стал заметен вне рамок моей команды. Приходили люди, говорили: ну что же вы так! Но, кстати, нормально разрулилось — подняли сервак, чтобы с нагрузкой справиться. Баг нашли быстро, исправили быстро, а потом уже и обновление выложили. Правда ревью в AppStore заняло неделю примерно. Сейчас-то с этим стало попроще. Мне тогда больше самому обидно было: как же так, только начал работать! Но все всё понимали: что проект большой, я там один, и некому было мне подсказать…

    3. Опиши свое рабочее пространство: от кресла и монитора до сред программирования и любимых утилит.


    — Кресло у меня какое выдали, стол — тоже. На нем стоит монитор Thunderbolt и лежит ноут. И еще беспроводные клава и мышка, чтобы можно было только с монитором работать.



    Стол завален бумажками, где записаны все мои мысли и планы. На всякие Trello и Dapulse я так и не перешел. Когда я начинал, этого всего еще не было, ну и вообще бумага как-то привычнее. Конечно, я еще заметки на ноуте делаю, но вот так написать, а потом зачеркнуть — это приятнее. На столе еще обычно много вещей, которые просто со временем откуда-то накапливаются, но недавно я их убрал. Лего еще вокруг стоит — уют. Вообще, я свое место считаю уютным. А когда смотрю на столы коллег, где вообще ничего не лежит — монитор и ноутбук, — мне кажется, что я бы так не смог.

    4. По какому принципу ты выбираешь работу? Стек, продукт, бытовые условия, деньги?


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

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

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

    5. Что в технологиях и языках, которые ты используешь, ты бы хотел исправить?


    — Могу рассказать про общую боль всех iOS-разработчиков. В Swift не оптимизирован компилятор, не доработана среда разработки. На нашем проекте, где 400 тысяч строчек кода, все просто тормозит. Индексация тормозит, открытие файлов тормозит, открытие проектов тормозит. Компиляция идет долго, она очень ресурсоемкая.

    Даже наша работа зависит от того, что Xcode долго компилирует. С Objective-C нормально работает, а со Swift — плохо. Если бы он это нормально делал, не пришлось бы разбивать приложение на модули — нам пришлось проинвестировать в это. Сейчас мы разрабатываем больше в тестовых проектах, а не в основном приложении. Потом из тестовых проектов закидываем в основное. Хотя это в итоге пошло на пользу всему проекту, были некоторые затраты на то, чтобы так научиться работать.

    6. Где лучше перенимать чужой опыт — в вузе, на конференциях, на хабре? Еще где-то?


    — Самое эффективное — это когда у тебя есть конкретная проблема и ты ищешь решение. «Перенимать опыт» — я не очень понимаю, что это значит. А вот «где искать решение проблемы» — это понятно. Там, где оно найдется. Просто в «Гугле» набиваешь и смотришь, что он тебе ответит.

    А с конференциями как-то так получается, что я даже не перенимать чужой опыт туда еду, а своим делиться. Есть уже некоторый опыт в части ведения большого проекта, который многих интересует. Таких приложений, как наше, можно сказать, единицы, поэтому и опыт в своем роде уникальный. У меня спрашивают: как побили на модули, как организован code review, как там у вас CI работает.

    7. Будь у тебя неограниченные ресурсы (время, деньги, мощности, люди), каким проектом ты бы занялся?


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

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

    8. Как ты отдыхаешь? Что делаешь кроме работы?


    — Перезагружаться нужно — сто процентов. Этот режим 5/2 придумали реально умные дяди. Если вовлечен в проект, горишь, болеешь за него, то если ты и на выходных будешь им заниматься, будет плохо. У тебя в итоге потеряется запал, а нужно его наоборот стабильно поддерживать, чтобы работать месяцами и годами.

    На выходных я выбираю поделать что-нибудь простенькое: погулять, посмотреть телевизор, ничего экстремального. Хотя я, может быть и хотел бы, просто компании подходящей нет. Пару раз мы с ребятами выбирались кататься на байдарках на Клязьме, было здорово. Иногда бывает пейнтбол. Но это все не регулярно, потому что активная трата энергии. Конечно, ты получаешь взамен эмоции какие-то… Но пять дней работать, а затем еще два дня где-то там плавать-бегать и потом снова пять дней работать? А у тебя уже как бы тело болит! Думаю, я бы не смог.

    Еще я трачу время на ремонт. Маленький и бесконечный. Это отдельный мир со своими технологиями, уникальным опытом. Там бывает очень интересно.

    9. Расскажи про 3 любимые книги — учебную, научно-популярную и художественную.


    — С учебными книгами у меня не сложилось. По работе я, можно сказать, ни одной книжки не прочитал. В самом начале, может быть, это были книги по C++. Помню, ездил в детский лагерь: у народа были нормальные, а у меня — по C++. В итоге я ничего толком не прочитал, потому что компьютера под рукой не было. Читаю — вроде понятно, а как это к своим задачам применить? Как опыт приобретать? Я больше практик, а не теоретик. Может быть, я не знаю каких-то интересных терминов, которыми другие ребята оперируют, но при этом я умею делать свое дело. Этому я научился, просто решая тяжелые задачи. Опыт и решения я искал всегда просто в интернете.

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

    Из научпопа я читаю «Википедию», там обо всем можно читать. Я очень люблю историю и могу читать там от Рюрика до Ивана Грозного, от первого Романова до дворцовых переворотов. А потом случайно прыгнуть по ссылочке на Александра Македонского. Могу на 2–3 часа залипнуть. Есть про оружие интересные статьи, про технологии обработки металлов. Жаль, я воспроизвести это не могу, но понимать, как люди до всего этого додумались — от сыродутной печи до бессемеровского процесса — это круто.

    А художественной литературы сейчас в моей жизни мало. Такие книги вытеснили, наверное, фильмы. Потому что, по сути, предназначение у них схожие, но фильмы компактнее. Хотя одну книгу, пожалуй, упомяну — это «Обломов» Гончарова. Очень расчувствовался, когда давно ее читал. Кажется, даже плакал. Сейчас ее было бы интересно перечитать. Теперь я бы подумал, наверное, что так ему и надо, Обломову.

    10. Если прямо у тебя на глазах в ИИ проснется сознание, что ты ему скажешь?


    — Вопрос, что значит «сознание»? Если оно просто сделано, чтобы пройти тест Тьюринга — это еще не сознание. Но если в такие детали не вдаваться, то я бы спросил о решении каких-то конкретных проблем. Я все-таки человек практики. «Как сделать Xcode побыстрее?» :).

    Но обязательно нужно начать с «Привет, как дела?». «Как дела?», «Что делаешь?» — ответы на эти вопросы могут содержать некоторые нотки рефлексии. Как реально машина оценивает свои дела и настроение? И что она сейчас делает?

    Вопрос от предыдущего героя: изучение какой технологии вызвало у тебя наибольшее удовольствие в процессе?


    — Вот прям удовольствие? Получать удовольствие от работы и учебы я еще не научился. Я научился спокойно к ним относиться и выполнять хорошо. iOS SDK, например, у меня особого интереса не вызвал, потому что он в общем-то простой.

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

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

    Здорово, что сейчас есть опенсорсный фреймворк LLVM, который позволяет создать свой компилятор. Вы можете свой язык придумать! Написать для него парсер, который будет заниматься лексическим и синтаксическим анализом, а потом воспользоваться мощью современного компилятора, чтобы получить машинный код.

    Бонус: задай любой вопрос другому разрабу.


    — Зная, что обратно не вернуться, полетел бы ты на Марс в первой экспедиции?
    Поделиться публикацией
    Комментарии 59
      0
      Стол завален бумажками, где записаны все мои мысли и планы.
      …а ещё стоит баночка Optimum Nutrition Creatine Powder и коробка от дрона Eachine E013 Small Pepper :)
      Или же это просто чей-то стол с достаточным количеством бумажек сфотографировали?
        +2
        Стол мой, бумажки мои, квадрокоптер коллеги, креатин мой, про него на интревью подзабыл.
          0
          А вот ещё любопытно: текст статьи — он ваш или же интервьюера?
          Хотя одну книгу, пожалуй, упомяну — это «Обломов» Гончарова.
          Как говорила наша учительница литературы: «бальзам на душу!», что программа 9 (10?) класса на кого-то произвела впечатление :)
            0
            Текст 100% записан интервьюером с моих слов, со всеми ляпами :)

            что программа 9 (10?) класса на кого-то произвела впечатление
            Впечатление произвело, но 9-10 класс рановат для Гончарова, Некрасова, Достоевского и т.д., в зрелом возрасте совсем по-другому воспринимаются, надо бы перечитать.
        +13
        Просто в «Гугле» набиваешь и смотришь, что он тебе ответит.

        Ответил человек из Яндекса)) Интересно, они с техническими вопросами все в Гугл ходят?

          0
          А Яндекс для этих целей куда хуже, причем это более заметно если ищешь англоязычные/редкие статьи
            0

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

          0
          заголовок жесточайший кликбайт. по существу, если пишешь на swift, то это далеко не боль всех.
            0
            это боль всех на свете… потому и появляются люди пишущие слово кликбайт
              0
              Пожалуйста, давайте дополним картину, напишите свою боль.
              Я сказал первое что пришло в голову при вопросе «что хотелось бы исправить?». Xcode объективно уступает другим IDE, особенно при работе со Swift. Я же еще забыл упомянуть про отсутствие нормального авторефакторинга и callers/callees/subclasses/superclasses/protocols и т.д., потому что уже и забыл что это такое.
                0
                > callers/callees/subclasses/superclasses/protocols
                Да вроде давно уже работают

                PS. С тем что XCode — это боль, всецело согласен.
                  0
                  >Да вроде давно уже работают
                  В картах не всё показывает часто, не осиливает :( На проектах поменьше работает ок, это да.
              0
              Ещё хотелось бы уточнить:
              Даже наша работа зависит от того, что Xcode долго компилирует. […] Если бы он это нормально делал, не пришлось бы разбивать приложение на модули — нам пришлось проинвестировать в это.
              Инвестиции заключались в покупке более мощного мака? Или в переходе на модульность?
                +3
                В переходе на модульность. Поясню использование здесь термина «проинвестировать»

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

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

                  Xcode — компилирует, ага. В этом месте технически грамотному читателю стоит насторожиться.

                    0
                    Компилятор, компилирующий swift, называется «swift», я писал об этом в habr.com/company/yandex/blog/335768

                    Не думаю, что интервью стало бы интереснее от этой подробности.
                      0
                      Нормальное предложение. У нас в комманде часто говорят похожим образом, а ещё, иногда, мы .net называем c# и наооборот. Такие фразы здорово экономят время. Можно же и комп называть — электронная вычислительная машина.
                    0
                    зачем вообще начинали его использовать с учетом того что проект не маленький?
                      0
                      Не знаю как Яндекс выбирал, но в случае нашего проекта Swift значительно увеличил скорость разработки (несмотря на «слабый» компилятор) за счет компактности и читабельности кода. Плюс рано или поздно придется переходить с Objective-C на Swift.
                      По моим личным ощущениям написание и чтение Swift кода требует значительно меньше ментальной нагрузки, чем Objective-C (6 лет опыта Objective-C, 3 года опыта Swift).
                        +1
                        Да, мы начали писать на Swift в первую очередь потому что это современный мощный язык, и потому что устали уже от неограниченной рефлексии, нестрогой типизации, бесконечных квадратных скобочек, указателей и прочих особенностей Obj-C. Хотелось чего-то нового.

                        К тому мы начинали на Swift 1.1 и еще не было известно про некоторые проблемы, которые вскрылись только когда мы перешли рубеж 100к строк. Отступать было поздно.

                        И еще могу сказать как человек, активно вовлеченный в процесс найма, что найти людей с опытом 2-3 года, а тем более новичков, которые хотели бы посвятить будущее Objective-C очень непросто. Не модный он уже. И то, что мы в свое время написали карты на Swift сейчас реально помогает в найме.

                          0
                          найме новичков?
                            0
                            2-3 года не новички, и таких мы вполне нормально нанимаем. Новичков я упомянул для дополнения картины — что люди, приходящие в iOS, сейчас не учат Objc.
                              0
                              Джун из соседнего отдела около года на 1с проработал, через 2 недели устраивается на iOS как раз на Objc))
                                0
                                Было бы странно, чтобы не нашлось контрпримеров моим словам, в жизни ведь всякое бывает. Но джуну могу посочувствовать — какова вероятность, что через N лет, когда он будет менять работу, ему не придется переучиваться на Swift или жестко ограничиваться в выборе проектами на objc?
                                  0
                                  Лично я вообще придерживаюсь мнения что при достаточном опыте язык сменить достаточно просто, пусть с потерями какими то. Понятно что сеньером не стать с ходу, но все же.
                            0
                            К тому мы начинали на Swift 1.1 и еще не было известно про некоторые проблемы, которые вскрылись только когда мы перешли рубеж 100к строк. Отступать было поздно.

                            а неужели не было понятно что это будет авантюрой?) с учетом того что у эпл — все сырое — то что у других назовут раннеей преальфой у них идет как финальная версия
                              +1
                              Да какая же это авантюра? Отличный язык. Да, тулинг подводит, но становится лучше с каждым годом. И я лучше подожду лишнюю минуту компиляцию, зато с generic-ами, enum-ами с ассоциированными значениями, строгой типизацией и БЕЗ ТОЧЕК С ЗАПЯТЫМИ И СКОБОЧЕК!!!
                                0
                                а угробленные тысячи человекочасов для миграций между версиями 1.1-1.2-2.0-2.2-3.0 это наверное не авантюра?

                                все выше перечисленное вам доступно и в C++ ;)
                                  0
                                  Без точек с запятыми?
                                    0
                                    а угробленные тысячи человекочасов для миграций между версиями 1.1-1.2-2.0-2.2-3.0 это наверное не авантюра?

                                    Да, была одна жесткая миграция, когда один человек из команды сидел 2 недели правил ошибки за мигратором, но в остальные разы мигратор отработал намного лучше. Проект тогда был 250к строк, ушло считайте сотня часов, никак не тысячи. Откуда такие цифры?
                                    0
                                    Как это без скобочек? В if скобочки обязательны. В guard тоже.
                                    guard let win = self.view.window else { return }

                                      0
                                      Я про квадратные.

                                      Some *some = [[Some alloc] initWith: other];
                                      Third *third = [[[some foo] bar] map:^{...}];
                                      


                                      Вместо
                                      let some = Some(with: other)
                                      let third = some.foo().bar().map {...}
                                      
                            0
                            Вместо того, чтобы стол бумажками захламлять, заведите себе тетрадку в твердой обложке.
                              +1
                              заведите себе тетрадку в твердой обложке.
                              …чтобы вырывать из оной листочки? :)

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

                              image

                                0
                                Сомнительно — все равно будет лежать в одной стопке, перемешиваться, да еще и теряться. А в тетрадке можно найди события и прошлогодней давности, при необходимости.
                                +1
                                С вашей точки зрения это хлам, с моей — мои мысли, которые я структурировал абсолютно так, как мне удобно.
                                0
                                Соглашусь про боль iOS (swift) разработчика. Если у них все 400k loc на Swift, то я могу только представить как долго весь проект компилируется.
                                От себя могу добавить еще несколько причин боли:
                                1. Постоянные проблемы с подключением iPhone / iPad к Xcode, особенно после того как «Debug over the air» был реализован в последнем Xcode.
                                2. Xcode компилирует проект с нуля если поменять «target» с телефона на симулятор или наоборот. На нашем проекте занимает около 5 минут (~100k loc на Swift).
                                3. Постоянные проблемы с подсветкой кода и «autocompletion». Часто работает с задержкой, иногда требуется перезагрузка Xcode.

                                Самое неприятное, что при работе с Xcode чувствуешь, что ты соображаешь быстрее, чем он, постоянно приходится ждать, недолго, но все равно чувствуется.
                                Пробовал перейти на AppCode, в каких-то моментах он быстрее и удобнее, в других на порядок медленнее, видимо за счет того, что написан не-нативно.
                                  0
                                  В AppCode вообще нету сторибордов.
                                  В XCode чудовищная работа с окнами/табами. Очень бесит тот факт, что Assistant Editor может открыться совсем не на том view, а при переходе с Assistant Editor на Standard или Version Editor всегда остаётся сториборд.
                                  +1
                                  — Самое эффективное — это когда у тебя есть конкретная проблема и ты ищешь решение.

                                  Вот тут и не поспоришь, действительно самое эффективнее, и чем глобальнее проблема, тем обширнее поиск решения, вплоть до конференций и семинаров.
                                    –1
                                    стоит монитор Thunderbolt и лежит ноут
                                    Не понимаю как можно работать на ноуте и требовать скорости. Мобильные процессоры никогда не приблизятся к настольным, особенно таким как i7-8700k и новым i9.
                                      0
                                      Разница в скорости между i7-8700k и i7-8850h — менее двадцати процентов.
                                        0
                                        18, если быть точным.
                                        Но так слишком просто. Давайте разгоним 8700k до 4.8 (5.0 со скальпированием) и прогоним любой тест на пару часов.
                                        Попробую предсказать результат: ноут перегреется и 8850H начнет троттлить, теряя до 50% мощности. По итогу разница будет 200%.

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

                                          Странно, я никогда не считал основной задачей десктопа (и рвущегося за ним следом ноута) быть оскальпированным и разогнанным. Что я делаю не так? Где научиться правильному восприятию целей существования вычислительной техники, чтобы сравнивать правильно?


                                          А ноут у меня тупит, да. Но там Пентиум, ему можно.

                                            0
                                            Главное что вас устраивает. У любителей чтобы все летало свои заморочки.
                                      0
                                      Как-то много противоречий в этом человеке. С одной стороны он говорит что рад трудиться за идею. С другой — он никогда не фанател ни от научпопа, ни от изучения средств программирования.

                                      В яндекс он пришёл с чистой трудовой книжкой, если я правильно понял из прочитанного. Что удивительно.

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

                                      Весьма познавательная статья.
                                        0
                                        а они сейчас все такие — кто пришел в индустрию ради денег а не потому что в руках зудит код пописать
                                          0
                                          Да, жаль нельзя собрать референдум о понижении зарплат программистам хотя бы в два раза. Я б проголосовал.
                                            0
                                            Зарплата определяется рынком. И сейчас конъюктура такая, что разработчиков, особенно опытных, не хватает. Мы можете ограничить референдумом максимальную зп, но тогда компании, в борьбе за кандидатов, просто будут какими-то другими плюшками завлекать.

                                            И даже больше. Чтобы действительно снизилась зп, нужно чтобы во всем мире был переизбыток кадров. Снизите только в России — народ просто заведет тракторы и придется обратно повышать.
                                              0
                                              Да понятно, я пошутил )
                                              А вот то что опытных разработчико не хватает — тут я не согласен.
                                              Есть такая поговорка:
                                              «С опытными работниками и тупой менеджер проект построит. Хороший же менеджер построит проект и с тупыми работниками».
                                              Сложность проектов растёт из-за вечной «доделки» и напихивания костылей.

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

                                              Сюда же можно отнести и течку каждов. Каждый новый кадр стремиться вставить своё решение, свою любимую библиотеку в проект, от чего деплой проекта (поддержка, развёртываемость, сложность) становиться все больше и толще. Это тоже влияет на всё возрастающую сложность.
                                                0
                                                Аудит, ревью всего хода работы отдела проводиться только тогда, когда полный капец и вызывают кризис менеджеров. Если бы аудит работы сотрудников (технический) проводили хотя бы раз в пол года, планово, не дожидаясь кризиса, то сложность работ была бы значительно ниже.

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

                                                Конечно, согласен, т.к. сам за все это отвечаю.

                                                «С опытными работниками и тупой менеджер проект построит. Хороший же менеджер построит проект и с тупыми работниками».

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

                                                И вот людей с опытом работы в большом проекте с выстроенными процессами реально не хватает и они ценятся.
                                                  0
                                                  Предположим есть работник, который ну очень круто пишет на GLSL и разбирается в математике, но ему крайне трудно сделать коммит в отдельный бранч, смёржить или подмёржить себе изменения из другой ветки, или например дебажные/девелоперские фичи в коде для релоада шейдеров налету без перезапуска проекта — найти в коде, воспользоваться или сделать их самому для этого человека нереально сложно. Как такого можно классифицировать? Это опытный или как?
                                                    0
                                                    Можно классифицировать как опытного, но с опытом ограниченным. На должность старшего разработчика/тимлида претендовать не может. И если как есть бросить его в команду на сложный проект — и ему придется туго, и команде, и руководителю. Конечно, на каких-то проектах/должностях он будет востребован, но там скорее всего и зп другая будет.
                                                      +1
                                                      жаль что так как ты мыслят далеко не все менеджеры. но я рад что хоть где-то есть порядок.
                                                      может быть в яндексе не всё так плохо как говорят.
                                                      было приятно пообщаться.
                                                        0
                                                        Хм…
                                                        Это странно.
                                                        Да, он сейчас не может сделать коммит в отдельный бранч, смёржить и подмёржить — потому, что он всю жизнь использовал ClearCase условно 1 (с бранчами и конфигспеком), ClearCase условно 2 (с забыл как называется c объединёнными изменениями), потом SVN, потом Perforce.

                                                        И это малолетние менеджеры называют «с ограниченным опытом»? Просто потому, что человек не знает git?

                                                        А я считаю, что в компании недостаточно развит процесс обучения /ввседения в команду новых сотрудников.
                                                          0
                                                          И такие идиоты как космонавт правят миром =(
                                                          Иногда от этого становится чуточку обидно…
                                            0
                                            По-вашему я в 9-м классе пришел в компьютерную секцию ради денег?
                                            0
                                            В трудовой у меня был AnyVoid, так что вы неправильно поняли.

                                            Это факт вашего сообщения, который я поправлю. Остальное — ваше собственное мнение, вы на него имеете право и спорить я не буду. В одном интервью с фиксированными вопросами человека как личность не раскрыть.
                                            +1

                                            Коля, ты молодец! :)

                                              0
                                              Спасибо :)

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

                                            Самое читаемое