- View Larger Image
Як організувати навчання в команді початківців програмістів
Є багато переваг командної розробки, але не кожна команда закінчує свої проекти і успішно отримує очікуваний результат. Це відбувається по ряду причин, які початківцям командам важко уникнути через відсутність досвіду.
У цій статті я постараюся дати деякі поради, які допоможуть поліпшити процес розробки в команді, отримати необхідний досвід і якісно вивчати питання, що цікавлять технології.
Ініціація успішного навчального проекту
Лідер в команді
Перед початком роботи важливо вибрати лідера, який буде виконувати роль технічного керівника. Вибирати цю людину повинні всі члени команди, спираючись на компетентність людини в технологіях, які зібралися вивчати. Також дуже важливо, щоб ця людина була зацікавлений в тому, щоб проект був успішний, команда написала якісний продукт. Це дасть гарантію того, що обраний вами людина буде намагатися вирішити всі проблеми, які будуть з'являтися в ході розробки, а також що проект не буде провалений.
Команда повинна розуміти, що останнє слово завжди буде за лідером, і в разі спірних ситуацій остаточне рішення буде приймати саме він. Звичайно, лідер повинен слухати і радитися з усіма членами команди, але фінальний вибір залишається за ним - інакше довгих суперечок і конфліктів по різних питаннях не уникнути.
Сталінський підхід, або лояльність шкідлива
Перед початком роботи кожен повинен знати про свої обов'язки. У кожного члена команди повинна бути своя роль і певні завдання. Кожен повинен розуміти, що він зобов'язаний слідувати загальним правилам і працювати як всі. Якщо людина не зацікавлена в якісному виконанні завдань і успішному навчанні, варто задуматися, чи потрібен такий чоловік в команді, адже він буде гальмувати весь процес розробки.
Тому важливо контролювати процес виконання завдань. Для цього можна використовувати таких інструменти, як Jira, Freedcamp, де видно, які завдання були призначені людині і впорався він з ними. Для цього також важливо визначати терміни для кожного завдання, інакше можна дуже довго тягнути виконання завдань і в результаті так нічого і не зробити. Якщо весь час проявляти лояльність до хлопців, які шукають тільки відмовки, а не шляхи вирішення, то це завалить увесь проект.
Повинна бути мета
Команда повинна чітко знати, чого вона хоче досягти в кінці командного вивчення. Тому повинна бути визначена задача, обрані технології. На кожного тижня (або інший зручний проміжок часу) повинні бути поставлені підзадачі, які приведуть до кінцевої мети. Конкретна мета допомагає зосередитися на головному і дає знання того, до чого потрібно йти.
Для цього потрібно скласти специфікацію - опис головних завдань, які потрібно реалізувати. У цьому документі повинен бути детально описаний функціонал, завдяки якому ваша команда буде виконувати завдання. Так ви зможете зануритися в предметну область, продумати хорошу архітектуру для розробки і в результаті вирішити проблему, а не просто писати якийсь код.
Інструменти розробки одні для всіх
Кожен учасник команди повинен використовувати однакові засоби розробки. Тобто якщо команда вибрала використовувати Intellij IDEA, то все використовують цю середу розробки Якщо вирішили використовувати базу даних Oracle, значить ніхто не використовує Postgres. Вам потрібно визначити з самого початку, щоб потім все знали і використовували тільки вибрані інструменти. Інакше буде йти дуже багато часу на вирішення інших проблем, які будуть виникати через несумісність версій і т.д.
Визначтеся з часом, яке кожен учасник повинен приділяти проекту. Якщо у кого-то не вистачає часу на роботу, чи варто його взагалі брати в команду? Ви повинні розуміти, що команда повинна працювати ефективно, мотивувати один одного. Для цього потрібен час. Тому заздалегідь домовтесь скільки годин будете щодня / щотижня приділяти проекту.
Команда, яку ви формуєте або в якій берете участь, повинна бути зацікавлена в придбанні навичок, а не в тому, щоб що-небудь написати і швидше влаштуватися на роботу. З таким підходом ніколи не досягти ефективного навчання. Вибирайте в команду людей, які дійсно хочуть вчитися, розвиватися, писати красивий код, використовувати нові технології, самостійно вирішувати проблеми. Ваша команда повинна бути мотивована до навчання, і ця мотивація буде ключем до успіху проекту і придбання важливих і потрібних навичок.
взаємодія команди
Для команди необхідна комунікація і хороші відношення між учасниками. Щоб не було образ, щоб кожен учасник міг сміливо запитувати рада у товариша, і останній з радістю йому допомагав.
Якщо є можливість зустрічатися оффлайн - це просто прекрасно. Якщо такої можливості немає, потрібно, як мінімум, організовувати скайп зустрічі. Це дасть більше спілкування команді і в результаті можливість вирішувати проблеми ще на стадії їх виникнення. Визначте найбільш зручний спосіб для комунікації і розвивайте у вашій команді про-активність в спілкуванні, що дасть можливість ефективно вирішувати всі проблеми.
вибір проекту
Часто буває так, що команда збирається, а що писати будуть - вирішити не можуть. Для цього потрібно всім разом обговорювати, який проект буде цікаво всім розробляти і які проблеми вирішувати. Після визначення теми проекту, потрібно скласти специфікацію проекту, де буде прописано конкретного функціонал, який ви будете реалізовувати. Це потрібно для того, щоб кожен учасник знав, який функціонал буде в кінці, і слідуючи з цього формувати завдання.
поширені помилки
Вище я описав основні аспекти, на які потрібно звернути увагу при побудові командної роботи. Варто також сказати про те, чого не потрібно робити. щоб успішно побудувати команду:
- Мало спілкуватися з учасниками команди;
- Використовувати різні інструменти розробки;
- Мати всім учасникам однакове право голосу;
- Приділяти мало часу проекту;
- Думати, що зробиш своє завдання в останній момент;
- Чи не цікавитися, як виконують завдання інші;
- Думати тільки про свої завдання;
- Чи не вибирати лідера;
- Брати участь в проекті просто так, без мотивації;
- Бути лояльним до постійного невиконання завдань іншими учасниками.
Робота в команді - це складно тільки в тому випадку, якщо ви не знаєте, як організувати роботу. Якщо ж вам відомі ці базові принципи, які завжди сприяють ефективній навчанні, придбання нових навичок і досвіду, то робота в команді для вас буде тільки задоволенням.
Не забувайте про те, що щоб побудувати успішну команду, потрібно знайти людей, які зацікавлені в розвитку, вибрати цікавий всім учасникам проект, скласти специфікацію проекту, розділити завдання і приступати до їх виконання. Пам'ятайте, що команда - це люди, які постійно спілкуються, обговорюють і вирішують проблеми, а не ті, хто працюють самі по собі і іноді пишуть, що щось зробили.
Вчіться працювати в команді, тому що без цього в житті не-як, особливо якщо ви хочете працювати в IT компанії або в стартапі. Дотримуйтесь цих базових принципів, щоб досягти успіху в командному розробці, знаходите однодумців і створюйте проекти з хорошим кодом і красивою архітектурою.