Desktop Info – wybór i konfiguracja środowiska

Mamy pomysł, który został odpowiednio przeanalizowany pod względem użyteczności oraz priorytetów. Co dalej? Należy się zastanowić, czy realizujemy go czy nie. Pytanie może wydawać się zupełnie idiotyczne, no bo jak to… mam pomysł i nie realizuję go? Jak podają eksperci, firmy odnoszące największe sukcesy odrzucają większość początkujących projektów. Dlaczego tak się dzieję? No cóż, nie ma się co łudzić, że pewnego dnia wstaniemy i wpadniemy na genialny pomysł, który zrewolucjonizuje podbije świat. Takie pomysły potrzebują czasu aby można je było określić. Czasem kilka innych pomysłów nakieruje nas małymi kroczkami na ten jeden, jedyny słuszny. Zobaczcie co robi Google, jak wieść gminna niesie, programiści są zobligowani do spożytkowania 20% czasu pracy na pracę nad własnymi projektami. Co więcej z tych projektów są rozliczani (czy rzeczywiście coś robili). Co się dzieje z tymi projektami dalej? Przecież to mogą być zupełnie niepotrzebne rzeczy, które nawet nie pasują do polityki firmy. Takie projekty są weryfikowane i w większości odrzucane jednak mały procent z nich wchodzi do „produkcji”, stają się rozwijane i upubliczniane. Tak stało się między innymi z listą zadań w gmail-u. Dlatego namawiam Cię do spisywania swoich pomysłów, analizowania ich i odrzucania tych, które są bez przyszłości. Małymi kroczkami dojdziesz do tego jednego upragnionego Grala. Być może to będzie coś na miarę Skype-a lub Facebook-a a może coś mniejszego ale dającego twórcy – Tobie – satysfakcję.

Wracając do mojego projektu. Odpowiedź na pytanie o realizację zawarłem poniekąd w poprzednim poście. Więc sprawa jest prosta. Realizuję. W tym celu należy przygotować sobie środowisko pracy. Dopiero tutaj proponuję zastanowić się nad technologią.

Dlaczego dopiero tutaj? Dlatego aby nie mieszać pomysłu na software z jego implementacją. Jeśli mamy skrystalizowany pomysł, jeśli będziemy wiedzieli co chcemy uzyskać i jak ma to „coś” pracować, łatwiej będzie nam wybrać technologię (jeśli mamy taki wybór). W moim wypadku technologia wynika bezpośrednio z chęci jej poznania a nie z potrzeby stworzenia komercyjnej aplikacji, która będzie dostępna dla milionów użytkowników. Gdyby ta aplikacja miała być dostępna szeroko to pewnie poszedł bym w kierunku C++ oraz WinAPI, tutaj jednak priorytety są trochę inne.

Środowisko pracy czyli co będziemy potrzebować:

  1. Narzędzie programistyczne
  2. Narzędzia zwiększające możliwości wybranego narzędzia programistycznego
  3. Repozytorium źródeł
  4. Automatyczna kompilacja
  5. Miejsce przechowywania zadań do wykonania oraz informacji o błędach
  6. Miejsce do publikacji wersji
  7. ….

Listę pozostawiam otwartą bo być może macie sugestie odnośnie tego co jeszcze może być przydatne.

Jak ta lista wygląda w przypadku DesktopInfo

  1. Narzędzie programistyczne

    Visual Studio 2010 Ultimate – bo do takiego mam dostęp w ramach MSDN AA (jeśli macie możliwość skorzystania z tego programu to z całego serca polecam go, dostajecie potężny pakiet oprogramowania za darmo i w pełni legalnie. Większość z nich ma lepsze lub gorsze darmowe alternatywy ale w codziennej pracy w realiach naszego kraju, z wieloma tymi narzędziami się spotkacie więc warto skorzystać z możliwości poznania ich)

  2. Narzędzia zwiększające możliwości wybranego narzędzia programistycznego

    No cóż, żadne narzędzie nie jest idealne i chyba do większości z nich powstają dodatki zwiększające produktywność. Aplikacje takie jak ReSharper, Tommatoe czy choćby PowerTools dla VisualStudio pozwalają wycisnąć jeszcze więcej z ulubionego IDE. Ja będę korzystał z PowerTools i kilku innych dodatków do Visual Studio 2010 – więcej o nich w nadchodzących wpisach.

  3. Repozytorium źródeł

    Dlaczego w ogóle tego potrzebujemy jeśli pracujemy jako samodzielny programista? Dla bezpieczeństwa i wygody. Wyobraź sobie sytuację, w której jakaś część kodu lepiej działała w poprzedniej wersji niż teraz. Mając dowolne repozytorium źródeł możemy wrócić do konkretnej wersji, możemy porównywać zmiany pomiędzy wersjami i sprawdzać co się zmieniło/zepsuło/naprawiło. W przypadku jeśli chcemy pracować w kilka osób, wówczas takie repozytorium jest wręcz niezbędne. W swoim projekcie będę korzystał CodePlex-a wspomaganego TeamExplorerem – czyli uzyskam namiastkę Team Foundation Server-a

  4. Automatyczna kompilacja

    Rzecz bardzo miła i przyjemna. Możliwość skompilowania naszego projektu za pomocą jednego kliknięcia lub jednej komendy. Pracując w zespole rzecz równie nieodzowna co repozytorium źródeł. Nie każdy przecież musi pamiętać jak skompilować aplikację (szczególnie jeśli ma wiele zależności, dodatkowych modułów etc). W moim wypadku chyba nie będę z tego korzystał, ponieważ jeszcze nie wiem jak wykorzystać BuildServer (część Team Foundation Servera) na CodePlex-ie

  5. Miejsce przechowywania zadań do wykonania oraz informacji o błędach

    Rzecz chyba najbardziej kluczowa jeśli chodzi o zarządzanie projektem. Pomijając wszelkie metodologie (czy to SCRUM czy PRINCE2 czy klasyczne kaskady i inne „wymysły”) musimy prowadzić listę rzeczy do zrobienia oraz listę błędów. Nie ma się co łudzić, że nawet przy jednoosobowym projekcie zapamiętamy listę ficzerów i błędów do rozwiązania. Zresztą po co o tym pamiętać, nasze mózgu można wykorzystać bardziej efektywnie niż do zapamiętywania informacji.

    Ponieważ DesktopInfo będzie jest hostowany na CodePlex i korzystam z Team Explorera, to mogę przechowywać WorkItemy czyli rzeczy do zrobienia (oznaczone jako ficzer albo jako bug). Czyli wybierając odpowiednie narzędzie załatwiam 2 punkty na liście J

  6. Miejsce do publikacji wersji

    Tutaj sprawa jest oczywista, wersja skompilowana musi gdzieś być opublikowana. Jeśli to jest publicznie dostępna aplikacja OpenSource to pewnie na jakiejś stronie (DesktopInfo będzie publikowany na stronach CodePlex oraz być może – tu sprawa jest jeszcze otwarta – tuta na blogu), jeśli aplikacja jest tworzona przez firmę i będzie dostarczana jedynie tym którzy zapłacą, wówczas aplikacja musi być tak opublikowana, aby dostęp do niej mieli testerzy.

     

  7. W tym punkcie oddaję głos Wam, co jeszcze uważacie, że powinno się znaleźć na liscie?

     

     

Scroll to top