Опыт разработки некоммерческого проекта силами джуниоров

    Доброго времени суток, хабрахабр!

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

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

    image


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

    Первые проблемы


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

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

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

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

    Здесь нас ждал второй сюрприз. Далеко не все желающие доходили дальше второго задания. Кто-то сразу говорил, что задание слишком сложное, другие с энтузиазмом брали задание и пропадали навсегда, третьи обещали сделать задание “на следующей неделе” и продолжают обещать и по сегодняшний день.

    Время писать код


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

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

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

    Итоги


    Если вам интересно, в какой фазе наш проект, то отвечу, что мы еще работаем над ним. Осталось “пофиксить баги и задеплоить”. Тем не менее, мы не жалеем, что решились на такую авантюру.

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

    Что дальше


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

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

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

    Ну, и что?
    Реклама
    Комментарии 48
    • +6
      Внезапно, junior работает хуже, чем senior.
      Во-первых, некоторые наши разработчики уже нашли первую оплачиваемую работу, но при этом продолжают участвовать в жизни нашего проекта.
      Не пойму, так вы себе в команду ищете разработчиков или что? Или суть в том, что вы им не платили, а теперь им платят?
      • +2
        Почему не платят? С разработчиками (молодыми) расплачиваются путём ревью их кода от автора статьи и его коллеги, причём, в течение трёх месяцев, как указано под картинкой.
        • +2
          Не пойму, так вы себе в команду ищете разработчиков или что? Или суть в том, что вы им не платили, а теперь им платят?

          Посмотрите сайт компании автора статьи, и все поймете.
          • 0
            Тут всё упирается в ожидание-реальность. Для получения «джуниора за деньги» нужно всего пройти собеседование. Эти знания укладываются в 15 статей на wiki или 3-4 книжки.
            Так же нужно разделять джуниоров, которые без багов пишут честь facebook и джуниоров, которые с багами пишут чатик на Ruby на бесплатных курсах. Я не хочу сказать, что эти джуниоры кодят на уровне американских школьников, но это факт. Но раз с таким скилом берут и платят, то окей, пусть берут и пусть платят.
            • 0
              Изначально нам нужна была помощь с разработкой несложного проекта, на который у нас времени не было.
              В данный момент это переросло в некоммерческую инициативу, в рамках которой мы хотим дать начинающим опыт.
            • +5

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

              • +1
                Непонятно, почему вы решили, что люди, даже не очень опытные в своём деле, будут работать с вами на одном лишь энтузиазме


                Ну вот почему то он так решил, наверно, из жизненного опыта, и оказался таки прав:

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

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

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

                • 0

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

                  • –3
                    Это было к тому, что эти разработчики потом уходят в другие компании работать за деньги, не оставаясь в той, которой работали на проект на Гитхабе. В принципе, «благотворительность» можно понять, если проект некоммерческий и пилится в свободное от основной работы время.


                    Ты дебил?
                    • 0
                      Ты дебил?

                      Нет.


                      Как-то более аргументированно можно?

                      • 0
                        Как-то более аргументированно можно?


                        Ну если не дебил, то, видимо, статью просто не прочитали.
                        Разумеется, бесплатно набравшиеся опыта джуны куда-то потом пойдут работать уже за деньги.
                        Что вы находите в этом не естественного?
                • +1
                  У нас была гипотеза, что люди могут работать «за опыт», и она оказалась верна.
                  А сам проект — это опенсорс, мы на нем ничего не зарабатываем.
                  • +2
                    За опыт — это ерунда, я больше скажу: будет куча желающих прийти и платить свои деньги за бесплатную работу у вас.
                    • 0
                      Мы принципиально не берем деньги с джуниоров.
                • 0

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

                  • +3

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

                    • 0
                      Что ещё больше непонятно, так это зачем обучать джунов и тратить кучу своиего времени, если через 3 месяца они в любом случае уйдут. То есть в коммерческой компании такая благотворительность бы не прокатила.
                      • 0
                        Во-первых обучать кого-то, очень полезно как минимум для укрепления собственных знаний.
                        Во-вторых это networking, расширение круг знакомств.
                      • 0
                        Изначально мы хотели написать проект, но в процессе работы мы переосмыслили ситуацию, и решили что именно помощь джунам гораздо более ценна для нас.
                      • +1
                        Автор, а можно ссылочку на github-чик в статью?
                      • +3
                        На мой взгляд, разработка open source-проектов силами джуниоров ведет к деградации открытого ПО. Сейчас из-за подобной пропаганды мы имеем огромное количество некачественных проектов, которые просто замусоривают GitHub.

                        Изначально основными достоинствами открытого ПО были качество и надежность. Приведу цитату из очень старой книги (Скотт Хокинс – Администрирование Web-сервера Apache и руководство по электронной коммерции, 2001):
                        … над каждым «открытым» проектом работает гораздо больше разработчиков, чем могла бы нанять даже самая богатая корпорация, ошибочный код обнаруживается и исправляется значительно быстрее.

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

                        • 0
                          Мы делаем не опенсорс-либу, а готовый продукт, который просто размещен на GitHub.
                          Другим он может быть интересен разве что в образовательных целях.
                        • 0
                          Мне показалось или скоро на рынке появятся еще одни «уникальные» курсы для начинающих разработчиков?
                          • 0
                            Нет, вам показалось. У нас совершенно другой подход, и без всякой финансовой составляющей.
                            • 0
                              Мы связываемся с вами, и вы рассказываете о себе. Мы работаем над вашими CV и профессиональными аккаунтами и приводим их в надлежащий вид.

                              Это тоже бесплатно?
                              • 0
                                Это платная услуга нашей компании, в рамках которой мы оказываем платный консалтинг по теме soft-skills для разработчиков.
                                Обучением hard-skills за деньги мы не занимаемся.
                            • +1
                              Уже. Посмотрите на их сайт и предлагаемые «курсы».
                              • 0
                                Это не курсы программирования. Читайте внимательнее сайт.
                                • +1
                                  Похоже на гибрид курсов по подготовке к ЕГЭ и услуг поисковой оптимизации. Своего рода предпродажная подготовка :-)
                                  • +1
                                    А ни я, ни участник Crocodilovich не говорили про курсы «программирования». Отнюдь. Но мы говорили про курсы для начинающих разработчиков, и «их там есть». Так что совет работает в обе стороны, читайте, пожалуйста, внимательнее)
                              • +1
                                Интересная история, хотелось бы больше подробностей.
                                Если идея состоит в «выращивании кадров», то это очень хорошая идея.
                                имхо
                                А любая другая идея «работать за дарма» — это уже зло
                                Любые институты и курсы хоть чему-то и учат, но практики там действительно нет, а если есть ещё и реальная стажировка — то это вообще просто сказка.
                                • 0
                                  Суть идеи именно в том, чтобы «дать опыт» начинающим, на основе разработки некоммерческих проектов, в условиях максимально близким к «боевым».
                                  • 0
                                    Подробности будут в следующей статье. Этой я просто изучил интерес публики.
                                    • 0

                                      Тогда могу сказать, что наиболее интересной частью статьи стало:


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

                                      Хотелось бы подробностей.

                                  • 0
                                    Интересная идея!
                                    По скольку в любом подходе к Кодингу с базой знаний,
                                    полученной из образовательных учреждений или же из самообразования
                                    В любом случае лучшие результаты и набор опыта происходит лишь,
                                    при работе с реальными проектами!
                                    Так как ни один тест не в силах предугадать баги которые встретятся вам завтра.
                                    К тому же знакомство с людьми это всегда +
                                  • +1
                                    Код плохого контроллера дайте посмотреть пожалуйста 8)
                                    • +1
                                      • 0
                                        Ну уж как то совсем жестоко. Дар речи теряется 8)

                                        Underscore и CamelCase тоже сознательно замешаны? Или в рор какое то хитрое соглашение на этот счет?
                                        • 0
                                          В Ruby везде underscore, за исключением имен классов
                                        • 0
                                          Код ][opolllero контроллера дайте посмотреть пожалуйста 8)
                                      • +3

                                        Есть похожий опыт, кратко резюмируя:


                                        • нужно мэнэджить (пинать, спрашивать как дела, нет ли проблем, всё ли понятно)
                                        • нельзя дать задачу и быть уверенным, что она будет правильно решена
                                        • поэтому нужно уметь или учиться объяснять/ставить задачу
                                        • лучше давать понятную задачу, чем простую или сложную
                                        • ревью может занимать много времени
                                        • поэтому проще давать задачи в которых сам хорошо разбираешься, иначе прийдётся учиться самому :)
                                        • если важен конечный результат, иногда приходится дописывать самому
                                        • но подстёгивает сделать то, до чего никак не доходили руки :)
                                        • –1
                                          Это ж надо, сколько свободного времени у людей.
                                          • +1
                                            Зашел на сайт компании автора статьи и нашел в платной услуге для «Кандидатов» вот такой пунтк: «Наведение порядка на Github». Мне кажется он бесполезен. Есть хорошая статья на эту тему на хабре: «Почему GitHub не поможет нанять разработчика» habrahabr.ru/post/350912
                                            • 0
                                              Эта статья довольно спорная и лично я с ней крайне не согласен
                                            • 0
                                              ТС, ваш сайт есть на Гитхабе? Я бы вам заслал PR с исправлениями небольших ошибок.
                                              • 0
                                                сайта к сожалению пока что нет, но думаем над этим тоже

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

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