Kötelezően teljesítendő kritériumok projektmunka 2-re
A Projektmunka 2 nem egy új típusú kurzus és nem egy újrakezdés. Közvetlenül épít a Projektmunka 1-ben és más szoftverfejlesztési kurzusokban már megszerzett ismeretekre. Elvárás, hogy használd ezeket az ismereteket, ne újratanuld őket.
A folyamat változatlan marad.
A folyamat változatlan marad: a csapatmunka, a mérföldkövek, az MVP és a minőség, a fizetés és az ár, a határidők, a bemutatók és a pontalapú értékelés pontosan ugyanúgy érvényesek, mint a Projektmunka 1-ben. A különbség az elvárt eredmények szintje. A Projektmunka 2-ben bonyolultabb és fejlettebb projekten dolgozol, és a szükséges eredmények ezt tükrözik.
Minden, ami a Projektmunka 1-re vonatkozik, itt is érvényes: a határidők valósak, a mérföldkövek egymástól függenek, a pontokat csapatként szerzik meg és egyénileg osztják el, és csak a látható, leadott munka számít. Ez az oldal határozza meg, hol és hogyan emelkednek az elvárások a Projektmunka 2 esetében.
A fejlődés kötelező.
A fejlődés kötelező. Nem elég egyszerűen megismételni a Projektmunka 1 szintű megoldásokat. A stagnálás nem jutalmazható: ha munkád nem mutat egyértelmű fejlődést a hatókör, a technikai mélység vagy a kivitelezés minősége terén, akkor nem kapsz elégséges osztályzatot – még akkor sem, ha a projekt „működik”.
A projekt folytonossága és tulajdonjoga¶
A Projektmunka 1-ben megtanultad, hogyan indíts el egy projektet nulláról. A Projektmunka 2-ben a hangsúly a már meglévő kódbázis fejlesztésére helyeződik át.
Elvárás, hogy felelősséget vállalj a meglévő döntésekért – beleértve az architektúrát, a struktúrát, az eszközöket és a technikai adósságot. Ez szándékos. A valódi projektek ritkán indulnak tiszta lappal, és a professzionális munka azt jelenti, hogy javítjuk a már meglévőt, nem pedig eldobjuk, amikor kényelmetlenné válik.
Nem a te hibád, de a te felelősséged
Megnyitod a projektet, és azonnal problémákat látsz. A szerkezet rendezetlen. Valami nincs dokumentálva. Egy teszt sikertelen, és senki sem tudja, miért.
Ezek közül egyik sem a te hibád. Nem te hoztad létre.
A felelősség egy másik ponton kezdődik: azon, amit ezután teszel.
Figyelmen kívül hagyod a problémát, mert „már eleve így volt”?
Vagy megpróbálod megérteni, rendet raksz egy részben, hozzáadsz egy megjegyzést, kijavítod a tesztet, vagy legalább leírod, amit találtál?
A valódi projektekben ez a különbség számít.
Amikor mindenki arra koncentrál, ki okozta a problémát, a projekt megakad, és mindenki veszít.
Amikor valaki arra koncentrál, mit lehet tenni ezután, a haladás folytatódik – még akkor is, ha a helyzet nem tökéletes.
Ez nem azt jelenti, hogy mindent csendben el kell fogadni, vagy alávetetté kell válni. A csapat problémáit, a rossz döntéseket és a hiányzó munkát meg kell oldani. De a múltbeli hibákra való végtelen mutogatással nem oldod meg az előtted álló feladatot. Cselekvéssel oldod meg.
A Projectmunka 2-ben a hibáztatás a commit történeténél véget ér. A felelősség a kóddal kezdődik, amihez hozzányúlsz.
A felajánlott, de fel nem használt segítség nem jár pontokkal. A hatástalan erőfeszítés nem jár jutalommal.
Nem azt értékelik, hogy ki okozta a problémát, hanem azt, hogy jobb-e a projekt, amikor elhagyod, mint amikor megtaláltad.
„Nem a te hibád, de a te felelősséged.” — általánosan Jocko Willink-nek tulajdonított (Extreme Ownership)
A csapatoknak munkájukat az alábbiak egyikére kell alapozniuk:
- egy Projectmunka 1 projekt, amelyen legalább egy jelenlegi csapattag korábban dolgozott
- egy megadott listáról (lásd alább) kiválasztott projekt.
A Projectmunka 2 csapatoknak nem kell egyezniük a Projectmunka 1 csapatokkal. A Projectmunka 1 kódbázis kiválasztása azonban azt jelenti, hogy a csapat valamelyik tagja első kézből szerzett tapasztalatokkal rendelkezik a projekt történetéről, döntéseiről és korlátairól.
Teljesen új projekt indítása nem megengedett.
Megadott projektlista¶
- CodeMetropolis – Kódbázis-vizualizációs eszköz, amely a szoftverrendszereket interaktív 3D-városokként ábrázolja. A meglévő kódbázisok szerkezetének, méretének és függőségeinek elemzésére összpontosít, egyértelmű lehetőségeket kínálva a bővítésre, a refaktorálásra és a mélyebb technikai kutatásra. https://github.com/codemetropolis/CodeMetropolis https://codemetropolis.github.io/CodeMetropolis/
- bibHygeia – Bibliográfia- és hivatkozáskezelő eszköz, amely strukturált tudományos források gyűjtésére, rendszerezésére és karbantartására összpontosít. A projekt egy reális, közepes méretű kódbázist kínál, amely lehetőséget nyújt az adatmodellek, a munkafolyamatok, a használhatóság és a hosszú távú karbantarthatóság javítására. https://github.com/geryxyz/bibHygeia
- flatCraft – Könnyű, crafting és szimulációs stílusú alkalmazás, amely összetett szabályok és állapotváltozások köré épül. A projekt nem triviális kódbázist biztosít, amely egyértelmű lehetőségeket kínál az alapvető mechanizmusok kiterjesztésére, az architektúra fejlesztésére és a korai fejlesztés során meghozott tervezési kompromisszumok kezelésére. https://github.com/geryxyz/flatCraft
- Schrödinger – Parancssori eszköz fájlkiterjesztések vagy változatok (pl.
.en,.hu) alapján a könyvtárstruktúrák klónozásához és átszervezéséhez. A fordítási munkafolyamatokhoz és a többváltozatú dokumentációhoz tervezett projekt jól strukturált Python CLI kódbázist kínál, amely lehetőséget nyújt a robusztusság, a bővíthetőség, a naplózás, a tesztelés és a csomagolás javítására. https://github.com/kayurh/Schrodinger
Technikai szempontból a kiválasztott projektet importálni kell a csapat student GitLab új projektjeként. A Projectmunka 2 repozitórium az első naptól kezdve az egyetlen hiteles forrás. A történet fontos, de a tulajdonjog itt kezdődik.
Egyetlen repozitórium szabály
Csak a Projectmunka 2 repozitóriumba elküldött munkák kerülnek értékelésre és osztályozásra. Az eredeti Projectmunka 1 repozitóriumban vagy bármely más külső repozitóriumban végzett változtatások figyelmen kívül maradnak, függetlenül az erőfeszítéstől vagy a minőségtől.
Haladó téma kiválasztása¶
A csapatok kialakításakor minden csapatnak ki kell választania egy haladó témát.
Ezt a választást írásban kell dokumentálni a projekt README.md fájljában, egyértelmű linkkel a kiválasztott haladó téma leírásához.
A haladó téma határozza meg, hogyan lép feljebb a projektmunka a Projectmunka 2-ben.
A haladó téma kiválasztása nem változtatja meg a kurzus szerkezetét:
- a határidők változatlanok maradnak,
- a pontok összege változatlan marad,
- a feladatok száma változatlan marad,
- feladatokat nem vonjuk össze, nem törlünk, és nem adunk hozzá újakat.
Ami változik, az a feladatok keretein belül végzett munka tartalma és összetettsége.
A Projektmunka 1 eredeti feladatleírásai továbbra is érvényesek. Továbbra is meghatározzátok a funkciókat, megtervezitek, megvalósítjátok, tesztelitek és dokumentáljátok azokat. A haladó téma kiegészíti ezeket a feladatokat további elvárásokkal. Például továbbra is fejleszthettek funkciókat, de egy adott típusú funkciót, meghatározott korlátozások mellett, vagy további technikai mélységben.
Nem elvárás, hogy mindenben szakértővé váljatok. Azért választasz haladó témát, hogy az érdeklődésednek vagy a tervezett specializációdnak megfelelő irányra koncentrálhass. Egy terület mélyreható ismerete talán többet ér, mint sok terület felületes ismerete.
A haladó témával való munka azt is jelenti, hogy önállóbban kell dolgoznod. Elvárjuk, hogy aktívan keress információkat: olvass dokumentációt, keress példákat, tegyél fel tájékozott kérdéseket és kísérletezz! Ez tükrözi a valódi szoftverfejlesztői munkát, ahol a tudás naprakészen tartása a munka része, és a kész válaszok ritkák. A szoftverfejlesztés kreatív szakma, nem pedig egy ellenőrzőlista végrehajtása.
Az oktatók gondolkodásotok irányításával, tisztázó kérdések feltevésével és a lehetőségek értékelésében való segítségnyújtással támogatnak Titeket. Segítünk megérteni, mit kell keresni, miért fontosak bizonyos döntések és hogyan lehet a problémákat korán felismerni.
Ugyanakkor a haladó témák azt jelentik, hogy senki sem ad neked kész megoldásokat. A valódi szoftverfejlesztői munkában a tanulás felfedezés, dokumentációk olvasása, megbeszélések és próba-hiba útján történik. Az oktatók azért vannak itt, hogy támogassák és ösztönözzék a fejlődéseteket, nem pedig azért, hogy helyettesítsék a tanulási folyamatotokat vagy döntéseket hozzanak helyettetek.