W przeciągu ostatniego półrocza wykonaliśmy dla naszego stałego klienta - firmy Profill - oprogramowanie kompleksowo zarządzające ośmioma systemami lojalnościowymi. Każdy z tych programów różnił się zasadami, rodzajem uczestników i logistyką. Dodatkowo duża liczba tych projektów oznaczała bardzo napięte terminy. Jednak realizacja przebiegła sprawniej niż zakładaliśmy i my i klient. Dlaczego?
Początkowe założenia klienta
Początkowa idea zakładała stworzenie jednego uniwersalnego systemu do zarządzania wszystkimi
systemami lojalnościowymi. Klient - posiadający bogate doświadczenie w tworzeniu systemów
lojalnościowych - chciał uniknąć tworzenia każdego programu od podstaw, co miało
wcześniej miejsce.
Z rozmów przeprowadzonych z klientem i analizy specyfikacji wywnioskowaliśmy, że jest to cel trudny w realizacji
ze względu na mocno podkreślony indywidualizm każdego z programów.
Każde z nich charakteryzowały zarówno cechy wspólne jak i różniące je w znaczący sposób od pozostałych.
Potrzebowaliśmy znaleźć kompromis pomiędzy oczekiwaną elastycznością produktu i stopniem skomplikowania projektu.
Rozwiązanie
Postanowiliśmy wyodrębnić grupę komponentów bazowych wspólnych dla każdej z aplikacji, które następnie
były aplikowane do systemów i modyfikowane w zależności od jego indywidulanych potrzeb.
Następnym krokiem był wybór technologii. Terminy realizacji, konieczność modyfikacji gotowych komponentów oraz
stale zmieniające się wymagania sprawiały, że wybrana technologia musiała umożliwiać adaptacyjne tworzenie
nowych funkcjinalności jak i łatwe wprowadzanie modyfikacji. Nasz wybór - język Ruby i framework Ruby on Rails
- okazał się być wyjątkowo trafny.
Jego twórcom przyświecały dwie zasady: don't repeat yourself (w skrócie DRY) oraz convention over configuration, co w połączeniu z niezwykle zwięzłą składnią języka Ruby pozwoliło drastycznie zmniejszuć ilość kodu oraz wyeliminować potrzebę tworzenia złożonych plików konfiguracyjnych.
Nie bez znaczenia pozostał fakt, że wybrana technologia jest narzędziem dedykowanym pod metodykę Agile. Proces tworzenia oprogramowania odbywał się w ciągłym kontakcie z klientem, któremu z iteracji na iterację udostępnialiśmy coraz to bardziej funkcjonalne wersje systemów.
Podsumowanie
Zestaw systemów lojalnościowych to jedynie część oprogramowania, które powstaje dla firmy Profill. Są one zaledwie satelitami głównego systemu - programu logistycznego, którego realizacja jest obecnie na ukończeniu.
Zobacz również
