poniedziałek, 19 października 2009

Zmiana oferty na XP-Dev.com

Całkiem niedawno pisałem o darmowej kontroli wersji na XP-Dev.com. Niestety jakiś czas temu serwis został przeniesiony na nowe serwery i wraz z odmłodzeniem zmieniły się też warunki użytkowania i plany cenowe. Teraz w planie darmowym mamy do dyspozycji:
  • brak limitów dla projektów open-source
  • 2 projekty prywatne
  • 200MB przestrzeni dyskowej
  • ograniczenie do 4 historii wraz z błędami na projekt
  • nielimitowana ilość uczestników projektu
  • brak SSL
  • brak kopii bezpieczeństwa
  • reklamy na kontach
Sporo też problemów z przeniesieniem starych projektów do nowego systemu zarządzania. Niestety przykro to mówić, ale serwis stracił moją rekomendację...

niedziela, 18 października 2009

Drogi kliencie, czy wiesz za co płacisz?

Idąc za ciosem po publikacji luźnych myśli, postanowiłem naświetlić Wam - moi drodzy klienci - kosztorys dobrej aplikacji. Często wchodzicie na stronę firmy zajmującej się tzw. webmasterką i chcecie im zlecić wykonanie strony firmowej. Co firma to inne ceny i przeróżne hasła zachęcające do skorzystania z ich usług.

Marketing tutaj odgrywa bardzo ważną rolę, ale czym tak na prawdę jest reklama? Czy zawsze mówi prawdę? Reklama jest jak lep na muchy - w tym przypadku na Was drodzy klienci - mający przyciągać masy. A co wiecie o produktach masowych? Znacie idealne rozwiązania dla każdego? A może jakiś półprodukt? I nie mówię tutaj o chlebie czy maśle, ale o generatorach witryn internetowych. Tak dokładnie, tych generatorach które pozwalają za pomocą 2-3 kliknięć "zbudować" stronę. Nie będę wnikał jak ta strona wygląda, co oferuje i czy reprezentuje jakąkolwiek jakość...

Mogę powiedzieć za to czym powinien się charakteryzować produkt naprawdę wysokiej jakości. Produkt który zrealizuje zapotrzebowanie klienta, który będzie zrobiony "na miarę". Chyba tego za każdym razem oczekujecie? Chcecie otrzymać coś dobrego, wydajnego i użytecznego...

Kolega lubi używać porównania "mercedes vs polonez", ale moim zdaniem nie tak należy do tego podejść. To porównanie niestety nie oddaje złożoności problemu i często gęsto daje złudny obraz. Każda strona czy aplikacja webowa to długi i skomplikowany proces produkcji, gdzie macie kontrolę nad każdym jej etapem. To jest jak układanie domino, gdzieś się popełni błąd i klocki lecą...

Przejdźmy może do pytań jakie powinniście sobie zadać zanim zamówicie jakąkolwiek aplikację:
  • czego ma dotyczyć?
  • ile odwiedzin dziennie/tygodniowo/miesięcznie się spodziewacie?
  • czy jest to produkt na lata? A może chwilowy/tymczasowy?
  • czy będziecie przetrzymywać tam wartościowe informacje?
  • będziecie gromadzić informację o klientach?
  • będą prowadzone statystyki?
  • czy aplikacja ma być bezpieczna? Odporna na ataki? Jeśli tak to jakie?
  • jakiego typu treści będą umieszczone?
  • jaki charakter prezentowania treści wybierzecie?
  • na jakim hostingu będzie działała aplikacja? Jakie są parametry tego hostingu?
i wiele, wiele innych...

Odpowiedzi jakich udzielicie na powyższe pytania w bardzo dużym stopniu wpłyną na sposób wykonania aplikacji i technologię w jakiej zostanie ona wykonana. Zadałeś/aś sobie te pytania? Udzieliłeś/aś na nie odpowiedzi? A teraz najważniejsze, czy widzisz złożoność problemu?

Wyprodukowanie dobrego oprogramowania, to nie jest kwestia 5-10min. Czy jeśli idziesz gotować obiad, ogranicza się to do wlania wody do garnka i postawienia na kuchence gazowej? To może przestawię Ci z grubsza jak wygląda proces wytwarzania dobrego oprogramowania:
  1. Spis wymagań
    • podstawowe założenia aplikacji
    • spis funkcjonalności
  2. Przypadki użycia
    • dokładny opis działania
    • diagramy przypadków użycia
  3. Model klas
  4. Przygotowanie środowiska testowego
  5. Wytwarzanie aplikacji
  6. Refaktoryzacja -> wersja release
  7. Oddanie aplikacji
Nakreśliłem ten plan w mocno przewrotnej formie, ponieważ rozpisałem kroki w których Ty drogi kliencie, bierzesz udział. Jak by zebrać tak procentowo to pierwsze 2 punkty stanowią jakieś 3-5% całości projektu. Więc dlaczego nie wyolbrzymiłem jakże żmudnej pracy zleceniobiorcy? Dlatego, że nic by Ci to nie powiedziało drogi kliencie, a szukanie wyjaśnień wszystkich etapów i tak by nie oddało nakładu pracy jaki zostanie w to włożony.

Jak widzisz wybieram to co dla Ciebie jest ważne, bo to Ty decydujesz czego potrzebujesz. A teraz wyobraź sobie, że zmiana decyzji w trakcie wytwarzania aplikacji, czyli pisania kodu źródłowego potrafi nieść za sobą olbrzymie zmiany w całej architekturze. Możesz podejść do tego jak do zmiany szerokości tylnej kanapy w samochodzie - na szerszą ;-) Nie dość, że trzeba zmienić karoserię to i po zmianie karoserii całe podwozie...

Chcesz czy nie, to na Twoich barkach w znacznej mierze leży jakość wytworzonej aplikacji i czas jej realizacji. A "my" tak jak i Ty nie wiemy wszystkiego. Bardzo często dochodzi do potrzeby rozwiązania problemów powstających w trakcie pisania kodu.

Wszystkie powyższe czynniki składają się na jakość aplikacji. Ktoś może wykona to 10x taniej i będzie tak samo wyglądać, ale czy spełni te wszystkie wymogi jakie postawiłeś? Zapewni bezpieczeństwo Twoim danym i danym klientom? Będzie odporna na większość ataków? Czy będzie się nadawać do umieszczenia na Twoim hostingu? Czy nie będziesz musiał co miesiąc dopłacać do hostingu, ponieważ zacznie generować zbyt duży ruch? A może będzie generować tak duże obciążenie serwera, że nie przyjmie odpowiedniej ilości jednoczesnych wizyt? No ale przecież będzie wyglądać tak samo! I będzie tanio!

Więc tak na prawdę zastanów się mój drogi kliencie, na czym tak na prawdę Ci zależy. I miej świadomość, że dobrze wykonana aplikacja, nie będzie kosztować 200zł a wielokrotność tej sumy. A ktoś kto będzie wykonywać Twoje zlecenie, musi mieć już dobrze opanowany kunszt oraz olbrzymią wiedzę, żeby wiedzieć, jak spełnić Twoje oczekiwania.

Jedyne czego mogę Ci życzyć, to dobrych decyzji i udanych "zakupów".