Як організувати практикум з командної розробки програмного забезпечення для студентів Львівської Політехніки

Привіт! Мене звати Мирослава, я Learning and Development Specialist компанії Sombra із 7+ роками досвіду в сфері едукаційних програм для дорослих. У цьому процесі мене драйвить можливість спостерігати, як люди вчаться і розвиваються, як ідеї, що виникають в аудиторії чи групі, виходять за межі навчання і стають реальними проєктами. Я хочу поділитися досвідом дизайнування та реалізації практикуму «Командна розробка програмного забезпечення» для студентів Національного університету «Львівська Політехніка».

Передумови створення курсу

Ідея провести практикум із командної розробки програмного забезпечення у Львівській Політехніці виникла після звернення від університету до СЕО компанії Віктора Чеха, який також є випускником цього навчального закладу. Для мене та моїх колег це стало можливістю поділитися практичним досвідом із майбутніми спеціалістами.

Метою було створити курс, який інтегрує теорію та практику, зосереджуючись на реальних кейсах, інструментах і підходах, що використовуються у повсякденній роботі ІТ-команд. Однак реалізація цієї ідеї вимагала ретельної підготовки. Перед нами постали важливі запитання:

  1. Як розробити програму, яка була б одночасно цікавою і максимально прикладною для студентів?
  2. Як залучити досвідчених співробітників компанії до викладання, забезпечивши різноманітність і практичну цінність кожної теми, органічно поєднаних в один курс?
  3. Як організувати навчання так, щоб воно було зручним як для студентів, так і для викладачів?



Про курс

Варто розпочати із загального опису курсу, структури, наповнення тематичних блоків та основних цілей. Курс передбачає вивчення сучасних методів і засобів командної розробки програмного забезпечення інформаційних систем. Програма орієнтована на студентів другого року навчання та поєднує лекції з практичними заняттями. Однією з її переваг було проведення лекцій у Львівській Політехніці, а практичних занять — в офісі компанії. Це дозволило студентам не лише навчатися у звичному академічному середовищі, а й відчути реальну робочу атмосферу ІТ компанії.

Основні тематичні блоки і ключові цілі:

  1. Роль лідера в команді — ця тема про основи ефективної командної роботи, про різницю між групою та командою, мету й типи команд, а також значення лідера, стилі лідерства та кризове управління командою.
  2. Взаємодія з клієнтами — ключовою метою цієї навчальної теми було ознайомити студентів із різними типами технологічних компаній та команд, їхньою структурою, ролями та позиціями. Навчити визначати зацікавлених осіб, розуміти цілі замовника, компанії та інженера при розробці програмного забезпечення.
  3. Життєвий цикл розробки ПЗ (SDLC) — у третьому блоці студенти вивчали процеси, фази та ітерації SDLC (Software Development Life Cycle), основні підходи Waterfall і Agile, їхній вплив на командну взаємодію та критерії вибору методології залежно від задачі.
  4. Основи бізнес-аналізу — самостійно обравши проект студенти вчилися аналізувати майбутній об’єкт проектування, формувати продуктове бачення, збирати, описувати та структурувати вимоги, що є основою для створення успішних продуктів.
  5. Основи UI/UX дизайну — включали принципи проектування користувацького досвіду, побудови інтерфейсів та тестування прототипів. Окрему увагу було приділено синхронізації із блоком по бізнес-аналізу, та презентування мокапу власного додатку чи вебсайту.
  6. Архітектура та дизайн програмного забезпечення — ключовою ціллю цієї навчальної теми було продемонструвати студентам як правильно будувати архітектуру, визначати вимоги та вибирати відповідні мови програмування та технології для розв’язання задач.
  7. Робота з GIT. CI/CD — ця тема включала основи роботи з менеджером версій GIT, Git Workflow, а також базові команди для ефективного використання системи. Студенти вчилися працювати з конфліктами злиття, використовувати pull requests тощо. Крім того, студенти мали нагоду познайомитися з принципами CI/CD, створенням CI/CD pipeline та популярними інструментами для автоматизації процесів розробки й доставки програмного забезпечення.
  8. Командна динаміка — заключна тема курсу, яка мала на меті підсумувати досвід командної взаємодії студентів і продемонструвати, як міні-команди розвивалися, еволюціонували та взаємодіяли уже на прикладі їхніх реальних кейсів. Студенти аналізували, з якими проблемами вони як команда стикалися, які стадії розвитку пройшли і які ролі при цьому виконували. Для цього були використані підходи та інструменти, зокрема стадії розвитку команди за Брюсом Такманом, командні ролі за Мередітом Белбіном та концепція п’яти вад в команді за Патріком Ленсіоні.

Завдяки такому комплексному підходу студенти отримали цілісне уявлення про командну роботу та процеси розробки програмного забезпечення.

Курс тривав 15 тижнів, включаючи регулярні лекції, практичні заняття, домашнє завдання та презентації проєктів. За два роки курс пройшли понад 350 студентів.

Викладачі — ключова частина успіху

Спочатку планувалося, що курс викладатиме одна людина, але ми вирішили залучити експертів, які працюють із кожною конкретною темою на практиці. Це дозволило не лише поглибити зміст курсу, але й зробити його більш актуальним для студентів.

20 працівників із компанії поділилися не лише теоретичними знаннями, а й реальними кейсами зі своєї роботи. Цей підхід дав змогу студентам побачити, як теоретичні знання застосовуються на практиці, і отримати відповіді на запитання, які часто залишаються поза межами підручників.

Наприклад, студенти цікавилися, як правильно організувати процес взаємодії між різними ролями в команді, як інтегрувати вимоги замовника в розробку або які стратегії використовуються для уникнення помилок у командній роботі. Викладачі ділилися своїм досвідом і пояснювали, як ці аспекти вирішуються в реальних проєктах.

Крім того, робота з різними експертами допомогла студентам зрозуміти, як бізнес-аналітики, дизайнери та розробники взаємодіють у команді, щоб разом досягти спільної мети.






Формат навчання

Навчання розпочалося з формування студентів у міні-команди по 5-6 осіб, які працювали разом протягом усього семестру. Це дозволило студентам відчути реалії командної розробки програмного забезпечення та побачити, як їхні індивідуальні навички можуть доповнювати одна одну в межах групи.

Кожне практичне домашнє завдання вимагало командного виконання, включаючи спільне планування, розподіл ролей та презентацію результатів. Наприклад, одна команда займалася створенням прототипу додатку, де студенти самостійно визначали, хто відповідатиме за бізнес-аналіз, дизайн, розробку та тестування.

Викладачі оцінювали не лише кінцевий результат, але й процес роботи. Особлива увага приділялася тому, як команди організовували взаємодію, розв’язували конфлікти та долали виклики. Наприклад, коли одна з команд зіткнулася із затримкою через погану комунікацію, викладачі провели з ними ретроспективу, щоб допомогти виявити та виправити проблеми.

Такий підхід створив атмосферу, де головними цінностями стали кооперація, взаємодопомога та підтримка. Студенти навчалися розподіляти завдання, колективно вирішувати проблеми та адаптуватися до непередбачуваних викликів у командній роботі. Основний акцент ми зосередили не на індивідуальних досягненнях, а на тому, як ефективно команда взаємодіяла для досягнення спільної мети.

Приклад одного з модулів

Тема: Робота з GIT. CI/CD

Лекційна частина:

Під час лекційного заняття студенти отримали базове розуміння роботи з системами керування версіями та автоматизації розробки. Вони вивчили, що таке менеджер версій і Git Workflow, дізналися про основні команди Git (init, clone, add, commit, push, pull), способи вирішення merge конфліктів, а також принципи роботи з pull requests і практики використання Git у командній роботі. Окрема увага була приділена CI/CD, включаючи концепції неперервної інтеграції та доставки, структуру CI/CD pipeline і популярні інструменти, такі як GitHub Actions, Jenkins, тощо.

Домашнє завдання:

При підготовці до практичного заняття студенти працюючи в своїх командах, створювали умовний проект «My Dream Team». В межах завдання студенти виконували наступні дії: завантажували шаблон вебзастосунку та створювали репозиторій на GitHub, працювали з гілками, додаючи власну інформацію в окремій гілці, розв’язували merge конфлікти та створювали pull requests із подальшим code review. Завершальним етапом було злиття змін в основну гілку з автоматичним деплоєм на Vercel.

Практичне заняття:

Під час практичного заняття студенти з викладачем в режимі реального часу виконували всі етапи розгортання змін та демонстрації релізу. Вони комітили зміни до локального коду, створювали pull request для злиття в основну гілку, проходили процес code review і отримували схвалення на злиття. Після цього CI/CD pipeline автоматично деплоїв зміни на платформу Vercel, де викладачі перевіряли, чи всі оновлення коректно працюють у продакшині. Заняття дозволило закріпити практичні навички роботи з Git і CI/CD, моделюючи реальні умови командної розробки програмного забезпечення.

Рекомендації для організації подібного курсу

Цей курс підтвердив, що співпраця між університетами та ІТ-компаніями є не тільки можливою, а й надзвичайно корисною. Ось наші рекомендації для тих, хто хоче реалізувати схожу ініціативу:

1. Планування та підготовка курсу

  • Визначте мету курсу. Подумайте, які знання та навички ви хочете передати студентам. Визначте чому, та яку саме практичну користь вони принесуть студентам в майбутньому. Провалідуйте їх, переглянувши, наприклад, навчальну програму студентів, а саме попередні та наступні навчальні курси.
  • Побудуйте партнерство з університетом. Узгодьте формат навчання, графік та тематику.
  • Підготуйте детальну програму курсу. Визначте чіткі теми та кінцеві результати, яких студенти мають досягти. Методи навчання та викладання, критерії та підходи до оцінювання рівня досягнення результатів. Це допоможе структуровано підійти до кожного навчального етапу.
  • Залучайте відповідних експертів із практичним досвідом. Викладачі, які працюють із реальними проєктами, зроблять курс більш актуальним і корисним. Важливо, щоб експерти могли поділитися як теоретичними знаннями, так і реальними кейсами.
  • Інтегруйте технічні інструменти, що використовуються на ринку.
    Використовуйте інструменти, які відображають реальні потреби індустрії: GIT, CI/CD, Jira, Figma, або інші. Це допоможе студентам підготуватися до роботи в сучасних командах.

2. Реалізація навчання

  • Створіть баланс між теорією та практикою. Лекції забезпечують базові знання, а практичні завдання дозволяють одразу застосовувати їх на реальних кейсах. Поєднайте ці підходи для кращого пояснення матеріалу.
  • Фокусуйтеся на командній роботі. Формуйте студентів у міні-команди та давайте завдання, які потребують співпраці. Це допоможе розвинути навички комунікації, взаємодії та спільного вирішення проблем.
  • Інтегруйте навчання у реальне робоче середовище. Проводьте частину занять у середовищі, що нагадує реальні офісні умови. Наприклад, студенти можуть працювати над завданнями в офісі компанії або використовувати корпоративні інструменти.
  • Додайте інтерактивності та за можливості гейміфікації. Під час лекцій уникайте монологу, залучіть студентів через дискусії, запитання, обговорення. Під час практичних занять додайте елементів гри, змагання між командами, рольові ігри тощо. Такий підхід не лише допоможе втримати увагу студентів, а й сприятиме покращенню їх командних навичок, креативності та здатності до швидкого вирішення проблем.
  • Підготуйте додаткові матеріали для ознайомлення. Надавайте додаткові ресурси, такі як презентації, відео, статті після занять, а також альтернативні джерела інформації, що виходять за межі методичок чи підручників. Це дозволить студентам не лише закріпити знання, а й самостійно досліджувати тему глибше, покращувати критичне мислення та експертизу в основній області та суміжних дисциплінах, що підвищує їхню адаптивність і професійну цінність.

3. Оцінка і вдосконалення

  • Оцініть не лише результат, але й процес. Під час оцінювання звертайте увагу на те, як команда працювала над завданням: як розподілили ролі, планували час і взаємодіяли між собою. Це навчить студентів важливості процесу роботи.
  • Регулярно надавайте та просіть зворотний зв’язок. Викладачі повинні регулярно надавати фідбек на виконані завдання, що дозволить студентам краще зрозуміти свої сильні сторони та зони для розвитку. Впродовж та наприкінці курсу попросіть студентів поділитися думками про програму, щоб покращити її для наступних груп і врахувати реальні потреби аудиторії.

Результати у цифрах

За два роки проведення практикуму ми досягли таких результатів:

  • 350+ студентів пройшли курс і здобули практичні навички командної роботи при розробці програмного забезпечення.
  • 20 викладачів з різних відділів компанії Sombra поділилися своїм практичним досвідом.
  • 97% студентів успішно виконали усі завдання в командах.
  • За результатами опитування, 90% студентів оцінили курс як корисний для підготовки до роботи.
  • Під час курсу студенти використовували такі сучасні інструменти, як GIT, CI/CD, Vercel, FigJam, Figma, Hotjar, Maze, Canva, Gamma, Draw.io та інші.

Підсумки

Цей практикум — не лише про передачу технічних навичок. Це про створення простору для творчого мислення, де студенти можуть побачити, як на практиці працює команда, яка здатна вирішувати складні завдання, адаптуватися до змін та експериментувати з новими підходами. Я переконана, що саме така атмосфера дозволяє розкривати потенціал кожного студента чи студентки і дає поштовх для їхнього розвитку як професійного, так і особистісного.

Для бізнесу ця ініціатива є важливою з кількох причин:

  1. Інвестиція у майбутнє. Ми допомагаємо студентам підготуватися до роботи в реальних умовах і бачимо в них потенційних колег.
  2. Розвиток співробітників. Участь у викладанні дозволяє працівникам покращити навички комунікації, лідерства та роботи з аудиторією.
  3. Соціальна відповідальність. Ми віримо, що підтримка освіти — це важливий внесок у розвиток суспільства та галузі.

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

Я заохочую й інші компанії долучатися до створення подібних ініціатив. Якщо вас цікавить організація таких курсів або ви хочете отримати більше деталей, звертайтеся до мене, пишіть свої питання у коментарях, я з радістю відповім. Давайте разом сприяти розвитку освіти та IT-індустрії.

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі