Предложение за процеса и изискванията за отборните проекти
Инспириран от темата за записването за Javascript apps отборните проекти, искам да изложа едни свои виждания в лицето им на предложения, как би трябвало да протече работата по отборния проект, така че ясно да се открои кой е работил и кой не и да няма субективизъм. Или както Кико каза в другата тема - да не става така, че по-силните да не оставят по-слабите да работят, а после на всичкото отгоре да излязат и да кажат, че останалите не са работили.
Минава записването. Отборите се разпределят. На всеки отбор се дава 1 ден да излъчи кандидати за "Team leader". След това на отборът се дава 1 ден да гласува за тези кандидати, като гласуването за себе си не е позволено. (Естествено има го вариантът всеки да събере един глас, тук може да се измисли нещо по-хитро?). Съответно излъчва се Team leader на отбора.
Тук трябва да има строги изисквания какъв ще е процесът, който всеки отбор трябва да следва. Основната задача, освен да пише код, на тим лидера ще е да се грижи установеният процес да работи.
Процесът, който ще предложа е инспириран от съвременните методологии за проджект мениджмънт.
Нека вземем за пример, че за отборния проект след установяване на кой ще е тим лидер остават 20 дни. От тук започва да тече и deadline-а на проекта.
20 дни се разделят на ПЕТ четиридневни итерации. Първата итерация задължително е установяване на останалите роли в проекта. След като учим HQC и Unit testing предлагам за задължително да има един QA в отбора.
Останалите ЧЕТИРИ итерации трябва да са изцяло development, testing && integrating насочени.
Според изискванията на отборния проект, например, всеки член е задължен да има по 5 къмита в 5 различни дни, тим лидерът се нагърбва с тежката задача, да разпредели достатъчно продуктивни задачи на съотборниците си, така че всяка задача да изисква поне един къмит, и така до поне 5тия къмит.
Всяка задача ТРЯБВА да се логва в тракинг системата която се ползва. В случая, ако е задължително използването на Github - в тракинг системата на гитхъб (Issues таба).
На представянето на екипния проект да може да се каже за някой съотборник, че не е участвал, САМО АКО не са успели да се свържат с него или след като са успели и е добавен към колабораторите на репозиторито и са му асайннати ПЕТ или повече валидни задачи, той НЕ Е резолвнал ПОНЕ ПЕТ от тях и съответно НЯМА ПЕТ къмита в 5 различни дни (или итерации най-добре).
Ако тимлидерът не се справи с тази задача, отборът може да излъчи чисто демократично друг такъв. Ако отборният проект фейлне заради лоша организация от към тим лидер, виновни са всички - за избирането на такъв тим лидер и за неуспешното избиране на нов такъв.
За цялостното оценяване на проекта да се гледа не само крайния продукт, но и процесът на работа, след като всичко ще се траква в тикети, разпределени в итерации, да се гледа дали срокът на итерациите а спазен и други неща, които говорят за успешното или съответно неуспешното сработване на отборите.
Също така може да се види какви точно са били разпределени задачите, и дали на някого не му е разпределено просто да ъпдейтва README.md с по 1 символ на таск.
Ако смятате, че идеята с подобен проектов мениджмънт ще е трудна да се реализира заради например недостатъчно опит на участващите, предлагам да се организира кратък курс по Съвременни практики за управление на проекти, с времетраенето на Javascript OOP курса.
Принципно това с менторите може да проработи по този начин, ако се доизпипа и то.
Иначе съм готов да го доизшлайфаме предложението. Вместо да отпада итерацията, може някак си в движение да се преквалифицира. Просто ще е по-трудно за отбора, уж.