sobota, 9 lutego 2008

XPlanner, iteration burn-down chart i moja przygoda z Silverlight.

W projekcie, w którym obecnie uczestniczę używamy XPlannera do planowania i śledzenia statusu projektu. Jednym z ważniejszych narzędzi w XPlannerze jest iteraton burn-down chart (wykres wygaszania iteracji). Wykres taki przedstawia w postaci liniowego wykresu informacje o tym ile pracy zostało do wykonania w bieżącej iteracji.

Niestety wykres generowany przez XPlannera jest dość ubogi. Standardowo wygląda tak (w bieżącej wersji XPlannera postęp iteracji przedstawiony jest na dwóch wykresach, ale na stronie XPlannera są stare screenshoty). Najbardziej brakuje mi 'linii idealnego wygaszenia', na tym wykresie zaznaczonej w kolorze różowym. Taka linia jest perfekcyjna do szybkiego ustalenia stanu iteracji. Jeśli znajdujemy się nad linią idealną oznacza to, że jesteśmy spóźnieni, jeśli znajdujemy się pod liną idealną oznacza to, że jesteśmy do przodu z pracą.

Dodatkowo chciałbym na wykresie zobaczyć estymacje określające:
  1. gdzie będziemy w ostatnim dniu, jeśli zespół będzie pracował z taką prędkością jak obecnie?
  2. gdzie będziemy przy prędkości największej/najmniejszej w historii projektu?

Dlatego postanowiłem napisać prostą aplikację, która na podstawie danych z bazy XPlannera będzie generowała zaawansowany wykres wygaszania. Początkowo chciałem to zrobić w zwykłym ASP.NET, ale przypomniałem sobie o konkursie European Silverlight Challenge, który Marcin Celej ogłosił na jednym ze spotkań KGD.NET. Ponieważ, do końca konkursu został tydzień, a zgłoszono jedną pracę pomyślałem, że upiekę trzy pieczenie przy jednym ogniu. Nauczę się Silverlighta, stworze potrzebny wykres i zajmę drugie miejsce w konkursie. Mój chytry plan udał się częściowo: nauczyłem się Silverlighta, napisałem aplikacje, ale było więcej sprytnych osób i w dniu zamknięcia konkursu okazało się, że jest zgłoszonych aż 16 prac, co zaprzepaszcza możliwość zajęcia jakiegoś nagradzanego miejsca.


Nigdy nie czułem się dobrze w programowaniu UI. Zawsze miałem wrażenie, że to, co zrobię jest brzydkie i bez 'smaku'. Dlatego przeważnie stroniłem od pracy przy UI. Jeśli musiałem coś zrobić to prosiłem kogoś o radę przy wyborze kolorów, rozłożeniu kontrolek itd. Chyba z tego powodu nie interesowałem się zbytnio WPF i Silverlightem, dlatego do problemu podszedłem całkiem zielony.

Muszę przyznać, że Silverlight pozytywnie mnie zaskoczył. Słyszałem wcześniej opinie, że WPF i Silverlight wprowadzają nowy paradygmat tworzenia UI i z tego powodu trudno jest się przestawić. Może, dlatego, że miałem mało do czynienia z grafiką do tej pory, przyswojenie idei Silverlighta przyszło dość łatwo i naturalnie.

Gotową aplikacje możecie znaleźć tutaj.

Aplikacja jest napisana tak, aby przy małej ilości pracy można było wykorzystać ją z innym systemem niż XPlanner. Jeżeli chcecie robić wykres na podstawie danych np. z TFS, musicie zaimplementować interfejs IDataProvider i zmienić web.config tak, aby odpowiednia implementacja została użyta.

W kilku następnych wpisach spróbuje opisać moje przygody z Silverlightem.

Brak komentarzy: