<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4809728659016520155</id><updated>2011-07-30T12:26:57.001-07:00</updated><title type='text'>Agile-tools w jednym miejscu</title><subtitle type='html'>Blog ten poświęcam narzędziom wspomagającym zarządzanie projektami informatycznym (choć nie tylko) metodologiami Agile. Pragnę zgłębić w większości te którym warto poświęcić uwagę, otrzymując w zamian skuteczną pomoc w trakcie prowadzenia projektów. Kiedy już przeanalizuję na tyle programów aby mieć ogląd co do różnorodności rozwiązań zastosowanych w każdym z nich, postaram się o dogłębną analizę wskazując ich plusy i minusy.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wjednymmiejscu.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://wjednymmiejscu.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Marcin</name><uri>http://www.blogger.com/profile/11128653556094374319</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4809728659016520155.post-8636033549607437250</id><published>2009-09-17T12:25:00.000-07:00</published><updated>2009-09-17T12:26:00.530-07:00</updated><title type='text'>Mantis - cechy programu</title><content type='html'>&lt;ul&gt;&lt;li&gt;rozpowszechniany na licencji wolnego oprogramowania (Licencja GPL);&lt;/li&gt;&lt;li&gt;łatwy do instalacji - zarówno w wersji pojedynczej jak też hostowanej;&lt;/li&gt;&lt;li&gt;łatwy do sprawdzenia - natychmiastowe uruchomienie w 2 minuty (nie rekomendowane jednakże dla produkcyjnego użycia);&lt;/li&gt;&lt;li&gt;nie wymaga doświadczenia użytkownika;&lt;/li&gt;&lt;li&gt;aplikacja webowa;&lt;/li&gt;&lt;li&gt;zgodny z platformami na których można uruchomić php (Windows, Linux, Mac, Solaris, AS400/i5, etc);&lt;/li&gt;&lt;li&gt;dostępny w 68 lokalizacjach;&lt;/li&gt;&lt;li&gt;strony zadań dostępne w prostym oraz zaawansowanym widoku;&lt;/li&gt;&lt;li&gt;wiele projektów w jednej instancji, wspiera podprojekty oraz kategorie;&lt;/li&gt;&lt;li&gt;użytkownicy mogą posiadać różne poziomy dostępu w zależności od projektu;&lt;/li&gt;&lt;li&gt;wsparcie dla changelog-a oraz roadmap-y;&lt;/li&gt;&lt;li&gt;udostępnia "Mój widok" - spojrzenie na projekt od strony użytkownika;&lt;/li&gt;&lt;li&gt;wyszukiwanie oraz filtracja - wyszukiwanie tekstowe, proste zaawansowane filtry, filtry współdzielone (na użytkownika / projekt);&lt;/li&gt;&lt;li&gt;wbudowane raportowanie (raporty / grafy);&lt;/li&gt;&lt;li&gt;własne pola opisu zagadnienia;&lt;/li&gt;&lt;li&gt;notyfikacje poprzez e-mail;&lt;/li&gt;&lt;li&gt;użytkownicy mogą monitorować wyspecyfikowane zadania;&lt;/li&gt;&lt;li&gt;załączniki - mogą być zapisywane na serwerze lub w bazie danych - mogą być również przesyłane na konto FTP;&lt;/li&gt;&lt;li&gt;historia zmian zadań;&lt;/li&gt;&lt;li&gt;RSS (informacje, zadania dopasowane do filtrów, zadania do wyspecyfikowane dla specyficznego powodu);&lt;/li&gt;&lt;li&gt;własne przepływy zadań pomiędzy użytkownikami z różnymi rolami w ich przetwarzaniu;&lt;/li&gt;&lt;li&gt;wsparcie dla sponsoringu - poszczególne zagadnienia mogą być sponsorowane co może być widoczne przez osoby je rozwiązujące;&lt;/li&gt;&lt;li&gt;anonimowy dostęp;&lt;/li&gt;&lt;li&gt;CAPTCHA - rozpoznaje kto korzysta z systemu robot czy człowiek lub wykorzystanie w tym celu adresu e-mail;&lt;/li&gt;&lt;li&gt;wsparcie dla samoczynnej zmiany hasła;&lt;/li&gt;&lt;li&gt;eksportowanie do .cvs, Microsoft Word, Microsoft Exell;&lt;/li&gt;&lt;li&gt;zdolność do rozszerzania funkcjonalności poprzez udostępnienie funkcji pomocniczych;&lt;/li&gt;&lt;li&gt;raportowanie zadań poprzez e-mail, oraz poprzez własne zdefiniowane formularze na stornie internetowej;&lt;/li&gt;&lt;li&gt;integracja z systemami wersjonowania (svn, cvs);&lt;/li&gt;&lt;li&gt;brak limitu zadań, użytkowników, projektów;&lt;/li&gt;&lt;li&gt;integracja z Wiki;&lt;/li&gt;&lt;li&gt;śledzenie upływu czasu;&lt;/li&gt;&lt;li&gt;możliwość wysyłania do użytkowników wiadomości związanych np. z cechą szczególną jakiegoś projektu);&lt;/li&gt;&lt;li&gt;publiczne/prywatne projekty, notatki, zadania;&lt;/li&gt;&lt;li&gt;powiązywanie zadań;&lt;/li&gt;&lt;li&gt;graf powiązanych zadań;&lt;/li&gt;&lt;li&gt;automatyczny podgląd załączników (np. zrzutów ekreanu);&lt;/li&gt;&lt;li&gt;prywatne/publiczne informacje (np. o projekcie);&lt;/li&gt;&lt;li&gt;przyklejanie zadań;&lt;/li&gt;&lt;li&gt;grupowanie akcji na wielu zadaniach;&lt;/li&gt;&lt;li&gt;odnośniki do każdego zadania oraz każdego komentarza - notatki na jego temat;&lt;/li&gt;&lt;li&gt;możliwość podglądu ostatnio odwiedzanych zadań;&lt;/li&gt;&lt;li&gt;wsparcie paru systemów autentyfikacji;&lt;/li&gt;&lt;li&gt;integracja z czatem;&lt;/li&gt;&lt;li&gt;wsparcie wielu systemów bazodanowych;&lt;/li&gt;&lt;li&gt;interfejs webserwisów (SOAP);&lt;/li&gt;&lt;li&gt;wsparcie dla urządzeń mobilnych;&lt;/li&gt;&lt;li&gt;chat online;&lt;/li&gt;&lt;li&gt;projekt społeczności która także integruje punkt widzenia kadry zarządzającej;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4809728659016520155-8636033549607437250?l=wjednymmiejscu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wjednymmiejscu.blogspot.com/feeds/8636033549607437250/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/09/mantis-cechy-programu.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/8636033549607437250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/8636033549607437250'/><link rel='alternate' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/09/mantis-cechy-programu.html' title='Mantis - cechy programu'/><author><name>Marcin</name><uri>http://www.blogger.com/profile/11128653556094374319</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4809728659016520155.post-6170882278904241845</id><published>2009-07-06T13:42:00.000-07:00</published><updated>2009-07-12T11:09:22.625-07:00</updated><title type='text'>Zadania</title><content type='html'>&lt;strong&gt;Cel&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;W tym wpisie postaram się przypliżyć zagadnienie &lt;em&gt;Zadań&lt;/em&gt; w TinyPM. Jest to najmniejsza jeżeli chodzi o granulację jednostka projektu w TinyPM. Jest ona przypisana do &lt;em&gt;User Story&lt;/em&gt; i wchodzi w jego skład.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Przegląd listy zadań&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Stroną która najlepiej pozwala przeglądać listę zadań to pozycja &lt;em&gt;Menu Projektu&lt;/em&gt; &lt;strong&gt;Zadania&lt;/strong&gt;. Tam w zależności od wyboru iteracji możemy przeglądać &lt;em&gt;Zadania&lt;/em&gt; w ramach iteracji &lt;em&gt;User Story&lt;/em&gt; pogrupowane wg statusu ich wykonania. Zadania widoczne w tej prezentacji są w ramkach składających się z nazwy zadania, opisem zadania oraz grupą przycisków: edycja zadania, przekształć &lt;em&gt;Zadanie&lt;/em&gt; w &lt;em&gt;User Story&lt;/em&gt;, oraz &lt;em&gt;Usuń zadanie&lt;/em&gt;. Na poniższym zrzucie ekranu grupy przycisków towarzyszące prezentacji każdego zadania zostały zaznaczone zieloną obwolutą:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/_-L4Avw7rKkM/Sloaxeg_4wI/AAAAAAAAA5E/8P_tEICW_w0/s1600-h/lista_zadan_w_iteracji.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5357624144018006786" border="0" alt="" src="http://1.bp.blogspot.com/_-L4Avw7rKkM/Sloaxeg_4wI/AAAAAAAAA5E/8P_tEICW_w0/s400/lista_zadan_w_iteracji.jpg" /&gt;&lt;/a&gt; Aby dodać nowe zadanie do wybranego &lt;em&gt;User Story&lt;/em&gt; musimy nacisnąć znajdujący się ponad nim przycisk &lt;em&gt;Utwórz nowe zadanie&lt;/em&gt;. Po jego naciśnięciu, jak również po naciśnięciu przycisku Edycja na prezentacji już utworzonego zadania zostaniemy przeniesieni na stronę o następującej zawartości:&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_-L4Avw7rKkM/SlohfSco10I/AAAAAAAAA5c/Q8BylmeHrY4/s1600-h/dodawanie_nowego_zadania.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5357631528122242882" border="0" alt="" src="http://2.bp.blogspot.com/_-L4Avw7rKkM/SlohfSco10I/AAAAAAAAA5c/Q8BylmeHrY4/s400/dodawanie_nowego_zadania.jpg" /&gt;&lt;/a&gt; Poszczególne pola tego formularza to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;nazwa - nazwa zadania;&lt;/li&gt;&lt;li&gt;opis - szczegółowe informacje dotyczące zadania;&lt;/li&gt;&lt;li&gt;przypisani użytkownicy - można wybrać więcej niż jednego z użytkowników przypisanych do danej listy;&lt;/li&gt;&lt;li&gt;status zadania - tutaj można wybierać aktualny status zadania. Do wyboru mamy następujące: oczekujące, w trakcie wykonywania, zakończone;&lt;/li&gt;&lt;li&gt;zaczęty - tutaj ustawiamy datę rozpoczęcia projektu;&lt;/li&gt;&lt;li&gt;zakończony - tutaj ustawiamy datę zakończenia projektu;&lt;/li&gt;&lt;li&gt;do danego zadania możemy też przypisać pliki które ułatwią jego zrozumienie bądź rozwiązanie;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Po wypełnieniu formularza klikamy na przycisk "Zapisz". &lt;/p&gt;&lt;p&gt;Jeżeli w widoku &lt;em&gt;Zadania&lt;/em&gt; z &lt;em&gt;Menu Projektu&lt;/em&gt; klikniemy w podlinkowany tytuł zadania to przeniesiemy się do widoku szczegółów zadania:&lt;/p&gt;&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/_-L4Avw7rKkM/Slok-OcDJnI/AAAAAAAAA5k/I8ZZWJnUoQ8/s1600-h/widok_zadania.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5357635358156858994" border="0" alt="" src="http://4.bp.blogspot.com/_-L4Avw7rKkM/Slok-OcDJnI/AAAAAAAAA5k/I8ZZWJnUoQ8/s400/widok_zadania.jpg" /&gt;&lt;/a&gt; Widok ten nie wymaga szerszego komentarza, no może tylko jeżeli chodzi o możliwość umieszczania komentarzy do aktualnie przeglądanego &lt;em&gt;Zadania&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;  Dostęp do zadań mamy także w widoku ze szczegółami dotyczącymi &lt;em&gt;User Story&lt;/em&gt;. Ten widok został szczegółowo opisany we wpisie dotyczącym &lt;em&gt;User Stories.&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4809728659016520155-6170882278904241845?l=wjednymmiejscu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wjednymmiejscu.blogspot.com/feeds/6170882278904241845/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/07/zadania.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/6170882278904241845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/6170882278904241845'/><link rel='alternate' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/07/zadania.html' title='Zadania'/><author><name>Marcin</name><uri>http://www.blogger.com/profile/11128653556094374319</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-L4Avw7rKkM/Sloaxeg_4wI/AAAAAAAAA5E/8P_tEICW_w0/s72-c/lista_zadan_w_iteracji.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4809728659016520155.post-2180935858792551352</id><published>2009-07-02T13:54:00.000-07:00</published><updated>2009-07-06T13:42:39.255-07:00</updated><title type='text'>Iteracje</title><content type='html'>&lt;strong&gt;Cel&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;W tym wpisie zostanie wyjaśniona rola Iteracji w aplikacji TinyPM. Tytułem wstępu wyjaśnię że &lt;em&gt;Iteracja&lt;/em&gt; to część procesu tworzenia oprogramowania rozłożona w czasie. Występuję więc tutaj różnica pomiędzy Iteracją a User Story. Relacja która zachodzi pomiędzy &lt;em&gt;User Story&lt;/em&gt; a &lt;em&gt;Iteracją&lt;/em&gt; to kompozycja o kierunku takim że &lt;em&gt;Iteracje&lt;/em&gt; zawierają &lt;em&gt;User Story&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Wylistowanie &lt;em&gt;Iteracji&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Główną stroną do przeglądania wszystkich Iteracji w systemie jest pozycja dostępna po kliknięciu w menu &lt;em&gt;Dziennik Projektu&lt;/em&gt;. Widok ten był szczegółowo omówiony we wpisie traktującym o &lt;em&gt;User &lt;/em&gt;Stories. Tutaj tylko uzupełnimy jego opis o część na której prezentowane są kolejne &lt;em&gt;Iteracje&lt;/em&gt;. W prawej kolumnie widzimy pionowo ułożoną listę iteracji. Dodakotwo pod każdą z nich widzimy listę &lt;em&gt;User Stories&lt;/em&gt; które są przypisane do danej iteracji. Nieprzypisane do żadnej iteracji &lt;em&gt;User Story&lt;/em&gt; widzimy wylistowane po lewej i centralnej stronie okna przeglądarki. Iteracje widzimy w porządku malejącym tnz. u góry są iteracje które kończą się najpóźniej.&lt;br /&gt;&lt;br /&gt;Do szczegółowej "zawartości" konkretnej &lt;em&gt;Iteracji&lt;/em&gt; mamy również dostęp poprzez stronę pod pozycją menu &lt;em&gt;Zadania.&lt;/em&gt; Również i ona została opisana po części we wpisie poświęconym &lt;em&gt;User Stories&lt;/em&gt;. W widoku tym, pod wykresem obrazującym postęp prac widzimy rozwijaną listę z &lt;em&gt;Iteracjami&lt;/em&gt; zdefiniowanymi w projekcie. Wspomniany wykres odnosi się do wybranej w tej liście &lt;em&gt;Iteracji&lt;/em&gt;. Pod listą z wybraną &lt;em&gt;Iteracją&lt;/em&gt; widzimy wszystkie &lt;em&gt;User Story&lt;/em&gt; przypisane do tej wybranej &lt;em&gt;Iteracji&lt;/em&gt;. Na opisywanej stronie widzimy także &lt;em&gt;Zadania&lt;/em&gt; przypisane do każdego &lt;em&gt;User Story&lt;/em&gt;. Zadania jednak zostaną omówione w oddzielnym wpisie.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tworzenie nowej iteracji&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Aby utworzyć w systemie nową iterację klikamy w pozycję &lt;em&gt;Dziennik projektu&lt;/em&gt; z &lt;em&gt;Menu Projektu&lt;/em&gt;. Na nowootwartej stronie klikamy w przycisk "Utwórz nową iterację" (czerwona obwoluta na poniższym zrzucie ekranu):&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/_-L4Avw7rKkM/SlJQOVAXNTI/AAAAAAAAA4k/pqJ2gdXK-lg/s1600-h/dodawanie_nowej_iteracji.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5355431113983997234" border="0" alt="" src="http://1.bp.blogspot.com/_-L4Avw7rKkM/SlJQOVAXNTI/AAAAAAAAA4k/pqJ2gdXK-lg/s400/dodawanie_nowej_iteracji.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Zostaniemy przeniesieni na stronę dodawania nowej &lt;em&gt;Iteracji&lt;/em&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_-L4Avw7rKkM/SlJXcZDYjlI/AAAAAAAAA4s/k_Sjcp3GkYI/s1600-h/dodawanie_nowej_iteracji.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5355439052169973330" border="0" alt="" src="http://2.bp.blogspot.com/_-L4Avw7rKkM/SlJXcZDYjlI/AAAAAAAAA4s/k_Sjcp3GkYI/s400/dodawanie_nowej_iteracji.jpg" /&gt;&lt;/a&gt; Na otwartym ekreanie ujrzymy formularz z następującymi polami do wypełnienia:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;data rozpoczęcia iteracji;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;długość iteracji (w dniach);&lt;/li&gt;&lt;br /&gt;&lt;li&gt;nazwa iteracji;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;opis celu iteracji czyli funkcjonalności która w danej iteracji powinna zostać stworzona;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;planowana wydajność;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Kiedy już zakończymy wypisywanie wszytkich pól klikamy w przycisk "Zapisz". Zostanimy wówczas przeniesieni na stronę &lt;em&gt;Menu Użytkownika&lt;/em&gt; która jest dostępna pod pozycją menu &lt;em&gt;Dziennik projektu&lt;/em&gt;. Nowododana iteracja pojawi się na pierwszym od góry miejscu na opisanej wcześniej liście iteracji. Klikając na nazwę każdej z tam wylistowanych iteracji zostaniemy przeniesieni na stronę dostępną z podmenu &lt;em&gt;Zadania&lt;/em&gt; z &lt;em&gt;User Stories&lt;/em&gt; należącymi do tej &lt;em&gt;Iteracji.&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Zamykanie iteracji&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Aby zamknąć iterację przenosimy się do widoku &lt;em&gt;User Stories&lt;/em&gt; dostępnych pod pozycją &lt;em&gt;Zadania&lt;/em&gt; w&lt;em&gt; Menu projektu&lt;/em&gt;. Jeżeli iteracja posiada tylko &lt;em&gt;User Stories&lt;/em&gt; wówczas po prawej stronie pod &lt;em&gt;Menu Projektu&lt;/em&gt; pojawi się przycisk "Zamknij iterację" na poniższym screenie czerwoną obowolutą: &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_-L4Avw7rKkM/SlJda1Hf-jI/AAAAAAAAA40/m5lF3EKj7HI/s1600-h/zamykanie_iteracji.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5355445622413457970" border="0" alt="" src="http://3.bp.blogspot.com/_-L4Avw7rKkM/SlJda1Hf-jI/AAAAAAAAA40/m5lF3EKj7HI/s400/zamykanie_iteracji.jpg" /&gt;&lt;/a&gt; Jeżeli iteracja którą chcemy zamknąć posiada jakieś niezaakceptowane &lt;em&gt;User Stories&lt;/em&gt; zostanie wyświetlony komunikat który musimy zaakceptować bądź odrzucić. Pytanie dotyczy czy nieukończone &lt;em&gt;User Stories &lt;/em&gt;z zamykanej iteracji mają zostać przeniesione do następnej &lt;em&gt;Iteracji &lt;/em&gt;czy jednak chcemy anulować czynność zamykania nowej &lt;em&gt;Iteracji&lt;/em&gt;. Gdy wybierzemy jednak zamknięcie danej iteracji zostanie domyślnie utworzona następna, z nazwą w której pojawi się numerek kolejnej iteracji oraz automatycznie do niej zostaną przepisane wszytkie niezamknięte &lt;em&gt;User Stories&lt;/em&gt; z poprzedniej - właśnie zamykanej iteracji. Nowa &lt;em&gt;Iteracja&lt;/em&gt; oczywiście nie zostanie utworzona w przypadku gdy następna iteracja jest już utworzona w systemie. Zamkniętą &lt;em&gt;Iterację&lt;/em&gt; w TinyPM możemy jednak otworzyć dodając nowe &lt;em&gt;User Story&lt;/em&gt; do danej iteracji.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4809728659016520155-2180935858792551352?l=wjednymmiejscu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wjednymmiejscu.blogspot.com/feeds/2180935858792551352/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/07/iteracje.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/2180935858792551352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/2180935858792551352'/><link rel='alternate' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/07/iteracje.html' title='Iteracje'/><author><name>Marcin</name><uri>http://www.blogger.com/profile/11128653556094374319</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-L4Avw7rKkM/SlJQOVAXNTI/AAAAAAAAA4k/pqJ2gdXK-lg/s72-c/dodawanie_nowej_iteracji.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4809728659016520155.post-3144922015992836925</id><published>2009-06-30T08:34:00.001-07:00</published><updated>2009-07-02T13:53:04.607-07:00</updated><title type='text'>User Story</title><content type='html'>&lt;strong&gt;Cel&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;W tym wpisie zapoznamy się z pojęciem &lt;em&gt;User Story &lt;/em&gt;oraz z cyklem życia nowoutworzonej historii użytkownika.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Pojęcie &lt;em&gt;User Story&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;User story to historia - scenariusz działania - które system powinien realizować opisana - zgodnie z nazwą - z punktu widzenia końcowego użytkownika aplikacji. Najczęściej jest to ścieżka przetważania pobierająca dane wejściowe, które przechodząc poprzez logikę aplikacji wprowadzają ją w jakiś stan lub też aplikacja utrwala te dane (najczęściej dodadkowo spreparowane) w bazie danych.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tworzenie &lt;em&gt;User Story&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Aby utworzyć nowe user story możemy skorzystać z następujących lokalizacji na których znajduje się przycisk 'Utwórz nowe &lt;em&gt;User Story&lt;/em&gt;':&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dziennik Projektu - pod tą pozycją &lt;em&gt;Menu Projektu&lt;/em&gt; możemy wykonać również import oraz eksport zdefiniowanych &lt;em&gt;User Stories&lt;/em&gt; do pliku .cvs;&lt;/li&gt;&lt;li&gt;Zadania - przycisk znajduje się nad wykresem obrazującym ilość wykonanej pracy - przycisk o którym mowa znajduje się w tym samym miejscu w którym znajduje się na stronie Dziennika Projektu;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Oto jak wygląda ekran tworzenia nowego &lt;em&gt;User Story&lt;/em&gt;:&lt;br /&gt;&lt;/p&gt;&lt;a href="http://4.bp.blogspot.com/_-L4Avw7rKkM/SkuV9g4sV4I/AAAAAAAAA4E/6dJPtw7zpTQ/s1600-h/dodawnie_nowego_User_Story.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5353537466092246914" border="0" alt="" src="http://4.bp.blogspot.com/_-L4Avw7rKkM/SkuV9g4sV4I/AAAAAAAAA4E/6dJPtw7zpTQ/s400/dodawnie_nowego_User_Story.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;Omówimy teraz kolejne pozycje tego formularza: &lt;ul&gt;&lt;li&gt;Nazwa - powinna jak najlepiej odwzorować proces który klient opisuje za pomocą tego &lt;em&gt;User Story&lt;/em&gt;;&lt;/li&gt;&lt;li&gt;Kolor karty - w celu odróżnienia poszczególnych &lt;em&gt;User Story&lt;/em&gt; (lub też dla ich pogrupowania) możemy wybrać tutaj kolor tła karty na której definiowane własnie &lt;em&gt;User Story&lt;/em&gt; będzie prezentowane;&lt;/li&gt;&lt;li&gt;Prorytet - są tutaj do wyboru: &lt;em&gt;Niezbędne&lt;/em&gt;, &lt;em&gt;Potrzebne&lt;/em&gt;, &lt;em&gt;Przydatne&lt;/em&gt;, &lt;em&gt;Nie tym razem&lt;/em&gt; - tutaj definiujemy priorytet wykonania - jest on potrzebny aby zdefiniować "pilność" wykonania każdego z nich;&lt;/li&gt;&lt;li&gt;w następnej liście możemy wybrać iterację - ale oczywiście nie musimy - w której dane &lt;em&gt;User Story&lt;/em&gt; musi być wykonane, czyli zostać zaakceptować przez jego właściciela;&lt;/li&gt;&lt;li&gt;tutaj możemy opisać dokładnie co zawiera się w danym &lt;em&gt;User Story - &lt;/em&gt;generalnie tak jak definiujemy &lt;em&gt;User Story &lt;/em&gt;używamy tutaj języka który jest zrozumiały dla klienta - zresztą &lt;em&gt;User Story&lt;/em&gt; pisze najczęsciej klient opisując swoje potrzeby odnośnie tworzonego oprogramowania;&lt;/li&gt;&lt;li&gt;tagi - w to pole wpisujemy słowa klucze które oddają treść &lt;em&gt;User Story &lt;/em&gt;aby móc potem przefiltrować wszystkie &lt;em&gt;User Story&lt;/em&gt; pod kątem danej zawartości (na stronie &lt;em&gt;Dziennik Projektu&lt;/em&gt;);&lt;/li&gt;&lt;li&gt;Właściciel &lt;em&gt;User Story&lt;/em&gt; to ten użytkownik który będzie zarządzał danym &lt;em&gt;User Story;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;Akceptujący to ten użytkownik który będzie weryfikować poprawne wykonanie tego &lt;em&gt;User Story&lt;/em&gt;;&lt;/li&gt;&lt;li&gt;nakład pracy - tutaj z rozwijanej listy będziemy wybierać ile jednostek (wirtualnych) czasu będzie potrzebne do wykonania tego &lt;em&gt;User Story&lt;/em&gt;;&lt;/li&gt;&lt;li&gt;dodaj domyślne zadania - oznacznie tego &lt;em&gt;checkboxa&lt;/em&gt; spowoduje że zostanie utworzone domyślne zadanie dla tego &lt;em&gt;User Story&lt;/em&gt;;&lt;/li&gt;&lt;li&gt;załączniki - tutaj będziemy mogli dołączyć jakieś pliki które są pomocne do lepszego zrozumienia tego &lt;em&gt;User Stories&lt;/em&gt; lub potrzebne do jego rozwiazania;&lt;/li&gt;&lt;li&gt;na końcu mamy przyciski do zapisu lub anulowania tego &lt;em&gt;User Story&lt;/em&gt;;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Po zapisaniu danego User Story zostaniemy przeniesiony na następującą stronę:&lt;br /&gt;&lt;/p&gt;&lt;a href="http://2.bp.blogspot.com/_-L4Avw7rKkM/SkvBnFiguAI/AAAAAAAAA4M/0cdoF4BAHt4/s1600-h/przegladanie_user_story.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5353585459305953282" border="0" alt="" src="http://2.bp.blogspot.com/_-L4Avw7rKkM/SkvBnFiguAI/AAAAAAAAA4M/0cdoF4BAHt4/s400/przegladanie_user_story.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;  Mamy na niej szczegółowe informacje o dodanym właśnie &lt;em&gt;User Story&lt;/em&gt;. Prawa kolumna jest wypełniona oknem komentowania oglądanego &lt;em&gt;User Story&lt;/em&gt; oraz napisanymi już komentarzami. Pod danymi &lt;em&gt;User Story&lt;/em&gt; pokazana jest lista zadań które są powiązane z danym &lt;em&gt;User Story&lt;/em&gt;. Powyżej tej listy zadań jest przycisk który umożliwia dodanie nowego zadania do tego &lt;em&gt;User Story&lt;/em&gt;. Nad informacjami szczegółowymi a pod &lt;em&gt;Menu Projektu&lt;/em&gt; znajdują się informacje dotyczące edycji wybranego &lt;em&gt;User Story&lt;/em&gt;. A więc możemy za ich pomocą:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Podzelić &lt;em&gt;User Story&lt;/em&gt; - otworzy się tak naprawdę okno edycji danego &lt;em&gt;User Story&lt;/em&gt; za pomocą którego będziemy mogli zmienić wszystkie edytowalne dane poprzedniego &lt;em&gt;User Story&lt;/em&gt; gdyż za pomocą przycisku &lt;em&gt;Zapisz&lt;/em&gt; dane z tego formularza posłużą do utworzenia nowego &lt;em&gt;User Story&lt;/em&gt;;&lt;/li&gt;&lt;li&gt;Edycja &lt;em&gt;User Story&lt;/em&gt;;&lt;/li&gt;&lt;li&gt;Usunięcie &lt;em&gt;Uset Story;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Przeglądanie User Stories&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;  Pod pozycją &lt;em&gt;Dziennik projektu&lt;/em&gt; wybrane za pomocą tagów &lt;em&gt;User Stories&lt;/em&gt; możemy przeciągnąć do wylistowanych w prawej kolumnie &lt;em&gt;Iteracji&lt;/em&gt;. Zmienić przydział &lt;em&gt;User Story&lt;/em&gt; do &lt;em&gt;Iteracji&lt;/em&gt; możemy również za pomocą edycji &lt;em&gt;User Story&lt;/em&gt; z poziomu jego widoku, a następnie klikając w przycisk &lt;em&gt;Edycja&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;  Pod pozycją &lt;em&gt;Zadania&lt;/em&gt; również widzimy &lt;em&gt;User Story&lt;/em&gt; - jednak tylko te które są zdefiniowane w ramach danej (wybranej z rozwijanej listy) &lt;em&gt;Iteracji&lt;/em&gt;. W wierszu każdego &lt;em&gt;User Stories &lt;/em&gt;dostępne są w tym widoku &lt;em&gt;Zadania&lt;/em&gt; których wykonanie jest konieczne do spełnienia funkcjonalności opisanej w danym &lt;em&gt;User Story.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;  W menu &lt;em&gt;Akceptacja&lt;/em&gt; widzimy listę &lt;em&gt;User Story&lt;/em&gt; w ramach &lt;em&gt;Iteracji&lt;/em&gt; która jest wybrana z rozwijanej listy znajduącej się pod Pozycją menu. Tutaj widzimy wszystkie &lt;strong&gt;niezaakceptowane&lt;/strong&gt;&lt;em&gt; User Stories&lt;/em&gt; w tej iteracji. Gdy wszystkie zadania z danego &lt;em&gt;User Story &lt;/em&gt;zostaną już zaakceptowane pojawiają się w tym widoku przyciski które umożliwiają zaakceptowanie bądź też odrzucenie danego &lt;em&gt;User Stories&lt;/em&gt;. Akceptacja wszystkich &lt;em&gt;User Stories &lt;/em&gt;prowadzi do możliwości zamknięcia iteracji. Oto jak wygląda strona w przypadku odrzucenia &lt;em&gt;User Story &lt;/em&gt;ze wszystkimi zadaniami które są już wykonane:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/_-L4Avw7rKkM/SkvZhPHPtfI/AAAAAAAAA4U/apYh1hOPAt8/s1600-h/akceptacja_user_story.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5353611747075798514" border="0" alt="" src="http://1.bp.blogspot.com/_-L4Avw7rKkM/SkvZhPHPtfI/AAAAAAAAA4U/apYh1hOPAt8/s400/akceptacja_user_story.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;  Jak widać musimy podać przyczynę odrzucenia danego &lt;em&gt;User Story &lt;/em&gt;i ją opisać. Informacje te stają się wówczas nowym &lt;em&gt;Zadaniem&lt;/em&gt; które automatycznie jest przypisane do tego &lt;em&gt;User Story&lt;/em&gt; i które staje się nowym zadaniem do zrobienia.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Podsumowanie&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;  To tyle jeżeli chodzi o &lt;em&gt;User Stories&lt;/em&gt; zapisaną w tym wpisie. Zaprezentowałem tutaj cykl życia &lt;em&gt;User Story&lt;/em&gt; w TinyPM. Jednak podobnie jak tutaj używałem pojęć &lt;em&gt;Iteracja &lt;/em&gt;i &lt;em&gt;Zadanie&lt;/em&gt; które to nie zostały jeszcze opisane, tak również nie rozstajemy się z pojęciem &lt;em&gt;User Story&lt;/em&gt;,&lt;em&gt; &lt;/em&gt;gdyż podczas omawiania właśnie &lt;em&gt;Zadań&lt;/em&gt; oraz &lt;em&gt;Iteracji&lt;/em&gt; jeszcze nie raz wspomnę o &lt;em&gt;Uset Story&lt;/em&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4809728659016520155-3144922015992836925?l=wjednymmiejscu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wjednymmiejscu.blogspot.com/feeds/3144922015992836925/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/06/user-story.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/3144922015992836925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/3144922015992836925'/><link rel='alternate' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/06/user-story.html' title='User Story'/><author><name>Marcin</name><uri>http://www.blogger.com/profile/11128653556094374319</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-L4Avw7rKkM/SkuV9g4sV4I/AAAAAAAAA4E/6dJPtw7zpTQ/s72-c/dodawnie_nowego_User_Story.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4809728659016520155.post-8142030403471681490</id><published>2009-06-24T15:55:00.000-07:00</published><updated>2009-06-29T14:59:44.815-07:00</updated><title type='text'>Widok w menu projektu</title><content type='html'>&lt;strong&gt;Wygląd - pasek menu projektu&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Zanim przystąpimy do omawiania poszczególnych czynności związanych z zarządzaniem projektem, omówię pokrótce wygląd &lt;em&gt;Menu Projektu&lt;/em&gt;. Oto zrzut ekranu który uzyskamy gdy z listy projektów (zaznaczonej na poniższym obrazie kolorem żółtym) nie wybierzemy żadnego projektu (co sprowadzi się do wybrania pustego wpisu z tej listy wartości):&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px" id="BLOGGER_PHOTO_ID_5351255192525608322" border="0" alt="" src="http://4.bp.blogspot.com/_-L4Avw7rKkM/SkN6PtT0FYI/AAAAAAAAAxE/kR2n5lRlv_Q/s400/pusty_pulpit.jpg" /&gt;&lt;/div&gt;&lt;br /&gt;Jak widać pasek &lt;em&gt;Menu Projektu&lt;/em&gt; jest teraz bardzo ubogi i ogranicza się do dwóch pozycji: &lt;em&gt;Pulpit&lt;/em&gt; (zawartość ta którą widać na zrzucie) oraz &lt;em&gt;Historia&lt;/em&gt; (pozwala wybrać wszystkie akcje (elementy oraz działania które możemy wykonać na projekcie), wszystkich użytkowników we wszystkich projektach - nie będziemy jej szczegółowo omawiać.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px" id="BLOGGER_PHOTO_ID_5351306390216808690" border="0" alt="" src="http://3.bp.blogspot.com/_-L4Avw7rKkM/SkOozzkmmPI/AAAAAAAAAxc/YmIuUMOkQT0/s400/projekt_wypelniona_strona.jpg" /&gt;&lt;br /&gt;&lt;p&gt;Zajmiemy się teraz analizą tego co widzimy z menu &lt;em&gt;Pulpit.&lt;/em&gt; Zacznijmy od tego że wszystkie elementy tworzące zawartość tej strony (poniżej menu użytkownika) są zebrane ze wszystkich projektów utworzonych aktualnie w systemie. W lewej kolumnie u samej góry widzimy obszar który nazywa się &lt;em&gt;strona startowa projektu&lt;/em&gt;. Akurat jej nazwa nie jest zbyt dobrze opisana bo w tym kontekście (nie mamy wybranego żadnego projektu) niestety strona ta nie jest stroną projektu a jedynie stroną którą możemy określić jako 'powitalną' dla całego systemu. Można ją dowolnie edytować a treść wypełniać mogą informacje dotyczące rzeczy ogólnych - uniwersalnych dla każdego projektu. Poniżej widzimy listę najnowszych zdarzeń które zaszły w obrębie całego systemu. Jest to tak naprawdę wierzchołek listy która jest dostępna pod pozycją w &lt;em&gt;menu projektu - Historia&lt;/em&gt;. Będziemy tutaj widzieć zdarzenia wykonane na &lt;em&gt;user story, zadaniach &lt;/em&gt;oraz &lt;em&gt;iteracjach&lt;/em&gt;. Wyjaśnienie tych terminów w tym i następnych wpisach. W prawej kolumnie widzimy listę projektów. Jeżeli klikniemy na któryś z nich pod jego nazwą pojawi się informacja ze &lt;em&gt;strony startowej projektu&lt;/em&gt; oraz coś co można nazwać &lt;em&gt;burndown chart&lt;/em&gt; - estymacja czasowa projektu (o tym jeszcze wspomnimy). Pod listą zarządzanych projektów w systemie, widzimy jeszcze niezaakceptowane &lt;em&gt;User Stories&lt;/em&gt; których jesteśmy właścicielami - więcej o UserStories w następnym wpisie.&lt;/p&gt;&lt;p&gt;Widok o którym tutaj napisałem dotyczy wszystkich elementów (user story, użytkowników, zadań, iteracji, projektów) zdefiniowanych w całym systemie - wprowadzę więc dla przejrzystości opisu pojęcie &lt;em&gt;kontekstu&lt;/em&gt; systemu. Jest to zasięg danych które przeglądamy. W TinyPM mamy dwa takie konteksty: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;ogólny - w którym przeglądamy wszystkie elementy wszystkich projektów w systemie;&lt;/li&gt;&lt;li&gt;projektu - w którym przeglądamy tylko elementy dotyczące danego projektu.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Pojęcie element którego powyżej użyłem jest stosowane do agregacji takich pojęć które są związane z projektem. Tak więc mogą to być:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;zadania;&lt;/li&gt;&lt;li&gt;user story;&lt;/li&gt;&lt;li&gt;iteracje;&lt;/li&gt;&lt;li&gt;wykresy postępu prac w przedziale czasowym;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Teraz omówię elementy &lt;em&gt;menu projektu&lt;/em&gt; w kontekście wybranego projektu. Wyboru projektu możemy dokonać poprzez wskazanie go z listy po prawej stronie &lt;em&gt;menu projektu&lt;/em&gt; (na screenie powyżej jest ona oznaczona kolorem żółtym.&lt;/p&gt;&lt;p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px" id="BLOGGER_PHOTO_ID_5351306390216808690" border="0" alt="" src="http://3.bp.blogspot.com/_-L4Avw7rKkM/SkOozzkmmPI/AAAAAAAAAxc/YmIuUMOkQT0/s400/projekt_wypelniona_strona.jpg" /&gt;&lt;/p&gt;&lt;p&gt;Jak widzimy przybyło nam do &lt;em&gt;menu użytkownika &lt;/em&gt;dosyć dużo pozycji. Oto one:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;projekt;&lt;/li&gt;&lt;li&gt;dziennik projektu;&lt;/li&gt;&lt;li&gt;zadania;&lt;/li&gt;&lt;li&gt;akceptacja;&lt;/li&gt;&lt;li&gt;wiki;&lt;/li&gt;&lt;li&gt;moja aktywność;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;W pozycjach &lt;em&gt;Pulpit&lt;/em&gt; oraz &lt;em&gt;Historia&lt;/em&gt; nie zaszły żadne (a ich funkcjonalności zostały one opisane w jednym z wcześniejszych akapitów). Warto jedynie wspomnieć, że gdy ze stron dostępnych pod tymi pozycjami &lt;em&gt;menu projektu&lt;/em&gt; z rozwijanej listy projektów po prawej stronie wybierzemy któryś z nich to zostaniemy automatycznie przeniesieni na stronę dostępną pod pozycją &lt;em&gt;menu użytkownika&lt;/em&gt; Projekt (z elementami dostępnymi dla tego projektu).&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Projekt&lt;/strong&gt;&lt;/p&gt;Pod tą pozycją uzyskujemy treść łudząco podobną do zawartości strony dostępnej pod pozycją &lt;em&gt;Pulpit&lt;/em&gt;. Jedyne różnice wynikają z tego, że w momencie przeglądania zawartości tej strony mamy już wybrany projekt (czyli znajdujemy się w kontekście projektu - jak to ja już wspomniałem). Oto zrzut z 'czystej' strony dla nowoutworzonego projektu:&lt;br /&gt;&lt;p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px" id="BLOGGER_PHOTO_ID_5351304352571200978" border="0" alt="" src="http://4.bp.blogspot.com/_-L4Avw7rKkM/SkOm9MwCFdI/AAAAAAAAAxU/PLWessHzEUQ/s400/projekt_czysta_strona.jpg" /&gt;&lt;/p&gt;&lt;p&gt;Kolorem czerwonym oznaczony jest przycisk który dodaje do wybranego projektu powiązaną z nim stronę - wyświetlana ona będzie w tym samym bloku w którym znajduje się ten przycisk. Opis w bloku który jest objęty ramką w kolorze zielonym to opis projektu pochodzący z formularza dodającego nowy projekt i tam też można dokonywać jego edycji. Jak widzimy lista &lt;em&gt;Najnowsze Zdarzenia&lt;/em&gt; jest w tej chwili pusta podobnie jak wykres obrazujący prędkość projektu. Tak oto wygląda strona projektu nad którym są już rozpoczęte prace:&lt;/p&gt;&lt;p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px" id="BLOGGER_PHOTO_ID_5351270756258536482" border="0" alt="" src="http://1.bp.blogspot.com/_-L4Avw7rKkM/SkOIZou53CI/AAAAAAAAAxM/DckiWwY48kQ/s400/pulpit_projektu.jpg" /&gt;&lt;/p&gt;&lt;p&gt;Jak widać wykres jednostek które pozostały do wykonania a jednostek w których mierzone jest wykonanie rzeczy mocno się rozmija - na szczęście jest to tylko przykładowo utworzony projekt. W rzeczywistości taki rozdźwięk pomiędzy poszczególnymi wykresami świadczyłoby o niedoszacowaniu prędkości pracy wykonawców przez osobę która decydowała o przydziale liczby zadań do iteracji (przypisanych było za mało zadań - w tym przypadku - czemu? Mam nadzieję że po przeczytaniu następnych wpisów będzie to dla was jaśniejsze. Blok &lt;em&gt;Najnowsze zdarzenia&lt;/em&gt; odnosi się wyłącznie do elementów z projektu który jest aktualnie wybrany.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Dziennik projektu&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Wybierając tą pozycję menu przechodzimy już do zarządzania elementami projektu. Jest to strona z której sterujemy projektem z samej jego góry - na największym poziomie granulacji projektu jakim są &lt;em&gt;User Stories&lt;/em&gt; - omówione one zostaną w następnym wpisie. Z tej strony możemy przejść do tworzenia nowych &lt;em&gt;User Stories&lt;/em&gt; importować je do plików .cvs, eskportować, przeglądać wg tagów którymi są opisane jak również przypisywać do kolejnych &lt;em&gt;Iteracji&lt;/em&gt;. W stronie pojawiającej sie po kliknięciu w tą pozycję menu możemy zarządzać również iteracjami - a konkrentniej: możemy je z tej strony tworzyć oraz przypisywać im wybrane &lt;em&gt;User Stries&lt;/em&gt; (co można zrobić w bardzo wygodny sposób: przeciągając wybrane &lt;em&gt;User Story&lt;/em&gt; do odpowiedniej &lt;em&gt;Iteracji&lt;/em&gt;). Iteracje opiszę szerzej w jednym z następnych wpisów.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Zadania&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Pod tą pozycją &lt;em&gt;Menu Projektu&lt;/em&gt; kryje się przeglądanie projektu w którym mamy czytelny podgląd na &lt;em&gt;Zadania&lt;/em&gt; - najmniejszą jednostkę na którą podzielony jest projekt względem jej relacji do &lt;em&gt;User Stories&lt;/em&gt; oraz &lt;em&gt;Iteracji&lt;/em&gt;. Zawartość którą oglądamy zależy od &lt;em&gt;Iteracji&lt;/em&gt; którą wybierzemy z rozwijanej listy znajdującej się pod &lt;em&gt;Menu Projektu&lt;/em&gt; z zaznaczoną czerwoną obwolutą rozwiniętą listą zdefiniowanych dla wybranego projektu (obwoluta żółta) listą iteracji:&lt;/p&gt;&lt;p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5352847548901871810" border="0" alt="" src="http://1.bp.blogspot.com/_-L4Avw7rKkM/SkkifDEd0MI/AAAAAAAAA3c/Yv4uXttX3ZM/s400/zadania_lista_iteracji.jpg" /&gt;&lt;/p&gt;&lt;p&gt;Niebieską obwolutą zaznaczony jest przycisk za pomocą którego możemy dodać nowe &lt;em&gt;User Story&lt;/em&gt; (podobnie jak to ma miejsce w stronie odpowiadającej menu &lt;em&gt;Dziennik Projektu&lt;/em&gt;). Pozostałą zawartość strony tworzy lista &lt;em&gt;User Stories&lt;/em&gt; przypisane do wybranej iteracji. Nad każdym takim &lt;em&gt;User Story&lt;/em&gt; znajduje się przycisk umożliwiający dodanie nowego &lt;em&gt;Zadania&lt;/em&gt; w ramach skojarzonego z przyciskiem &lt;em&gt;User Stories&lt;/em&gt;. W tym samym wierszu znajdują się jeszcze &lt;em&gt;Zadania&lt;/em&gt; które składają się na wykonanie odpowiadającego im &lt;em&gt;User Story.&lt;/em&gt; Zadania te mogą być w jednej z trzech kolumn - w zależności od ich stanu wykonania:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;oczekujące;&lt;/li&gt;&lt;li&gt;w trakcie wykonywania;&lt;/li&gt;&lt;li&gt;zakończone;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Akceptacja&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Tutaj widzimy również rozwijaną listę iteracji z tym że po wyborze którejś z nich widzimy &lt;em&gt;User Stories&lt;/em&gt; które do niej należą a które nie są zaakaceptowane. Gdy klikniemy na nazwę takiego &lt;em&gt;User Story &lt;/em&gt;przeniesiemy się do poprzednio opisanej pozycji menu - &lt;strong&gt;Zadania&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Wiki&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Tutaj każdy użytkownik którego &lt;em&gt;Rola&lt;/em&gt; zawiera możliwiość edytowania &lt;strong&gt;&lt;em&gt;Wiki&lt;/em&gt;&lt;/strong&gt; może edytować stronę która zawierać może różne informacje potrzebne do wykonania danego projektu. Zawartość tej strony pojawia się również na stronie dostępnej pod przyciskiem &lt;strong&gt;Pulpit.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Moja aktywność&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;W tej pozycji menu użytkownik może dodać swoje aktywności które poświęciliśmy na wykonanie zadania które było do nas przypisane. Możemy również określić długość spędzonego czasu nad danym zadaniem oraz dopisać info do tej aktywności (np. któtką informację o problemach które mogliśmy napotkać podczas rozwiązywania danego zadania).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4809728659016520155-8142030403471681490?l=wjednymmiejscu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wjednymmiejscu.blogspot.com/feeds/8142030403471681490/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/06/widok-w-menu-projektu.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/8142030403471681490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/8142030403471681490'/><link rel='alternate' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/06/widok-w-menu-projektu.html' title='Widok w menu projektu'/><author><name>Marcin</name><uri>http://www.blogger.com/profile/11128653556094374319</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-L4Avw7rKkM/SkN6PtT0FYI/AAAAAAAAAxE/kR2n5lRlv_Q/s72-c/pusty_pulpit.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4809728659016520155.post-421256157648274512</id><published>2009-06-24T13:01:00.000-07:00</published><updated>2009-06-24T15:54:28.788-07:00</updated><title type='text'>TinyPM - tworznie nowego projektu</title><content type='html'>&lt;div&gt;&lt;strong&gt;Cel&lt;/strong&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;  W tym wpisie zaprezenowana będzie ścieżka poruszania się po stronach aplikacji TinyPM w celu utworzenia oraz skonfigurowania nowego projektu, którym będziemy potem mogli zarządzać.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Listing utworzonych projektów&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;  Aby zobaczyć listing utworzonych projektów z 'górnego' menu wybieramy pozycję 'Projekty' (zaznaczoną czerwoną obwolutą, na poniższym screenie). Akcja skojarzona z tym przyciskiem przeniesie nas na stronę z listą projektów która może wyglądać tak:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5351005795433196098" border="0" alt="" src="http://2.bp.blogspot.com/_-L4Avw7rKkM/SkKXa4vaKkI/AAAAAAAAAt4/7wu-CGTISAs/s400/lista_projektow.jpg" /&gt;&lt;br /&gt;&lt;p&gt;  Klikając na tej liście w przycisk 'Utwórz nowy projekt' (oznaczony na powyższym zrzucie zieloną obwolutą). W ten sposób przeniesiemy się na stronę dodawania nowego projektu:&lt;/p&gt;&lt;p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5351000108176793858" border="0" alt="" src="http://4.bp.blogspot.com/_-L4Avw7rKkM/SkKSP2D0YQI/AAAAAAAAAtw/sImXRNiJzag/s400/dodawanie_nowego_projektu.jpg" /&gt;  Jak widać dodając nowy projekt którym będziemy mogli zarządzac musimy podać kilka informacji na jego temat:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;kod - unikalny w obrębie systemu;&lt;/li&gt;&lt;li&gt;nazwa - pozwala na jego czytelne nazwanie;&lt;/li&gt;&lt;li&gt;data rozpoczecia projektu - tego chyba komnetować nie trzeba;&lt;/li&gt;&lt;li&gt;docelowa data zakończenia projektu - nieobowiązkowa;&lt;/li&gt;&lt;li&gt;możliwośc wyboru czy projekt jest aktywny czy też nie;&lt;/li&gt;&lt;li&gt;opis - w edytorze WYSIWIG możemy opisać na czym projekt ten polega - dodać do niego informacje które uważamy za istotne;&lt;/li&gt;&lt;li&gt;wybieramy właściciela projektu;&lt;/li&gt;&lt;li&gt;zaznaczamy tych użytkowników którzy będą brali udział w tworzonym projekcie;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;  Tak opisany projekt tworzymy klikając w przycisk 'zapisz' (oznaczony zieloną obwolutą na powyżej załącznonym zrzucie z przeglądarki).&lt;/p&gt;&lt;p&gt;  Dodajmy jeszcze że analogicznie przeprowadzamy edycję danych projektu - wybierając przycisk graficzny 'edycja' (z kolumny akcja) na stronie listingu wszystkich projektów. Obok ikonki z edycją istniejącego projektu znajduje się ikonka usuwania projektu. Wszystkie te ikonki są zaznaczone wraz z ich znaczniem na pierwszym dołączonym zrzucie w tym wpisie. Znajduje się tam jeszcze jedna opcja (środkowa ikonka) - 'edutuj ustawienia';&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Edycja ustawień projektu&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;  Po kliknięciu w ikonkę 'edytuj ustawienia' oczom użytkownika ukaże się następujący widok:&lt;/p&gt;&lt;p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5351028211700001250" border="0" alt="" src="http://3.bp.blogspot.com/_-L4Avw7rKkM/SkKrzr146eI/AAAAAAAAAuA/9KWNI_4uSR0/s400/edycja_ustawien_projektu.jpg" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;  Definiujemy w takie parametry projektu jak:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;obowiązkowe pole 'skala estymacji' - jest to lista wartości których użyjemy na późniejszym etapie aby określić czas wykonania danegu &lt;em&gt;User Story;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;domyślana długość tworzonych &lt;em&gt;iteracji&lt;/em&gt;;&lt;/li&gt;&lt;li&gt;nazwa domyślnego &lt;em&gt;zadania &lt;/em&gt;tworzonego do każdej &lt;em&gt;iteracji&lt;/em&gt;;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;  Wszelkie dokonane zmiany zatwierdzamy klikając na przycisk 'zapisz' oznaczony na powyższym zrzucie kolorem zielony.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4809728659016520155-421256157648274512?l=wjednymmiejscu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wjednymmiejscu.blogspot.com/feeds/421256157648274512/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/06/cel-w-tym-wpisie-zaprezenowana-bedzie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/421256157648274512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/421256157648274512'/><link rel='alternate' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/06/cel-w-tym-wpisie-zaprezenowana-bedzie.html' title='TinyPM - tworznie nowego projektu'/><author><name>Marcin</name><uri>http://www.blogger.com/profile/11128653556094374319</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-L4Avw7rKkM/SkKXa4vaKkI/AAAAAAAAAt4/7wu-CGTISAs/s72-c/lista_projektow.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4809728659016520155.post-5440466006631149759</id><published>2009-06-15T12:46:00.000-07:00</published><updated>2009-06-18T12:25:34.171-07:00</updated><title type='text'>TinyPM - instalacja</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Możliwości instalacji&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  W tym wpisie pragnę przedstawić proces instalacji systemu TinyPM. Zainstalować go możemy na dwa sposoby:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;instalator (systemy operacyjne z rodziny Windows);&lt;/li&gt;&lt;li&gt;deploy aplikacji webowej;&lt;/li&gt;&lt;/ul&gt;  Użycie instalatora w zasadzie sprowadza się do zapisania na dysku specjalnie spreparowanego serwera Tomcat-a wraz z od razu zdeployowaną na nim aplikacją. Uruchomienie systemu TinyPM (np. z poziomu menu Start) sprowadza się wówczas do "odpalenia" serwera aplikacji Tomcat.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Instalacja z użyciem instalatora&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;  Pobieżny opis w języku angielskim tej instalacji można znaleźć tutaj: http://www.tinypm.com/blog/?page_id=31&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;  Aby zainstalować TinyPM przy pomocy instalatora trzeba spełnić następujące warunki:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;zainstalowane JRE (wystarczające) albo JDK w wersji przynajmniej 5.0;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;ustawienie zmiennych środowiskowych %JRE_HOME% oraz wykorzystanie tej zmiennej w dodaniu kolejnej ścieżki do zmiennej %PATH%;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;  Instalacja dobywa się w najprostszy sposób i zawiera domyślną konfigurację: oparta jest o serwer Tomcat oraz bazę danych HSQLDB.&lt;br /&gt;&lt;br /&gt;  Po zainstalowaniu oraz uruchomieniu (np. z menu Start) aplikacji możemy z niej skorzystać wpisując do przeglądarki adres: http://localhost:8080/ Nazwa użytkownika oraz - odpowiednio - hasło to admin/admin&lt;br /&gt;&lt;br /&gt;  Możliwości konfiguracji zainstalowanej tym sposobem aplikacji są bardzo niewielkie i ograniczają się do zmian w pliku [ścieżka do katalogu z zainstalowanym TinyPM]\db\tinypm.properties&lt;/span&gt; - i jest to zmiana wyłącznie parametrów działania bazy danych HSQLDB które to parametry nie mają istotnego znaczenia w typowym wykorzystaniu aplikacji TinyPM.&lt;span style="font-family: courier new;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: georgia;"&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-family: georgia;font-size:130%;" &gt;&lt;br /&gt;&lt;br /&gt;Instalacja aplikacji z pliku .war&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;  Wersja angielska tej instrukcji (nieco okrojona) znajduje się &lt;a href="http://www.tinypm.com/blog/?page_id=31"&gt;w tym miejscu&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;. Dodatkowe informacje można znaleźć także w pliku INSTALL.txt dołączonym do &lt;a href="http://support.agilers.com/downloads.jsf"&gt;archiwum&lt;/a&gt; aplikacji TinyPM dla określonego rodzaju serwera aplikacji.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Wymagania&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  TinyPM instalujemy na dedykowanym do tego celu serwerze aplikacji. Wspieranym typem jest serwer Tomcat (minimalna ilość pamięci to 256 MB) w wersjach 5.x oraz 6.x. Oprócz serwera (oraz oczywiście Javy - wystarczy JRE - co najmniej wersja 5.x) potrzebujemy jeszcze bazy danych MySQL w wersji co najmniej 5.0.x. Do połącznia aplikacji z bazą danych wymagany jest konektor bazy MySQL dla języka Java - wersja co najmniej 5.1.x.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Zależności&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  W paczce instalacyjnej aplikacji (po rozpakowaniu wcześniej pobranego archiwum) w katalogu &lt;span style="font-family: courier new;"&gt;dependences&lt;/span&gt; &lt;span style="font-family: georgia;"&gt;znajduje się parę bibliotek - o ile nie są one dostępne w katalogu %CATALINA_HOME%/lib to - z pobranym wcześniej plikiem konektora MySQL-a należy je tam skopiować (o ile już się tam nie znajdują).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Instalacja bazy danych&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  Potrzebujemy stworzyć nową bazę danych dedykowaną dla obsługi aplikacji TinyDB:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  CREATE DATABASE tinypmdb CHARACTER SET = 'utf8' COLLATE = 'utf8_general_ci';&lt;span style="font-family: georgia;"&gt;&lt;br /&gt;&lt;br /&gt;  Następnie musimy utworzyć użytkownika z uprawnieniami SELECT, UPDATE, INSERT oraz DELETE:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  GRANT SELECT, UPDATE, INSERT, DELETE ON tinypmdb.* TO tinypm'@'localhost' IDENTIFIED BY 'password';&lt;br /&gt;  FLUSH PRIVILEGES;&lt;/span&gt;&lt;span style="font-family: georgia;"&gt;&lt;br /&gt;&lt;br /&gt;  Na koniec odpalamy skrypty które stworzą odpowiednie struktury danych w świeżo utworzonej bazie oraz wypełnia je danymi:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  \u tinypmdb&lt;br /&gt;  \. %PATH_TO_INSTALL_FOLDER%/database/mysql/create_schema-1.3.02.sql&lt;br /&gt;  \. %PATH_TO_INSTALL_FOLDER%/database/mysql/create_data-1.3.02.sql&lt;span style="font-family: georgia;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Instalacja aplikacji TinyPM&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  Ponieważ nie jest rekomednowana instalacja aplikacji na uruchomionym serwerze dlatego na początku musimy zatrzymać serwer. Wypakowywujemy tinypm.war do bazowego katalogu webapps:&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="font-family: courier new;" lang="bash"&gt;  %CATALINA_HOME%/webapps&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: georgia;"&gt;    Modyfikujemy plik kontekstu aplikacji ustawiając użytkownika oraz hasło. Wspomniany plik znajdziemy w następującej lokalizacji:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;  %CATALINA_HOME%/webapps/tinypm/META-INF/context.xml&lt;/span&gt;&lt;span style="font-family: georgia;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  Uruchamiany serwer aplikacji Tomcat, a po jego uruchomieniu wpisujemy w pole adresu przeglądarki adres: &lt;span style="font-style: italic;"&gt;http://localhost:8080/tinypm&lt;/span&gt; i do logowani używamy loginu oraz hasła które dodaliśmy we wcześniejszym akapicie.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Uzyskiwanie klucza licencji&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/span&gt;Darmowy klucz licencji pozwala na stworzenie do pięciu projektów oraz do pięciu osób biorących udział w projekcie. Jest on potrzebny zaraz po uruchomieniu aplikacji oraz zalogowaniu się do niej jako administrator dlatego jego wykorzystanie omówię w tym wpisie.&lt;br /&gt;&lt;br /&gt;  Logujemy się na &lt;a href="http://support.agilers.com/"&gt;tej stronie&lt;/a&gt; (w przypadku gdy nie mamy na niej swojego konta, konieczne będzie jego założenie). Po zalogowaniu pobieramy dostępny nam klucz, zapisujemy na dysku, a następnie logujemy się do odpalonej zgodnie z wcześniejszą instrukcją aplikacji. Tam w menu &lt;span style="font-style: italic;"&gt;'Konfiguracja&lt;/span&gt;' odszukujemy fragment strony która odpowiada zarządzaniu licencjami. W formularzu: &lt;span style="font-style: italic;"&gt;'nowy plik licencji'&lt;/span&gt; odszukujemy na dysku wcześniej zapisany plik z licencją i klikamy przycisk/link '&lt;span style="font-style: italic;"&gt;zainstaluj nową licncję&lt;/span&gt;'.&lt;br /&gt;&lt;br /&gt;  Od tej pory możemy cieszyć się z aplikacji TinyPM którą sami zainstalowaliśmy.&lt;a href="http://support.agilers.com/"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-family: georgia;"&gt;&lt;span style="font-family: georgia;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-family: georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4809728659016520155-5440466006631149759?l=wjednymmiejscu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wjednymmiejscu.blogspot.com/feeds/5440466006631149759/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/06/tinypm-instalacja.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/5440466006631149759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/5440466006631149759'/><link rel='alternate' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/06/tinypm-instalacja.html' title='TinyPM - instalacja'/><author><name>Marcin</name><uri>http://www.blogger.com/profile/11128653556094374319</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4809728659016520155.post-3579117387608643573</id><published>2009-06-08T14:33:00.000-07:00</published><updated>2009-06-24T12:58:49.410-07:00</updated><title type='text'>TinyPM - Dodawanie użytkowników oraz tworzenie projektu</title><content type='html'>&lt;span style="font-family:georgia;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Cel&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;  Jak po tytule można się już domyślić wpis ten będzie poświęcony dodawaniu nowych użytkowników - uczestników projektu oraz tworzeniu samego projektu. Niestety - wersja dostępna za darmo w TinyPM posiada ograniczenie ich liczby do 5, lecz to w zupełności wystarcza do edukacyjnego zaprezentowania programu, a nawet do niewielkich lub niezbyt skomplikowanych projektów.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;span style="font-size:130%;"&gt;Dodawanie nowego użytkownika&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;  Dodawanie nowego użytkownika trzeba rozpocząć od przybliżenia zagadnienia &lt;span style="FONT-STYLE: italic"&gt;roli&lt;/span&gt;. Tak więc &lt;span style="FONT-STYLE: italic"&gt;Rolą&lt;/span&gt; w TinyPM nazwiemy zbiór uprawnień przypisany do jakiejś nazwy będącej nazwą &lt;span style="FONT-STYLE: italic"&gt;roli&lt;/span&gt;. Zbiór uprawnień zawierać może elementy pogrupowane w następujące kategorie:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ogólne (edycja ustawień konta i konfiguracji aplikacji, dziennik projektu, zadania, historia, wiki);&lt;/li&gt;&lt;li&gt;iteracje (lista/tworzenie/edycja/usuwanie/zamknięcie iteracji, dodawanie user story do iteracji, usuwanie user story z iteracji);&lt;/li&gt;&lt;li&gt;user stories (lista/tworzenie/edycja/usuwanie/zatwierdzanie/odrzucanie user story, dodawanie komentarzy, import, eksport);&lt;/li&gt;&lt;li&gt;zadania (lista/tworzenie/edycja/usuwanie zadań, dodawanie komentarzy);&lt;/li&gt;&lt;li&gt;zarządzanie użytkownikami (lista/tworzenie/edycja/usuwanie użytkowników);zarządzanie rolami (lista, tworzenie, edycja, usuwanie);&lt;/li&gt;&lt;li&gt;zarządzanie projektami (lista, tworzenie, edycja, usuwanie);&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;  Do danej nazwy można przypisać zbiór składający się z dowolnej ilości wyżej wymienionych uprawnień. Uprawnienia dodajemy wybierając z menu użytkownika (kolor zielony na załączonym screenie) pozycję '&lt;span style="FONT-STYLE: italic"&gt;Role&lt;/span&gt;':&lt;/div&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://3.bp.blogspot.com/_-L4Avw7rKkM/SkANrlcmIKI/AAAAAAAAArw/8aVA9UCDV94/s1600-h/lista_rol_dodawanie_nowej_roli.jpg"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 250px" id="BLOGGER_PHOTO_ID_5350291399753736354" border="0" alt="" src="http://3.bp.blogspot.com/_-L4Avw7rKkM/SkANrlcmIKI/AAAAAAAAArw/8aVA9UCDV94/s400/lista_rol_dodawanie_nowej_roli.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="left"&gt;a tak wygląda strona na której dodajemy nową rolę do systemu (taki sam wygląd ma również edycja istniejącej roli):&lt;/p&gt;&lt;p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5350956658852267314" border="0" alt="" src="http://2.bp.blogspot.com/_-L4Avw7rKkM/SkJquwtmhTI/AAAAAAAAAsQ/9WlxQ3Q5wjQ/s400/dodawanie_nowej_roli.jpg" /&gt;  Mając już zdefiniowaną chociaż jedną rolę w systemie, możemy dodać użytkownika. Robimy to wybierając z 'górnego' menu pozycję użytkownicy (zaznaczona na poniższym screenie na czerwono) po którym to wyborze wyświetli się strona z listą użytkoników oraz przyciskiem (zaznaczonym na zielono):&lt;/p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5350973431952979154" border="0" alt="" src="http://1.bp.blogspot.com/_-L4Avw7rKkM/SkJ5_FYcNNI/AAAAAAAAAsw/bnpMN9Mr_oc/s400/lista_uzytkownikow.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;  Z poziomu tej strony możemy także usuwać oraz edytować dodanych już użytkowników. Po kliknięcu na przycisk 'Utwórz nowego użytkownika' znajdziemy się na stronie:&lt;/p&gt;&lt;p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5350979506047891538" border="0" alt="" src="http://4.bp.blogspot.com/_-L4Avw7rKkM/SkJ_gpJhOFI/AAAAAAAAAs4/krcigOhhn1k/s400/dodawanie_uzytkownika.jpg" /&gt;  Podajemy tutaj takie informacje jak nazwę użytkownika, jego login, adres email, hasło dostępowe, rolę która będzie przypisane do tego użytkownika oraz mamy wybór zaznaczenia takich pól jak: czy użytkownik jest aktywny, oraz zapisać się na powiadomienia gdy ktoś skomentuje związane z tworzonym użytkownikiem zadanie, lub ktoś przypisze zadanie tworzonemu właśnie użytkownikowi.&lt;/p&gt;&lt;p&gt;  Gdy już wszystkie pola będą wypełnione możemy kliknąć w przycisk 'zapisz' i zakończymy w ten sposób proces tworzenia nowego użykownika w TinyPM.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4809728659016520155-3579117387608643573?l=wjednymmiejscu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wjednymmiejscu.blogspot.com/feeds/3579117387608643573/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/06/tinypm-dodawanie-uzytkownikow-oraz.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/3579117387608643573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4809728659016520155/posts/default/3579117387608643573'/><link rel='alternate' type='text/html' href='http://wjednymmiejscu.blogspot.com/2009/06/tinypm-dodawanie-uzytkownikow-oraz.html' title='TinyPM - Dodawanie użytkowników oraz tworzenie projektu'/><author><name>Marcin</name><uri>http://www.blogger.com/profile/11128653556094374319</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-L4Avw7rKkM/SkANrlcmIKI/AAAAAAAAArw/8aVA9UCDV94/s72-c/lista_rol_dodawanie_nowej_roli.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
