Body leasing
Body leasing jest świetnym sposobem na szybkie uzyskanie zasobów ludzkich w IT bez konieczności tworzenia lub rozbudowy struktur firmy.
Zalety body leasingu
Szybki start
Ruszamy z projektem w maksymalnie 2 tygodnie.
Szeroki zakres kompetencji
Dopasujemy zespół do potrzeb projektu - Ruby, .Net, Java, Javascript, Python, React Native, Node.js, Angular, Perl, Visual Basic, Golang, C++ czy C# to dla nas drobnostka.
Kompleksowa obsługa
Nie tylko programujemy - zapewniamy też konsulting, projekty UX/UI, utrzymanie (SLA), serwery i hosting. Możemy powiększyć zespół o specjalistów od innych technologii.
Robimy trudne projekty
Dajemy radę tam, gdzie inne zespoły poległy. Dla nas to nie problem, a wyzwanie.
Zapewniamy ciągłość pracy
Uzupełniamy skład zespołu w sytuacjach losowych. Stale dbamy o duplikację wiedzy w prowadzonym projekcie. Bierzemy na siebie koszty doszkolenia nowych członków zespołu.
Elastyczna umowa ramowa
Umowa upoważnia klienta do składania zamówień. Klient określa tylko wymiar godzinowy zakontraktowania i czas objęty zamówieniem.
Pozyskanie programistów od profesjonalnego dostawcy body leasingu umożliwia błyskawiczny dostęp do najlepszych specjalistów bez ponoszenia kosztów związanych z rekrutacją. Co więcej, programiści kontraktowani są jedynie na czas, w którym są potrzebni, a poważna firma body leasingowa bez problemów wymieni programistę na innego, jeśli zmieni się wachlarz wykorzystywanych technologii.
Nasi Klienci
Polski Związek Motorowy
Adamed
Polska Agencja Prasowa
Astor
IFX Payments
TEB Edukacja
Fundacja Moc Pomocy
Elemental Holding
French Touch
Polski Komitet Normalizacyjny
TU
Bergakademie Freiberg
Bank Nowy BFG
Narodowe Centrum Promieniowania Synchrotronowego SOLARIS
Astorino Kawasaki Robotics
DTK&W Zespół Ogłoszeniowy
Opegieka
Crazy shop
PartyBox
WUOZ w Krakowie
Uniwersytet Medyczny w Łodzi
Grupa Mo
Jeleniogórska Organizacja Turystyczna
eFitness
Instytut Badań Literackich PAN
Danhoss
Fundacja Sztuki, Przygody i Przyjemności ARTS
Opennet.pl
Centrum Medyczne Intermed
Centrum Rozwoju Edukacji Edicon
Winner Europe
Po amputacji
MamMoc.pl
EtnoStoria
Widzisz Wszystko
EMKA Project
NowaLed ILL
Eco Light LED
LoxiMide
Fundacja AVLab.pl
RCC Nova
Vector Controls
Virtual SMS
Parus Holdings
Biuro Partner
Optime.AI
M2M Team
Firma postanowiła stworzyć dedykowany system do zarządzania dokumentacją badań medycznych. W ramach tego projektu pełniliśmy rolę konsultanta technicznego. Aktywnie uczestniczyliśmy w określeniu zakresu systemu, wyborze odpowiednich technologii i projektowaniu jego architektury.
Dzięki naszemu zespołowi, firma może sprawnie i skutecznie wdrażać nowe rozwiązania w branży e-commerce.
Jednym z zadań było zaktualizowanie wersji PHP i Javy, a także zidentyfikowanie problemów wydajnościowych. Dzięki naszym optymalizacjom kluczowy proces został przyspieszony o ponad 100 razy – wcześniej trwał ponad dobę, obecnie zajmuje kilkanaście minut.
Body leasing IT - jak to robimy w ImpiCode
Proces
- Podpisujemy wygodną umowę ramową, która pozwala na składanie zamówień na programistów.
- Klient określa wielkość zapotrzebowania i czas objęty zamówieniem (przy dłuższych terminach rabaty).
- Przydzielamy kierownika projektu, który pierwszy wchodzi w temat i koordynuje prace.
- Kierownik dobiera zespół w zależności od bieżących potrzeb.
- W trakcie prac możemy elastycznie dopasowywać skład i wielkość zespołu, aby odpowiadać na zmienne potrzeby.
- Na koniec każdego miesiąca przesyłamy szczegółowe rozliczenie godzinowe ze zrealizowanych prac.
Wycena
Wycena zależy od takich czynników jak:
- rodzaj projektu,
- wachlarz użytych technologii,
- czas realizacji zamówienia,
- rozmiar zapotrzebowania.
Organizacja pracy
Umowa i zamówienia
Na początku podpisujemy z Klientem umowę ramową regulującą zasady współpracy. Wśród nich najważniejsza jest możliwość składania zamówień na prace programistyczne. Klient zyskuje możliwość składania zarówno zamówień długoterminowych jak i zleceń jednorazowych na pakiety godzin pracy programisty.
W przypadku zamówień długoterminowych zdarzają się sytuacje, że Klient nie wykorzysta w danym miesiącu wszystkich godzin. Bywa także tak, że prosi nas, by w danym okresie wrzucić w projekt większe siły. W takich przypadkach oczywiście staramy się wyjść naprzeciw jego potrzebom. Różnice między godzinami zamówionymi na dany okres, a godzinami wykorzystanymi rozliczamy w kolejnym okresie.
Przykłady zamówień
Klient może zamówić u nas 160h czy 320h pracy programistów. W niektórych przypadkach możliwe jest także zamówienie mniejszej liczby godzin, np. 80h. Zamówienia nie muszą być jednorazowe, ale mogą obejmować wiele kolejnych miesięcy, np. 320h pracy programistów na miesiąc przez okres jednego roku.
Szacowania
W bieżącej pracy posługujemy się szacowaniami pracochłonności całego projektu oraz poszczególnych zadań. Oczywiście w nowym projekcie oszacowania mogą być bardzo niedokładne, ale wraz z poznawaniem projektu i oczekiwań Klienta nabierają precyzji. Szacowaniami posługujemy się nie tylko dla Klienta, ale również na własny użytek, aby lepiej kontrolować postępy realizacji.
Timesheet
Na zakończenie każdego miesiąca przesyłamy Klientowi szczegółowe zestawienie prac. Timesheet obejmuje dokładny czas realizacji poszczególnych czynności przez wszystkich członków zespołu projektowego, z podziałem na poszczególne zadania oraz krótkim opisem zakresu pracy. Dokładnie tym samym zestawieniem prac posługujemy się do rozliczeń z naszymi programistami.
Jak wchodzimy w nowe projekty?
Onboarding
W procesie onboardingu uczestniczy na ogół tylko lead developer, w niektórych przypadkach wspomagany przez dodatkowego programistę. Lead developer jest zawsze pierwszą osobą w projekcie, dlatego na to stanowisko wybieramy najlepszych koderów, posiadających największe doświadczenie. Jednym z zadań lead developera jest rozpoznanie wymagań technicznych, infrastrukturalnych i organizacyjnych projektu. Uczestniczy on również w onboardingu, podczas którego nie tylko zapoznaje się z projektem, lecz również uzyskuje dostępy, zakłada konta czy nawiązuje kontakt z kluczowymi pracownikami Klienta.
Onboarding samego lead developera jest zdecydowanie łatwiejszy niż wprowadzanie w projekt całego zespołu od razu. Realizowany w ten sposób proces onboardingu przebiega bardzo efektywnie i nie sprawia dużego kłopotu naszym Klientom. Klient wprowadza w projekt tylko lead developera, lead developer wprowadza resztę zespołu.
Środowisko projektowe
Jeśli Klient ma własną infrastrukturę do zarządzania projektem informatycznym, nasz zespół może z niej skorzystać. Jeśli nie ma takiej możliwości, samodzielnie organizujemy środowisko projektowe lub korzystamy z naszej infrastruktury.
Standardowo stosujemy następujące rozwiązania:
- Bitbucket - platforma do zarządzania kodem,
- Jira - narzędzie do organizacji pracy i zadań,
- Slack - platforma komunikacyjna.
Natomiast u części naszych Klientów korzystamy między innymi z:
- GitHub - system do kontrolowania wersji kodu,
- Redmine - narzędzie do zarządzania zadaniami,
- Teams - platforma do komunikacji.
Rola lead developera
Lead developer jest kierownikiem projektu i osobą kontaktową w naszym zespole. Dodatkowo odpowiada za organizację pracy i dba o to, żeby wszystkie zadania zostały prawidłowo zrealizowane w ustalonym terminie. Można powiedzieć, że jest project managerem, ale sam zajmuje się również pracą programistyczną, w tym szczególnie ważnymi lub trudnymi elementami projektu.
Zadaniem lead developera jest więc nie tylko wykonywanie pracy pod dyktando Klienta, ale również samodzielne i proaktywne rozwiązywanie problemów. A jeśli zajdzie taka potrzeba, to również wskazywanie Klientowi nowych możliwości czy sugerowanie innych rozwiązań technicznych i biznesowych.
Zadania lead developera
komunikacyjne:
- organizowanie spotkań z Klientem,
- sprawne wchodzenie w nowe projekty,
- ustalanie z Klientem krótko- i długofalowych celów projektowych,
- odbieranie telefonów i odpisywanie na e-maile Klienta,
- komunikowanie Klientowi ewentualnych trudności lub zaistniałych w projekcie alternatyw technicznych.
projektowe:
- przekazywanie wiedzy projektowej członkom zespołu,
- podejmowanie kluczowych decyzji technicznych,
- osobista realizacja najtrudniejszych części projektu,
- delegowanie bardziej rutynowych zadań i zarządzanie zespołem,
- nadzór nad pracami, w tym code review.
Komunikacja z Klientem
Spotkania
W zależności od projektu, oczekiwań Klienta i etapu prac, spotkania projektowe (przegląd sprintu) organizujemy raz na tydzień lub raz na dwa tygodnie. Takie zebrania (online lub na żywo) trwają zwykle około godziny, a ich celem jest koordynacja prac z Klientem, podsumowanie postępów oraz ustalenie zadań do wykonania w najbliższym czasie. W niektórych projektach organizujemy również codzienne krótkie spotkania (daily), trwające zwykle kilka do kilkunastu minut, skupiające się wokół bieżących zadań i problemów.
Komunikacja
Poza formalnym rytmem spotkań nasz lead developer odbiera telefony i szybko odpisuje na wszystkie e-maile. Klient może zadzwonić lub napisać do kierownika projektu z każdym pytaniem dotyczącym spraw technicznych, organizacyjnych czy też nowego pomysłu na kolejny projekt.
Organizacja prac zespołu programistycznego
Jak wspomnieliśmy, lead developer odpowiada za organizację pracy naszego zespołu. Kładziemy przy tym nacisk na kilka kluczowych elementów.
Elastyczność
Lead developer dobiera programistów na początku projektu i w razie potrzeby może ich wymienić w trakcie trwania projektu. Dzieje się tak na przykład gdy projekt dochodzi do etapu, gdy przydaje się inny zestaw technologii lub nowy zakres umiejętności. Poszczególni specjaliści mogą być zaangażowani w projekt w pełnym wymiarze godzinowym lub tylko na część etatu. Dzięki temu bardzo elastycznie możemy reorganizować zespół, by dopasować się do dynamiki projektu.
Skalowalność
Jeśli tylko zachodzi taka potrzeba, lead developer dobiera do zespołu dodatkowych programistów, których zadaniem jest wsparcie dotychczasowego zespołu i pomoc w wykonaniu najpilniejszych zadań. Dzieje się tak również, gdy Klient składa zamówienie na większą liczbę godzin pracy programistów. Wtedy do projektu również dołączają dodatkowi koderzy.
Ciągłość prac
W projekcie zawsze uczestniczą co najmniej dwie osoby (lead developer i programista), aby w razie niedyspozycyjności lub urlopu jednego członka zespołu została zawsze przynajmniej jedna osoba, która dobrze zna projekt i rozumie potrzeby Klienta. Dzięki temu zachowujemy ciągłość prac i zmniejszamy ryzyko opóźnień.
Koordynacja
Często dołączamy w projekcie do już istniejącego zespołu Klienta. W takim przypadku rola naszego lead developera jest ustalana w zależności od potrzeb. Może on być traktowany jak zwykły członek zespołu, doradca techniczno-projektowy czy koordynator podzespołu. Zdarza się również, że nasi lead developerzy przejmują z czasem koordynację całego zespołu Klienta.