Refactoring pracy magisterskiej

Sobota (wczoraj)
http://helion.pl/view/4113g/agilsd.htm
To było jak olśnienie. Okazuje się, że refactoring to nie jest coś co tylko programiści mogą robić. Oto jak było.

Od miesiąca nie przybyło w mojej pracy magisterskiej więcej niż 2 strony. Nie mogłem się zabrać. Jak się zabierałem – szybko kończyły mi się pomysły, nie miałem ochoty więcej rozwijać wątków. Miałem wrażenie, że nic nowego tam nie dodam. Aż wczoraj wracając z wykładu przedmiotu “Koncepcje zarządzania” (o Lean management, banchmarkingu, outsourcingu itp. – inspirujące tematy) pomyślałem, że trzeba coś z tym zrobić.

Miesiącami już czytam o zwinnym wytwarzaniu oprogramowania. Niedawno w książce “Agile Software Development. Gra zespołowa” doszedłem do miejsca, w którym autor, Alistair Cockburn, opisał jak wykorzystał podejście zwinne przy rozbudowie domu (!). Wracając ze wspomnianego wykładu pomyślałem- skoro piszę pracę o zwinnym wytwarzaniu (oprogramowania), to może napiszę ją w sposób zwinny?

Po pierwsze postanowiłem znokautować swój pierwszy problem: nie wiedziałem na jakim etapie jestem. Brakowało mi informacji mimo, że mój zespół składał się tylko ze mnie – potrzebowałem radiatora informacji mimo, że jedynie ja miałbym z niego korzystać. Kupiłem korkową tablicę (miałem ochotę na “suchościeralną”, ale a/ była sobota i jeden sklep papierniczy był otwarty w okolicy b/ to wersja ekonomiczna: 60x40cm ok.20zł). Po powrocie do domu, przy pomocy dratwy przymocowałem ją do regału nad monitorem. Jest “Wystarczająco stabilna”

Miałem już radiator, teraz pora zacząć od podstaw: ustalić misję, cel projektu. Na niedużej kartce (takiej do notowania) napisałem mazakiem “Cel pracy”
i przykleiłem do niej 3 karteczki z powodami dla których w ogóle się tym zajmuję, zamiast na przykład wspinać się po górach. Po chwili uznałem, że warto ustalić im ważność. Dopisałem w nawiasie “wysokość ma znaczenie” i narysowałem podziałkę ;). Poniżej wrzucę efekty, jak tylko będę miał w rękach aparat.

Po drugie potrzebowałem “opowieści”, głównie po to, aby móc stosować “energiczną pracę”. Znam siebie na tyle, że wiem iż kiedy mam niepustą kolejkę zadań do wykonania – wtedy pracuję wydajniej. Zawsze mogę sięgnąć po następne zadanie – nie tracę czasu na zastanawianie się “co teraz?”. Na tablicy pojawiły się karteczki z nazwami danych obszarów: “Do zrobienia”, “W trakcie”, “Zrobione” :)

Postanowiłem postawić sobie krótkie zadanie do wykonania, aby szybko otrzymać nagrodę w postaci jego wypełnienia. Cały czas tytuł mojej pracy nie był ostateczny. Choć należałoby powiedzieć raczej, że był bardzo wstępny. Źle się z tym czułem, bo też mi się nie podobał, trącił trywialnością. Brzmiał “Możliwość zastosowania Zwinnej metodyki budowania aplikacji internetowych w firmie X”. Nawet gdyby zmiana tytułu miała polegać na zmianie błędu “zwinnej metodyki” na “zwinnych metodyk” – to był sukces, którego potrzebowałem.
Jednak podczas wypełniania karteczki z opowieścią, w której chciałem opisać mniej więcej co jest do zrobienia pojawił się pomysł i zanotowałem:

Może warto zmienić na “Nowoczesne metodyki wytważania wytwarzania oprogramowania; Agile; możliwość zastosowania w mikroprzedsiębiorstwach na podstawie firmy X”

Potem dokleiłem karteczkę “elasyczne, zwinne zamiast *nowoczesne*” i drugą “drugi temat pozwala skupić się na Agile zamiast na firmie”.

Efekty mi się podobały. Pomyślałem, że ta zmiana powinna zostać skonsultowana z moim promotorem. Zmniejszyłem nieco obszar “Zrobione”, który nie jest istotny pod względem informacyjnym – rosnący tam pęk zadań ma sprawiać, że będę się czuł pracowity :D; dodałem obszar “Skonsultować z promotorem” i tam wbiłem zadanie z tytułem.

Przyszedł czas na zadanie numer dwa. Jakiś czas temu M (nie wiem, czy pozwoli ujawnić swoje imię), kolega z pracy, zagaił mnie o magisterkę. Sam jest prawie rok po obronie. W dyskusji wyjawił, że gdy już miał spis treści – bardzo łatwo mu się pisało, gdyż po prostu pisał o tym o czym dany podrozdział miał traktować. Ja miałem odczucie, że mój spis treści jest zabałaganiony. Dlatego zadanie numer 2 brzmiało: “Uporządkować spis treści”.

Spis treści jest krajobrazem mojej pracy, dlatego go wydrukowałem, aby móc nad nim kontemplować. Wyglądał mniej więcej tak:

    Wstęp

  1. Zapotrzebowanie na metodyki
  2. Ogólnie o metodykach
  3. Przykłady metodyk zwinnych
  4. Typowe problemy w firmie X
  5. Metodyki zwinne (Agile)
  6. Konfrontacja teorii z rzeczywistością

Po pierwsze postanowiłem połączyć rozdział 2 z 3 – w końcu były niemal o tym samym. A treść zawarta w rozdziale 2 sprawiała, że nie miałem o czym pisać w rozdziale 3. To samo tyczyło się rozdziałów 4 i 6 – nabazgrałem między nimi linię opatrzoną opisem “połączyć”.
Rzuciłem okiem na nowy pomysł tytułu, który mi się spodobał bardziej. Pomyślałem, że fajnie przesunął ciężar pracy z implementacji metodyki w firmie X, na opisanie metodyk zwinnych. Pomyślałem, że spis powinien oddawać kolejność zaproponowaną w tytule, tym bardziej, że tytuł oddawał to o czym chciałem pisać. Nabazgrałem kilka strzałem z przesunięciem rozdziału 5 na przedostatnią pozycję. Teraz spis miał sens – drzewa były “zielonym do góry;)”. Policzyłem jeszcze ile będzie “nowych” rozdziałów, żeby ich nie było za mało. Z 8 liczba spadła do 6. Projekt uległ uproszczeniu, stał się bardziej przejrzysty.

Zatem zabrałem się za przenoszenie akapitów w pracy w taki sposób, aby wygenerowany spis treści był taki jak chciałem. W trakcie tych czynności pomyślałem, że przeprowadzam właśnie refactoring mojej pracy magisterskiej. Ucieszyłem się i z tej radości napisałem “refactoring :)” na przylepnej, żółtej karteczce i ustawiłem sobie opis na skype “refactoring pracy magisterskiej”. Taka była moja radość.

Gdy skończyłem – wpiąłem zadanie w miejsce “Skosultować z promotorem”; wygenerowałem dwa pdfy ze starym i nowym spisem treści i wysłałem maila do doktora B, z nowym pomysłem tytułu, uzasadnieniem i spisami treści.

W międzyczasie pojawił się pomysł na kolejne zadanie. Otóż czytając książki (źródła ;)) nauczony doświadczeniem – sporo bazgrałem, zaznaczałem ciekawe fragmenty itd. Gdybym tego nie zrobił – straciłbym przemyślenia, które pojawiały się podczas czytania (często w krakowskich tramwajach). Nie miałbym też ochoty drugi raz brnąć przez lekturę (nie chodzi o to, że nieciekawą – ale mam znam kilka większych przyjemności niż czytanie dwa razy tej samej książki, na przykład przeczytanie dwóch książek raz :D).

Teraz miałem 6 książek: 2 przeczytane w całości (w tym “Marsz ku klęsce” Yourdona), jedną przeczytaną tak daleko jak wydało mi się konieczne, 2 w trakcie czytania oraz jedną ledwie liźniętą. Łącznie mają już w sobie kilka dobrych gram grafitu ołówków z ikei (mały czasem może więcej). Problem polegał na uporządkowaniu tej wiedzy. Trzecie zadanie “Uporządkowanie źródeł” zostało wbite w strefę “do zrobienia”. Pojawiło się na niej 6 karteczek – jedna dla każdego tytułu.

W międzyczasie moja ukochana wróciła z zajęć, więc praca była tego dnia skończona. Całe szczęście – nie przeszkadza jej spora tablica korkowa zasłaniająca pół regału :D

Niedziela.

Zabrałem pierwszą i wkleiłem w miejsce “W trakcie”. Przeglądałem wypatrując zakreśleń, gdy je namierzałem – opisywałem o czym jest i wklejałem zakładkę. Mniej więcej w połowie przyszedł czas na przerwę: picie zimnej kawy, głośne słuchanie muzyki, telefon do przyjaciela (serio).

Teraz karteczka “Cockburn” jest skreślona (znaczy skończona) i wróciła na kartkę opowieści. Zabrało mi to nieco ponad 3 godziny. Jednak na pierwszy ogień postanowiłem wziąć zadania trudniejsze, żeby po dwóch największych skarbnicach grafitu mimo zmęczenia móc na luzie dokończyć pracę. “W trakcie” jest teraz Shore, ale zanim zacznę – miałem ochotę napisać ten post.

Teraz wracam do porządkowania źródeł. Gdy w tej sprawie coś się pojawi jeszcze ciekawego, na pewno o tym napiszę.

Share Button

3 thoughts on “Refactoring pracy magisterskiej

  1. powiem ci szczerze, że mnie zainspirowałeś :)
    właśnie siedzę w domu jest sobota i zastanawiam się od czego zacząć moją pracę licencjacką, moja promotorka chce już pierwszy rozdział a ja dalej nie przeczytałam ani jednej książki, ale tablice mam, kartki mam :) może dzięki temu moja praca nabierze rozpędu :D

  2. Cieszę się, że mogę się na coś przydać. Na jaki temat piszesz? Ja miałem to szczęście, że mój promotor nie ograniczał mnie i nie domagał się rozdziału o takim, czy siakim numerze. Dlatego praca rosła w tych miejscach, w których miałem akurat coś ciekawego do napisania. No i zmieniała się czasami dość poważnie (jak w tym poście). Myślę, że do napisania czegokolwiek nie musisz mieć przeczytanej literatury – masz przecież własne przemyślenia na ten temat. Jednak warto wcześniej zacząć gromadzić wiedzę (czytać książki, notować interesujące fragmenty, zaznaczać w swoich książkach). Dzięki temu w pracy też szerzej obejmiesz temat. Powodzenia.

  3. Testowanie oprogramowania w metodyce scrum na przykładzie projektu X, moja promotorka chyba się lekko zdenerwowała bo w ciągu pół roku wymyśliłam tylko temat, więc wypadałoby bym w końcu coś zaczęła opisywać. Pracuję jako tester i testuje różne serwisy w sumie bardziej od strony funkcjonalnej, więc o tym dość sporo wiem :) Heh przez częste zmiany koncepcji się bronie przed pisaniem, ale trzeba się przemóc :D tylko z dostępem do literatury ciężko, póki co mam 3 książki, teoretycznie powinny wystarczyć praktycznie się zobaczy :)

Leave a Reply

Your email address will not be published. Required fields are marked *