Skip to content

Dobór i adaptacja metodyki

Łukasz Mrugała edited this page May 5, 2020 · 10 revisions

CZW_10A-3_6 RUP: Ogólny plan projektu

Projekt Emulator procesora Sharp LR35902

Link:

  • v.0.1 doc: TBD

Streszczenie:

Dokument ten jest raportem dotyczącym ogólnego planu projektu wykonanym zgodnie z metodyką RUP.

Wersja: TBD
Data wydania: TBD
Redaktor: TBD
Współautorzy: TBD
Etap/zadanie: Etap 6 – Dobór i adaptacja metodyki
Nazwa pliku: TBD
Status poufności: JAWNE
Liczba stron: TBD

Historia zmian

Wersja Data Opis zmiany

O Projekcie

Projekt ma na celu wytworzenie wiernego emulatora konsoli do gier GameBoy Color i osadzenie go na małym urządzeniu przenośnym.

Produktem jest zarówno samo oprogramowanie, jak i sprzęt na którym zostanie ono osadzone. Planowo ma to być Raspberry Pi.

Ocena według modelu uproszczonego - 5 kryteriów

Rozmiar

Projekt faktycznie wykonywany jest przez 3 osoby. Zarządzany jest przez 4 osoby wliczając opiekuna. Jest to stosunkowo mały zespół, produkt również można uznać za mały. Sugeruje to metodyki zwinne.

Krytyczność

Produktem końcowym jest przedmiot-gadżet. Potencjalne błędy/niedoróbki mogą jedynie wpłynąć na zadowolenie klientów co może odbić się na reputacji zespołu. Metodyki sterowane planem mogą się okazać w takim przypadku przesadne.

Osoby

Wszystkie osoby w zespole posiadają już pewne doświadczenie zawodowe i miały okazje pracować w metodykach zwinnych.

Dynamika

Przez większość czasu pracować będziemy z obszerną dokumentacją. Szansa na zmiany na tym froncie jest znikoma. Jedynym źródłem zmian jest praktycznie opiekun projektu. Taki stabilny stopień dynamiki nadaje się do metodyk sterowanych planem.

Kultura

Na podstawie wcześniejszej współpracy i rozmów na ten temat, jedna osoba w zespole preferuje porządek, pozostałe dwie zaś - chaos.

Ocena według modelu pełnego - 12 kryteriów

Zastosowanie

Główne cele

Emulator nie należy do produktów w którym możemy szybko dostarczyć wartość biznesową. Wartość pojawia się dopiero kiedy tan naprawdę emulator jest prawie gotowy. Od emulatora jest również oczekiwane wierne odwzorowanie sprzętu, czyli nasz projekt będzie musiał spełniać dużo specyfikacji określonych w dokumentacji.
Wskazuje to na metodykę zdyscyplinowaną.

Rozmiar

Mały zespół w którym członkowie mają ze sobą bezpośredni kontakt, nie potrzebne są żadne dodatkowe procesy. Wskazuje to na metodykę zwinną.

Środowisko

Wymagania co do naszego projektu są nam już w większej części znane i nie będą się zmieniać. Wskazuje to na metodykę zdyscyplinowaną, pomimo braku skupienia na organizacji.

Zarządzanie

Relacja z klientem

W ramach projektu przyjmujemy że naszym klientem jest opiekun projektu. Jego sugestie traktujemy jak oczekiwania użytkowników. Jesteśmy w stanie na bieżąco weryfikować oczekiwania wobec produktu końcowego. Spotykamy się z nim w miarę potrzeb w celu doprecyzowania wymagań i określania naszego postępu. Jedynym terminem ważnym dla klienta jest termin końcowy oraz drugi, kilka-naście dni wcześniej, potrzebny do walidacji projektu. Wskazuje to na metodykę zdyscyplinowaną.

Planowanie i nadzorowanie

Emulacja jest dla nas tematem dosyć niezbadanym, także każda osoba w zespole w swoim własnym zakresie poszerza swoją wiedzę. Jeżeli ktoś posiądzie wiedzę która może przydać się w realizacji projektu dzieli się z nią na forum. Przy podziale zadań w naszym projekcie ważne jest aby na bieżąco komunikować się między sobą i ułatwić późniejszą integrację. Plany są raczej zaszyte i wynikające z dokumentacji emulowanego produktu, a nadzór jest zdecydowanie jakościowy. Wskazuje to na metodykę zwinną.

Komunikacja

Korzystając z więcej niż jednego źródła szeroko dostępnych dokumentacji pojawia się ryzyko posługiwania się różnymi językami. Zapobiec temu można przez ustalenie wystarczającej ilości źródeł z których zespół będzie korzystać aby ułatwić późniejsze rozmowy. Wiedza jest zatem jawna i udokumentowana. Wskazuje to na metodykę zdyscyplinowaną.

Techniczne

Wymagania

Wymagania do naszego projektu przedstawiamy w formie krótkich historyjek. Obejmują one tylko warstwę interakcji z użytkownikiem, wszystkie wymagania samego procesu emulacji są dostępne w dokumentacji. Jednocześnie można argumentować, że źródłem wymagań jest też sama dokumentacja. Nie wskazuje to przeważająco na żaden z rodzajów metodyk.

Wytwarzanie

Sam proces emulacji procesora i pamięci jest kluczowy i musi powstać jako jeden z pierwszych, dlatego ważne jest aby został odpowiednio przemyślany, naprawianie złej architektury która powstała na wczesnym etapie będzie później kosztowne. Reszta modułów jednak jest mała i ich refaktoryzacja jest raczej niekosztowna. Wskazuje to na metodykę zwinną.

Testowanie

Dla emulatora zostały przygotowane pewne testowe ROMy, których poprawne działanie będzie zawsze wymagane. Nie ma jednak szczególnie dokumentowanych procedur testowania. Wskazuje to na metodykę zwinną.

Osoby

Klient

Tak jak zostało to wcześniej wspomniane, nasz opiekun projektu reprezentuje nam klienta. Uważamy że jest reprezentatywnym klientem i posiada odpowiednią wiedzę. Kwalifikuje się więc jako klient CRACK, ale jego stały dostęp nie jest wymagany. Wskazuje to na metodykę zdyscyplinowaną.

Wykonawcy

Wszyscy członkowie zespołu mieli już niejednokrotnie okazję ze sobą współpracować w trakcie studiów. Każdy jest przynajmniej poziomu 2. Wskazuje to na metodykę zwinną.

Kultura

Każdej osobie w zespole zależy na tym aby projekt zakończył się sukcesem. W tym celu każda osoba według własnego sumienia wykonuje swoją pracę. Większość z nich jest skłonna do chaosu. Wskazuje to na metodykę zwinną.

Metodyka i jej adaptacja

Patrząc na analizę dwunastoskładnikową, metodyki zwinne wygrały ilościowo wynikiem 6-5.

Oczywiście jednak analiza ilościowa nie jest wystarczająca. Za metodykami zwinnymi opowiedziały się również inne fakty. Po pierwsze, każdy z członków zespołu miał wcześniejsze doświadczenie zawodowe, podczas którego korzystał z metodyk zwinnych, brak zaś było doświadczenia w kwestii metodyk zdyscyplinowanych. Po drugie, ze względu na to, że członkowie zespołu posiadają koleżeńskie relacje poza i przed projektem, trudniej jest im postawić się w ściśle określonych rolach projektowych. Po trzecie, ze względu na naturę projektu, który jest pracą inżynierską, każdy z członków zespołu jest w pewnym sensie zarówno wytwórcą, jak i odbiorcą projektu - od jego rezultatu zależy jego przede wszystkim osobiste dobro - kwestia uzyskania tytułu inżyniera. Oznacza to, że dla każdego z nich naturalna jest idea własności kodu, występująca w metodykach zdyscyplinowanych oraz chęć szybkich zmian i iteracji.

Ostatecznie zdecydowaliśmy się na metodykę Scrum, ale z pewnymi modyfikacjami.

Czas sprintu ustaliliśmy na miesiąc. Biorąc pod uwagę studia i pracę, krótsze sprinty wnosiłyby zbyt mało zmian. Sprint podzielony zostaje na dwie fazy:

  • Wytwórcza (3 tygodnie)
  • Stabilizacyjna (1 tydzień).

W pierwszej fazie każdy pracuje nad zadaniami których się podjął podczas planowania sprintu. Druga faza służy na domykanie zadań. Skupiamy się wtedy na code review. Przeglądamy kod pozostałych członków w celu wypunktowania błędów i ich szybkiej poprawy.