
Човечката страна на соработката во развојот на софтвер
Градење на ефективни тимови и комуникација во развојот на софтвер.
Соработката во развојот на софтвер е, во суштина, длабоко човечко настојување. Артефактите кои преживуваат — кодот, дизајнерските датотеки, git историјата — се само фосили на разговорите кои ги создале. Кога соработката во развојот на софтвер оди добро, тие разговори создаваат софтвер кој ја одразува колективната интелигенција. Кога соработката во развојот на софтвер оди лошо, артефактите ги отсликуваат нерешените човечки конфликти прикриени како технички долг. Овој напис ја покрива човечката страна на соработката во развојот на софтвер, која техничките учебници честопати ја игнорираат. Погледнете ја нашата страница за нас за тоа како ги структурираме тимовите.
Прво, успешната соработка во развојот на софтвер зависи од психолошката безбедност. Инженерите кои се плашат дека ќе бидат осудени за поставувањето прашања ќе престанат да ги поставуваат, со што проблемите се кријат додека не станат скапи. Наспроти тоа, тимовите со силни навики за соработка во развојот на софтвер го нормализираат „Не го разбирам овој код, можеш ли да ми го објасниш?" како предност, а не слабост. Последователно, менаџерите кои сакаат подобра соработка во развојот на софтвер треба самите да покажат ранливост — јавното признавање на сопствените празнини во знаењето го учи тимот дека признавањето на празнини е прифатливо. Погледнете ја Википедија за психолошка безбедност за истражувачката позадина.
Второ, писмената комуникација е основа на скалабилната соработка во развојот на софтвер. Вербалниот разговор има голем пропусен опсег, но не оставa запис; состаноците ги исклучуваат оние кои се во различна временска зона. Наспроти тоа, писмената соработка во развојот на софтвер — преку дизајн документи, описи на pull request, писмени stand-up состаноци, RFC и записи за архитектурни одлуки — се скалира низ различни големини на тимови и временски зони. Освен тоа, самиот чин на пишување поттикнува појасно размислување отколку еквивалентната усна размена.
Трето, соработката во развојот на софтвер исклучително поволно се одвива во мали тимови. Над приближно осум луѓе, комуникациските трошоци растат супер-линеарно. Поради оваа причина, соработката со висок учинок во развојот на софтвер обично се случува во тимови од три до седум инженери со единствена и јасна цел. Освен тоа, кога тимовите треба да пораснат над таа големина, поделбата на под-тимови со јасни интерфејси дава подобра соработка во развојот на софтвер отколку задржувањето на сите во еден голем простор.
Четврто, прегледот на кодот е местото каде соработката во развојот на софтвер или процветува или пропаѓа. Прегледите кои се фокусираат на суштината (компромиси во дизајнот, гранични случаи, нејасно именување) ја јакнат соработката во развојот на софтвер; прегледите кои се задржуваат на личните стилски преференции ја слабеат. Соодветно, најдобрите култури на соработка во развојот на софтвер имаат јасни норми за прегледување: да се цели кон конструктивен тон, да се разделат „мора да се промени" од „размисли за промена" и да се прослават промените кои сте ги нашле поучни. Дополнително, спарувањето при тешки прегледи честопати е побрзо отколку асинхроно прегледување.
Петто, несогласувањето е здраво за соработката во развојот на софтвер. Тимовите кои се согласуваат на сè или не размислуваат критички или ги потиснуваат вистинските приговори — и двата исходи се лоши. Наспроти тоа, тимовите со силна соработка во развојот на софтвер го третираат несогласувањето како ресурс: добро изразениот приговор обично укажува на ризик кој никој друг сè уште не го артикулирал. Поради оваа причина, ритуалите на соработката во развојот на софтвер треба да вклучуваат формални механизми за регистрирање на неслагање (писмени силни мислења, јасни одлуки на техничкиот раководител по слушање на неслагањето, архитектурни прегледи).
Шесто, соработката во развојот на софтвер бара заеднички контекст. Нови членови на тимот кои немаат контекст не можат ефективно да соработуваат, без оглед на тоа колку се вешти поединечно. Следствено, добрите култури на соработка во развојот на софтвер инвестираат многу во воведување: спарување со постари инженери две недели, реализирање на документирани проекти за учење пред да се допре производното опкружување и одржување на вики-страниците за воведување кои објаснуваат зошто системот е таков каков е, а не само што е.
Седмо, соработката во развојот на софтвер низ дисциплини го мултиплицира резултатот. Кога дизајнерите, инженерите и менаџерите на производи работат како еден тим, наместо да разменуваат артефакти, соработката во развојот на софтвер произведува подобар софтвер побрзо. Освен тоа, меѓудисциплинарната соработка во развојот на софтвер рано ги фаќа проблемите: дизајнер кој учествува во прегледите на кодот забележува дека имплементацијата отстапува од дизајнот; инженер кој учествува во интервјуа со корисници ги разбира граничните случаи пред првата линија на код. Видете ја нашата страница кариери за тоа како вработуваме за меѓудисциплинарни вештини.
Осмо, далечинската соработка во развојот на софтвер бара намерен напор. Сигналите кои се бесплатни во заедничка канцеларија — говорот на телото, скиците на табла, случајно слушнатите разговори — исчезнуваат при далечинска работа. Поради оваа причина, далечинските култури на соработка во развојот на софтвер намерно компензираат: повеќе писмен контекст, поексплицитни структури за состаноци, политики за вклучена камера за важни разговори и редовни тимски недели со физичко присуство. Далечинската соработка во развојот на софтвер може да биде одлична, но само кога тимовите ги признаваат трошоците и свесно ги плаќаат.
Деветто, соработката во развојот на софтвер низ времето е потешка отколку соработката во еден момент. Тимот кој пишува систем речиси никогаш не е истиот тим кој го одржува три години подоцна. Соодветно, кultureите на соработка со висок учинок во развојот на софтвер пишуваат за идните читатели: коментарите објаснуваат зошто, а не што; архитектурните одлуки се документираат со компромисите; commit пораките раскажуваат приказни. Соработката во развојот на софтвер која ја игнорира оваа идна публика произведува системи кои се скапи за развивање, дури и кога самиот код е технички исправен.
Десетто, јавното прославување на соработката во развојот на софтвер ја зајакнува культурата. Кога тежок производствен инцидент се решава преку силна тимска работа, приказната треба да се раскаже — на ретроспективата на тимот, во внатрешна блог-публикација, пред целата компанија. Слично, кога меѓутимска соработка испорачува функционалност сакана од корисниците, заслугата треба да се подели експлицитно. Соработката во развојот на софтвер која останува непризнаена бледнее; соработката во развојот на софтвер која јавно се прославува се множи.
Во Square Software ја гледаме соработката во развојот на софтвер како инвестиција со највисока потпора со која може да се зафати технолошки лидер. Секој долар потрошен на подобрување на соработката во развојот на софтвер — подобро пишување, подобри состаноци, подобро воведување, подобри ретроспективи — дава мултиплицирани поврати за секоја функционалност која тимот ја испорачува потоа. Наспроти тоа, тимовите кои ја третираат соработката во развојот на софтвер како меко оптоварување обично во рок од неколку години откриваат дека нивниот тежок технички резултат стагнирал. Силните луѓе плус силната соработка во развојот на софтвер ги надминуваат индивидуалниот генијалност секогаш. Контактирајте не преку страницата за контакт за ангажмани за тимски коучинг.
Спремни да го започнете вашиот проект?
Да разговараме како можеме да ви помогнеме да ги оживеете вашите идеи со софтверски решенија по нарачка.
Контактирај нè