Отборни проекти – Telerik Academy

By March 21, 2013.NET Framework


Здравейте! След вчерашната защита на екипните проекти от курса по Обектно-ориентирано програмиране в Telerik Academy, реших да напиша за нашето преживяване и работа в екип.

Началото

Март месец е, времето започва да се стопля, но все още е коварно. Да не забравяме, че все още сме в най-женския месец. Въпреки  всичко в Академията се учи яко. Домашните въобще не са малко и постоянно има нови проекти. Някой се отказват, други стискат зъби и продължават стъпка по стъпка напред. През един слънчев ден преди около една седмица (11.03.2013г) на случаен принцип ни разпределиха по екипи от 5 човека. Трябваше взаимно всеки отбор да си избере какъв проект ще прави. Много от екипите решиха да правят игри, а други бизнес софтуер. Имаше най-различни идеи.

Отборът и нашите срещи

Отборът ни се казваше “Tigger”, име взето от прословутото детско филмче. Беше минал ден, започнах да търся колегите в системата. Все пак имахме само седмица на разположение и всеки час беше от значение. За радост едната колежка явно мислеше по същия начин като мен и успя да ме изпревари. До края на деня се бяхме намерили и беше време да си уговорим среща. Докато си го помисля, уговорката беше реалност и на другия ден сутринта рано-рано бяхме в зала Light.

Трудното тепърва започваше. Запознанството мина бързо и без да губим време започнахме да обсъждаме идеи за проект. Никой не се беше подготвил освен колежката Лина. Това направи много хубаво впечатление. Предната вечер беше отделила време за да помисли върху проекта.

Предложението и беше да направим игра на име “Battle Ships”. Дори беше направила примерна UML class диаграма. Това беше чудесно. След дълги обсъждания, взаимно решихме да се възползваме от нейния труд и да не губим време, а да си плюем на пръстите и да подпалим клавиатурите.

 

 Писането на код и приключенията с TFS

По изисквания трябваше да използваме Team Foundation Server. Понеже имах малко опит с него исках да обясня на колегите още първия ден как се работи с TFS и да нямат проблеми когато се приберат вкъщи. След няколко примерни опита всичко беше ясно и прекрасно.

След като някак си взехме решение какъв ще е нашия проект, следваше да започне development-a. След една вечер прекарана пред Visual Studio, по време на втората ни среща на другия ден, се оказа, че сме направили грешка. Бяхме претупали архитектурата на играта. Трябваше да обсъдим структурата на нашата игра с корабчетата и да направим много по-добра диаграма. След доста различни мнения се опитахме да вземем най-правилното решение откъм качество. Писането на код трябваше да продължи с пълна сила. Времето течеше, а ние все още не бяхме почнали.

 Прибрахме се по домовете си и без да губим време седнахме пред компютрите. Клас след клас, метод след метод, проекта почваше да се пълни малко по малко. Някак си трябваше да качим кода си на сървъра на Microsoft. Всичко мина успешно и нямаше конфликти. Ден след ден, прекарани пред Visual Studio проекта напредваше.

Почна да ми става скучно без конфликти при качването на проекта в системата за управление на съдържанието и реших да си направя конфликт с някого. Бях приятно изненадан от добре направения Merge tool. Макар и доста добър, не можах да се справя от първия път с него и омацах малко кода. Трябваше да напиша 15-20 реда наново. При втория ми опит с Merge tool-a всичко беше наред, а аз се чувствах като PRO.

Unit testing

Още от начало бях сигурен, че ще е хубаво с всеки клас да си пишем и тестове за него, но не знаех как ще реагира отбора ми. След известно време, кода се увеличи, със него и класовете online casino и всички достигнахме до извода, че по някакъв начин трябва да си тестваме кода. Реших да предложа да си правим Unit тестове. Радвам се, че всички се съгласиха и въпреки, че нямаха опит, изгледаха малко видео и почнаха да пишат. Това беше една много важна стъпка от проекта ни, през която освен, че си открихме няколко грешки, упражнихме и Unit testing-a. Много съм радостен от този факт и че съотборниците ми не се отказаха.

Деня преди защитата

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

Вечерта беше много тежка. Прекарах доста време пред лаптопа, оглеждах кода, търсих бъгове, подреждах го и така до 4 часа сутринта. Бях изправен пред много трудно решение. Знаех, че ако легна да спя, няма да мога да стана сутринта на време, а трябваше към 8 да сме в залата, за да се подготвим. Сетих се за тежките дни, когато не бях спал и реших макар и малко да подремна.

 Презентиране на проекта

Алармата звъни, а аз сънено я изключвам. Алармата звъни отново, а тоя път стреснато ставам от леглото и почвам да се оправям. Часът е около 7.30. След 10 минути вече съм на вратата облечен и бързам да хвана автобус 88. След двадесетина минути вече съм пред Telerik Academy, а колежката вътре тъкмо се настанява. Показах какво съм направил вечерта. Оправихме някой дребни неща. Подготвихме презентацията и чакахме да ни дойде времето.

Беше време да пробвам проекторите. Разнасяха се слухове, че много трудно се подкарват, но поради някакъв късмет при мен веднага светнаха. За 5 минути трябваше да презентираме целия проект. Имаше график и ние бяхме втори по ред, като час това беше 10:07. Дали е добре или зле да си един от първите, не зная, но мисля, че успяхме да се възползваме максимално от времето, което имахме.

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

Source code и обяснения на проектаBattleShips-Demo

Проекта съм го качил във GitHub. Не е напълно завършен. Има доста бъгове, не успях напълно да го подредя и оформя както ми се искаше, но времето беше малко и ни чакат изпити. Колежката Лина ще пише статия, в която подробно ще обяснява кода. Реших да не допълвам моята статия, а да ви дам линк към нейната. Ако има желаещи да разберат как работи самата игра, нека да очакват съвсем скоро препратка.

Ще се радвам да оставяте по някой друг коментар, ако ви е харесало или пък не това, което съм написал.

One Comment

  • Чудесна статия! Описва много добре процеса на работа. За мен беше удоволствие да работим заедно! 🙂

Leave a Reply