Пользователь
0,1
рейтинг
10 декабря 2013 в 20:53

Разработка → Парное программирование как сервис

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

Речь идёт про теоретическую возможность сделать сайт для поиска напарников для па́рного программирования.

Бэндэр и Фрай

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

Например:

Всем привет, меня зовут Антон, мне 12. Дело такое: друг написал сайт, но у него по-дурацки реализована защита от накрутки в форме голосования. Хочу продемонстрировать ему проблему в действии, но я никак не могу понять, как в Python правильно использовать CookieJar с urllib2 — серьёзно, какое-то запутанное API. Так в остальном у меня почти всё готово, осталось как раз вот поддержку cookies прикрутить. Буду рад, если поможете!

Время на реализацию (приблизительно): 30 минут
Время для связи: любой день недели, с 3 p.m. до 12 a.m.

python, cj, cookiejar, urllib2

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

Теоретически, это вполне может работать. Почему? Потому что есть stackoverflow.com и couchsurfing.org.

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

Итак, резюмируем:

1. Возможность попросить помочь, когда не получается что-то сделать
2. Возможность лишний раз посмотреть на исходный код других разработчиков, и, возможно, по ходу дела узнать что-то новое
3. Возможность получить некоторую репутацию
4. Возможность самому начать лучше ориентироваться в программировании, помогая другим (лучший способ обучения — учить других, не правда ли?)
5. Возможность приятно пообщаться с близкими по духу людьми (вдруг ваш коллега разрабатывает что-то, о чём вы постоянно думали полтора месяца назад?)

Очень неплохо для настолько простого сайта. Как думаете? Сделаем?
Лично вы бы пользовались такой штукой?

Проголосовал 1131 человек. Воздержалось 239 человек.

А дети ваши бы стали?

Проголосовало 1027 человек. Воздержалось 246 человек.

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

Арсений @MaGIc2laNTern
карма
231,0
рейтинг 0,1
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (48)

  • +7
    Уже есть такой сервис letspair.net. Ну и он опенсорсный на гитхабе лежит: https://github.com/spkenny/letspair. Так что можете форкнуть и дописать/сделать свой :)
    • 0
      В общем-то, я и не говорю, что такого нет. Но мне не нравится, как конкретно у них реализовано: ни аватарок (ну ок, у некоторых есть — но я бы сделал их обязательными, и чтобы можно было смотреть фотографии в большом размере, так намного симпатичнее и уютнее становится сразу), ни отзывов, ни комментов к просьбам о помощи, ни репутации. Получается, как бы «вслепую» выбираешь — как-то не возникает особого желания с кем-то связаться там.

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

      Cайт появился уже давно, но там только 127 пользователей. То есть всё-таки что-то там сделано явно не так.
      • +20
        но я бы сделал их обязательными

        Специально для таких обязательщиков у меня есть прозрачный png :)
        • +2
          И квадрат малевича…
      • +4
        >> Но мне не нравится, как конкретно у них реализовано

        Вы нашли фатальный недостаток (ТМ)
        • 0
          Фатальный недостаток, это «сделал не я». А про то, как реализовано, вспоминается притча:

          Садовник обращается к писателю:
          — Знаешь, у меня тут есть задумка для романа, но я-то не писатель, всё равно ничего не получится, а у тебя бы вышел отличный роман
          На что писатель, доедая яблоко, отвечает:
          — У меня есть несколько яблоневых косточек, мне-то они ни к чему, а у тебя бы вышел отличный яблоневый сад
  • –2
    А в чем проблема при возникновении такой ситуации создать проект на freelance-сайте?
    Там есть люди готовые помочь за отзыв и такие проекты появляются.
    • +5
      Мне кажется, что на freelance-сайте, все-таки, немного другие задачи решаются. Исполнителя там больше интересует заработок (без необходимости допускать кого-либо к своей «кухне»), а заказчика, как правило, мало интересует участие в самом процессе, пусть даже и в качестве наблюдателя )
  • +14
    Сама идея благая, но у неё, имхо, есть следующие потенциальные проблемы:
    — как бы такая затея не превратилась в «помогите решить домашку».
    — где гарантия, что туда не набегут не очень компетентные (или ленивые) программисты с целью бесплатно получить ценную консультацию?

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

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

    Да и сама постановка задачи в примере «какое-то запутанное API» уже говорит о том, что человек не в состоянии сформулировать грамотный вопрос. Это плохо уже на этапе старта. Вот если бы он спросил: где почитать/посмотреть хорошие примеры на интересующую его тему, это было бы куда полезнее и эффективнее.

    P.S. Сказанным я совершенно не хочу отговорить вас от идей по реализации проекта. Но здравая критика и резонные вопросы к проекту помогут вам определиться точнее с деталями и направлением его реализации.

    Off:
    Интересный результат голосования. Если срез посетивших данный топик считать репрезентативным, то получается, что у подавляющего большинства хабровчан нет детей.
    • +1
      Ценные мысли, спасибо большое!

      По поводу детей — может быть связано с тем, что люди здесь в большинстве своём довольно молоды.
    • 0
      Кстати, на SO тоже периодически просят решить домашку.
    • +1
      В плане полезности для общества — теоретически, было бы классно, если бы каждый проведённый таким образом сеанс превращался бы в скринкаст со звуком. Тогда у новичков будет прекрасная возможность посмотреть, как другие программисты (в том числе уже весьма опытные) работают над реальными проектами. С полным, так сказать, погружением в их рабочий процесс (да ещё и с возможностью перемотки, если что-то требует повторного просмотра для полноценного осознания).
      • 0
        А вот интересно, есть ли какие-то ресурсы в сети, где были бы видеозаписи сессий хотя бы одиночного программирования? Я вот загуглил на досуге и кроме coderstv.com ничего внятного не нашел, да и там все в каком-то зачаточном состоянии. Мне кажется, что ознакомление с самим процессом программирования воочию было бы полезным делом, особенно для начинающих.
        • 0
          С комментариями разработчика? Этого много, называется скринкасты. У меня есть несколько на YouTube.

          Иногда люди, кстати, делают очень большие проекты с полной записью всего процесса. Например, Крис Койер записывал полный процесс редизайна сайта css-tricks.com.

          А ещё было ускоренное видео, где Нотч писал компьютерную игру за 48 часов. :)
          • 0
            Да, скринкастов много, но это, наверное, не совсем то. Они, как правило, носят учебный характер и рассматривают чаще простые (учебные =) примеры. А вот настоящее (боевое =)) программирование — это особая тема. Другое дело, что когда идет работа над настоящим большим проектом, то, наверное, не всегда удается проследить за мыслью автора во время его манипуляций ) То есть, тут бы не помешало, если бы автор периодически сообщал вслух, что и как он планирует делать )

            Кстати, посмотрел пару ваших роликов на ютьюб. Особенно порадовали музыкальные )
            [ Самому, что ли, достать свой Kramer и запилить на видео какой-нибудь Carcass? =)))))) ]
            • 0
              Да-а-а! Давайте! Я очень люблю музыку, к сожалению, сейчас играю не так много, как хотелось бы. Будете где-нибудь в одном городе со мной (я из Питера, несколько лет в сумме жил в Черногории, немножко в Белоруссии, сейчас в Украине) — приезжайте в гости, будем вместе музицировать и что-нибудь программировать. :)
              • 0
                :) Не знаю, получится ли у меня, но в любом случае спасибо большое за приглашение )

                Кстати, новая тема для startup'а: ресурс, где музыканты могли бы искать себе подобных для совместного музицирования в онлайне ) Заходишь на такой сайт, выбираешь человека, который там уже находится и «свободен», и вместе играете что-нибудь ))) Типа скайповых аудиоконференций, но только более узконаправленных )
                • 0
                  По Интернету? К сожалению, нереально. Даже задержка в 80 миллисекунд — непозволительно много для музыки (если всё-таки хотите попробовать, то скачайте что-нибудь вроде Jamulus). Впрочем, можно выкрутиться, и увеличить задержку ещё сильнее — уже до тактов (см. Ninjam). Но это всё равно странновато. :)

                  А вот в реале джемы — это прекрасно. Одна из самых приятных вещей в жизни. Кстати, я ещё несколько лет назад описал подобную систему, вот здесь текст.
                  • 0
                    Да, про задержку-то я и не подумал. Действительно, ерунда получится, наверное )
                    Jamulus — штука, вероятно, интересная, но это серверный софт, его где-то хостить надо… Знать бы, где он уже используется, чтоб можно было просто подключиться и попробовать :)
                    По поводу реальных (оффлайновых) джемов — полностью согласен, конечно. Вообще игра в коллективе — это прикольная штука )
  • +2
    У языков Haskell и Go, которые приоритетны для меня, очень дружелюбное сообщество. Частенько принимаю участие в подобного рода коллективных сессиях просто на IRC каналах #haskell и #go-noots соответственно. Кодом меняются через gist и hpaste, кроме того у Haskell есть lambdadot прямо на канале, а у Go play.golang.org чтобы в реальном времени проверить код в действии. А вот в javascript я слаб, я больше по серверной части и вот где запросить такую поддержку в JS я даже и не знаю. А хотелось бы.
    • 0
      плюсодин. Конференции неплохо решают задачу.
  • +6
    В описании некоторая неопределенность по моему. Все таки парное программирование — это одно, а помощь в решении конкретных проблем — несколько иное. Имхо, прежде чем разрабатывать систему нужно четче определиться с задачами.

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

    Второй вариант — это скорее «помощь делом». Когда помогающий выступает в роли наставника. Проблемы такого подхода хорошо описал выше tendium.

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

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

    Получается что тот кто просит помощь — тоже вкладывает силы описывая задачу, и оформляя ее как следует. Кроме того он, по сути, предоставляет площадку для записи видеоурока. А все уроки сразу становятся публичными и бесплатными…

    За задачи можно голосовать, можно объединять их в категории и группы. Это может стать со временем целой библиотекой видеоуроков по сложным (и не очень) вопросам ИТ (и не только).

    Вот такой сервис был бы полезен. Как считаете?
    • 0
      Думаю был бы полезен некий каталог проектов, организуемый по принципу вики, но странички проектов принадлежат их авторам. Нужна удобная навигация и возможность описать свой проект: задачи, проблемы, цели… На главной можно публиковать активные задачи проектов с которыми возникли проблемы, тогда каждый участник может посмотреть проект, почитать об авторе и, если заинтересуется — помочь с решением проблем и т.п.
      Вот это мне скафандр.ру напомнило.
    • +1
      Причем все его действия записываются на видео с голосом

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

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

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

          В общем, если соберетесь делать что-то подобное — дайте знать) Интересно будет поучаствовать, и в разработке и в наполнении)
  • +1
    Я бы пользовался!

    Есть также одна идейка, которая помогла бы развитию парному программированию. Эдакий плагин к IDE который бы позволил одновременно двум пользователям редактировать один и тот же файл. Что-то наподобие, как сделано совместное редактирование документов на гугл драйве. Сам думал когда-то что-то подобное реализовать, но как у всех нас — руки не доходят :)
    • 0
      Так есть уже.
      • 0
        А можно немного подробнее?
        • +1
          Первая ассоциация была с emacs. Но гугл еще выдает stackoverflow. И, само-собой, cloud9.
    • +1
      Таких ништяков уже много. :)
    • 0
      Да, кстати, ещё забавная штука — shelr.tv. Хотя это уже немного про другое.
  • +3
    Из-за ребят из Битбакета я думаю, что парное программирование выглядит именно так — www.youtube.com/watch?v=dYBjVTMUQY0
    • +1
      дух толерантной Европы =/
  • +1
    Думаю, что для того, что бы это работало сам сайт должен предоставлять инструменты для парного программирования. Иначе эти пол часа, приведенные в посте, превратятся в 40 минут устанавливаем какую-нибудь удобную всем программу(тимвивер например), потом еще пол часа настраиваем все, что бы был звук, изображение и тд. И только после этого за 20 минут что-то вместе в крайне неудобых условиях делаем.
    Мне кажется, что реальная польза была бы в случае, если я прямо в браузере вижу чужой код и могу там править, слышу человека с которым общаюсь и, желательно, вижу его.
    А проблемы с «решаем дз за школьников» и «я сам ничего не знаю, но лезу помогать», думаю получится решить системой рейтингов.
  • 0
    Если проблема простая и изолированная, то зачем парное программирование? Вполне хватит любого форума, где дают советы. Просто показать свой код, описать задачу и спросить совета. Сайтов таких сотни и они успешно помогают.
    А если это что-то крупное, где действительно будет полезно работать двумя мозгами одновременно, то возникают вопросы:
    1. Сколько времени вы потратите на то, чтобы ввести в курс дела постороннего человека?
    2. А все ли могут (и хотят) показывать код своего проекта посторонним?

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

    Имхо, суть идеи хорошая, но над реализацией автору придется сильно постараться.
  • +1
    Я могу показаться черствым, но я прошу вас ответить мне честно, кому нужны «за так» чужие головняки?

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

    На все это будет уходить не мало времени ( Не мало в масштабах проблемы). И вы же понимаете, что нужно будет вникать не только в чужую проблему, в чужой код! Все знают что это очень не просто.

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

    PS мне одному опрос про детей показался неожиданным и совершенно не к месту?
  • 0
    Мне кажется, что при достаточной скорости соединения наилучшим вариантом будет удалённый рабочий стол с возможностью комментировать голосом свои действия.
    Потому что важен ещё и некоторый социальный аспект — многие люди просто необщительны, или стеснительны.
    • +1
      наилучшим вариантом

      комментировать голосом

      люди просто необщительны, или стеснительны.

      Я вряд ли полезу помогать незнакомому человеку, если он от меня ожидает комментариев голосом.
  • +3
    Главный минус по сравнению с тем же stackoverflow в том что твоя работа (как помощника) не масштабируется. Вот помог ты на stackoverflow одному человеку, а это пригодилось еще 100. Приятно. А в этом случае нужно каждого отдельного человека вести за ручку. И не понятно станет он от этого умнее или ленивее.
  • 0
    Идея хорошая, но вы слегка опоздали, довольно недавно появился Floobits и ещё сейчас в закрытой бете Codementor.
    • 0
      Они не русскоязычные, так что есть рынок в принципе.
      • 0
        В хроме Google Translate отлично всё переводит. А потом уже, в Vim и Sublime и переводить-то нечего.
        Ко всему прочему, Floobits написан рубистами, а там с i18n дела хорошо обстоят, и сделать перевод, хоть на 100 языков — дело плёвое.
        • 0
          Не в интерфейсе проблема основная, а в сообществе, в ЦА.
  • 0
    А чем плоха связка любого QsA и любого онлайн редактора типа jsfidde или codepen? Мне кажется удобнее уже некуда.
    • 0
      Процессы организовывать надо как-то всё равно.
  • 0
    А «парное» это пАрное или парнОе? :) Просто если пАрное (в смысле вдвоём), так почему всего вдвоём, если любой желающий может заняться и их часто будет больше двух? А если парнОе, то это в смысле, что «с пылу с жару», как парнОе молоко (свежайшее и ещё тёплое)? Тогда не пойму, к чему тут свежайшесть? :)

    Может быть, таки «коллективное», «мозговой штурм» и т. п.?
    • 0
      Пока что просто поставил ударение. :)

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