Когато за първи път открих света на програмирането, знаех, че е за мен, но не знаех колко трудно ще бъде това пътуване. Преди да започна да кодирам, вярвах, че макар да имаше моменти, когато човек трябваше да си сътрудничи и да споделя работата си, разработването на код обикновено беше изолирана работна среда, в която човек трябваше да разчита главно на своите умения и интуитивност, за да оцелее. О, колко грешах! През първите няколко седмици, в които се учех да кодирам, аз се опитвах да атакувам проблем след проблем сам (и с най-добрия приятел на всеки разработчик, Google). Въпреки че в крайна сметка успях да ги преодолея, често се усещах, че изоставам от връстниците си и че работата ми не се произвежда по достатъчно ефективен начин. Имаше и много пъти, когато успях да завърша работата, чувствах, че не схващам концепциите толкова добре, колкото би трябвало. Като цяло увереността и егото ми бяха ударени и то бързо. Не знаех, че всичко това скоро ще се промени благодарение на програмирането по двойки.

Какво е програмиране по двойки?

Според първия ред на страницата му в Уикипедия „Програмирането по двойки е гъвкава техника за разработка на софтуер, при която двама програмисти работят заедно на една работна станция“. Въпреки че това е полезно начало, но това все още кара много от нас да се чудят, какво е гъвкава техника за разработка на софтуер?

Разработка на гъвкав софтуер

Гъвкавата разработка на софтуер може да се дефинира като различни подходи, които използват съвместни усилия за намиране на решения и разрешаване на проблеми в разработката на софтуер. По този начин помага за насърчаване на бързото развитие и доставка, дори и при неочаквани промени, като същевременно помага за стимулиране на растежа и подобряването на кода.

Програмиране по двойки и различните роли

Страхотно, сега знаем, че програмирането по двойки се състои от две неща, първо, че това е техника за кодиране, която ни помага да кодираме „по-интелигентно“ и насърчава ученето, и второ, че двама души работят заедно на един компютър.

Много от вас вероятно се чудят в момента как двама програмисти могат да работят на един компютър едновременно. Е, всъщност е доста просто, когато работите в програмирането по двойки, има две роли, водача и навигатора. Тези роли не са постоянни и обикновено се разменят на всеки 15 до 30 минути. И двете роли са много различни, драйверът е този, който е на компютъра и тяхната работа е да напишат кода, това е. Междувременно навигаторът решава посоката и идеите за кода (това обаче не означава, че само навигаторът има думата кое е правилно и кое не, много е важно да се обсъжда и работи като екип). Това позволява на водача да се съсредоточи повече върху това как да се справи с кода и да го напише възможно най-чисто и ефективно.

Какъв е общият консенсус относно програмирането по двойки?

Както всички концепции, програмирането по двойки има както вярващи, така и скептици. Тези, които проповядват програмирането по двойки, вярват, че то създава по-безопасен код, спестява време, пише по-добър код, увеличава ученето, води до по-добро разбиране на поставената задача, повишава увереността, както и фокуса, и може би най-важното увеличава радостта при писане на код.

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

Къде другаде програмирането по двойки може да бъде полезно

Програмирането по двойки може да бъде чудесен инструмент за бизнеса, който да включи в своята структура, тъй като има много предимства. В зависимост от това как се подходи към ситуацията, тя може да има както икономически ползи, така и ползи за развитието. Икономическите ползи имат пряка връзка с повишаването на ефективността на работата, тъй като старата поговорка гласи „времето е пари“ и когато програмистите могат бързо да разработят нов код, това често означава, че ще има повече време за други задачи. Друг начин, по който една компания може да се възползва от програмирането по двойка, е когато сдвои старши и младши кодер, тъй като старшият кодер може да помогне в ориентирането на младшия и да го научи на техники и идеи, с които може да са се затруднявали или да не са знаели. Същото може да се каже и за сдвояването на двама младши разработчици заедно. Често те ще имат различни силни страни и могат да се хранят взаимно, за да помогнат както да учат, така и да растат с по-бързи темпове.

Кои са някои неща, които трябва и не трябва да се правят при програмиране по двойки?

Do:

  • Редувайте позициите на всеки 15-30 минути
  • Обсъждайте идеи, когато има несъгласие с подхода
  • Отделете време за подготовка

Не:

  • Ако вие сте шофьорът, не създавайте по-бързи от вашия навигатор
  • Програма за сдвояване, ако нейната работа може лесно да се извърши сам
  • бъди близък

Как програмирането по двойки работи за мен

Програмирането по двойки беше голяма помощ за мен лично при изучаването и писането на код. Чрез своя характер на сътрудничество, той ми позволи да се развивам и да уча най-ефективно досега. Научи ме как да организирам по-добре мислите си, когато пиша, и да не се поддавам на задачи, които преди са ме карали да се чувствам победен. Чрез използването на програмиране по двойки, концепции, които преди бяха трудни за разбиране, бяха улеснени при работа с навигатор, който ми помогна да изложа своите мисли и идеи на масата, помагайки да освободя ума си от прекалено мислене и да науча нови перспективи за това как да се справя с тях. По този начин той също така улеснява работата и позволява повишаване на ефективността и производителността.