Istnieją dwie opcje, pierwsza klient prosi o soft i nie interesuje go konkretna technologia/zbiór bibliotek jaki zostanie wykorzystany do wytworzenia oprogramowania. Tutaj mamy dowolność. Wybieramy to co chcemy i jak chcemy i nie musimy się od razy na tym znać – możemy traktować projekt jako środowisko doświadczalne dla pewnych narzędzi i bibliotek, które zawsze chcieliśmy wykorzystać. W tym przypadku nie musimy wiedzieć dokładnie czy istnieje produkt XYZ, który spełni nasze oczekiwania, dowiemy się w trakcie zabawy. Jest to praktyka dość popularna w projektach, które są nam zlecane. Czasami chcemy coś szybko zrobić i korzystamy już z bibliotek, które mamy opanowane, innym razem, robimy sobie piaskownicę i się bawimy. Czasami się zdarzy, że taki klient sobie konkretnie zażyczy jakiś bibliotek – wtedy od nas zależy czy przyjmiemy projekt czy też nie.

O takiej zabawie z technologiami, pisał już Procent i u mnie się niebawem pojawi post w ten deseń.

Jednak nie o takim przypadku tutaj chciałem mówić. Istnieje drugi przypadek, kiedy to robiony jest przetarg, w którym wymienione są pewne technologie w którym ma ona być wykonany. Teraz jeżeli jesteście firmą biorącą udział w takim przetargu, to znajcie się na produkcie, którego projekt dotyczy jak i powiązanych produktach (przeważnie w przetargach prośba jest o podanie projektów wykonanych w danej technologii oraz osób, które będą się potem zajmować developmentem, przynajmniej te kluczowe osoby, którymi warto się chwalić). Nie ma nic gorszego niż branie na barki projektu a potem granie głupa.

Ostatnie 2-3 tygodnie w pracy spływają mi w większości na różnych spotkaniach na których dowiaduje się różnych dziwacznych rzeczy, które do szczęścia i do wykonania projektu nie są mi potrzebne – na przykład przepustowość sieci lokalnej w godzinach szczytu, kiedy mój projekt ma dotyczyć ekstranetu i nikt z sieci lokalnej ma do niego nie mieć dostępu. Przez to pracuje około 10-11h gdyż prawie całe 7h pracy upływa mi na spotkaniach a robota dalej musi być wykonana – więc praca po godzinach :) każdy z nas to chyba zna ;)

110223.strip.print

O tym na co marnuje napiszę kiedy indziej, skoncentrujmy się na tym głównej myśli postu.

Jedno ze spotkań na których byłem i które trwało 4h (… bez komentarza), było spotkanie z architektami i dev leadami dwóch różnych firm (nazwijmy je Zzz i Aaa), na którym chcieliśmy ustalić pewne zasady współpracowania, oraz może jak się uda wspólne biblioteki itp. tak by zespół którym kieruje w firmie, potem był wstanie płynnie przejąć development nad tymi produktami.

Podczas rozmowy więc pytałem się o różne aspekty procesu wytwarzania oprogramowania, zapewnienia jakości i decyzji, które zostały przez nich podjęte. To co było super irytujące i wkurzające to odpowiedzi firmy Zzz „wrócę do Ciebie z odpowiedzią”, bałem się w którymś momencie zadać pytanie by znów tej odpowiedzi nie usłyszeć. Z kim mam do czynienia, z pionkiem który został wepchany na spotkanie za które dostaje 200 euro za godzinę czy z kompetentną osobą?

Pominę prawie cały przebieg rozmowy bo bym za dużo przecinków wstawił, to co mnie zmartwiło i spowodowało zapalenie czerwonej lampki w głowie to dopowiedzi, której mi udzielili na dwa pytania. Ze względu na to, że projekty będą potem przejęte przez in-house development team, ważne jest to by istniały testy tak by zespół wiedział, że wprowadzając pewną zmianę nie popsuł istniejącej funkcjonalności. Zacząłem więc się dopytywać o Unit Testing/Integration Testing rozwiązań, które będą tworzone.

Dwie firmy odpowiedziały, że korzystają z tego co VS dostarcza out-of-box. Ok, nie przeszkadza mi to iż będą to MS Test itp. są z nimi problemy ale niektórzy sobie z tym radzą i spoko. Jednak firma Aaa powiedziała mi, że Unit Testing framework dla Silverlight już nie istnieje i od listopada jest to Coded UI testing framework, dostarczony przez MS, więc Unit Testingu nie będzie bo go już nie ma. Tutaj się powstrzymałem przed komentarzami bo publicznie sądzę, że zrobiłbym większą krzywdę osobie niż ją czegoś nauczył (na korzyść osoby działało to, iż ją znałem… ech te znajomości). Po tej odpowiedzi zaświeciło mi się pomarańczowe światło, mówiące czy oni znają wzorzec MVVM? Coś mi jednak mówiło, że lepiej tego pytania na głos nie zadawać.

Druga firma, Zzz, która tworzy rozwiązanie w oparciu o SharePointa (trochę źle trafili, oj troszkę źle :)), na pytanie o UT powiedzieli MS Test, więc sprytnie skonstruowałem kolejne pytanie, z jakiego mocking framework będą korzystać. Pytanie proste… banalnie proste, w przypadku SharePointa, prostszego nie ma. Odpowiedź jednak mnie zbiła z tropu. Co to jest mocking framework? Która padła zarówno od firmy Zzz i Aaa. To zacząłem im to tłumaczyć i powiedziałem, że w naszym projekcie my będziemy korzystać z Moq i może będą nim zainteresowani – podły byłem :D, na to fima Zzz powiedział, aa tak mocking no tak, dobra nie ma problemu, zawsze korzystaliśmy z tego wbudowanego w VS, ale możemy z Moq skorzystać.

Tak jak firmie Aaa darowałem, tak firmie Zzz nie :) a jak chcecie z mockować obiekt SPWeb? i o jakim mocking framework wbudowanym w VS mówicie?

Spotkanie to zmarnowało 4h z mojego życia, i jeszcze pokazało mi, że firmy, które wygrały przetarg nie wiedzą nic o technologii (w kontekście nie samej czystej technologii ale wszystkiego co jest z nią powiązane) w której będą tworzyć dane rozwiązanie. Albo, dostałem na 4h dwa baaardzo drogie pionki, których zadaniem było być i grać najlepiej jak potrafią.

Podsumowanie

Nie okradajcie swojego klienta! Nie marnujcie jego czasu! Nie wiecie nic o produkcie? To się nauczcie. Ma być spotkanie z dev leadami, to ma być to spotkanie z kompetentnymi osobami a nie z kimś kto nie wie co mówi i o czym on mówi.

Pewnie jakbym zaczął spotkanie od końca to bym je zakończył po 15 minutach, niestety, pewne rzeczy miałem narzucone przez szefostwo i musiałem poruszyć kwestie organizacyjne. Smutno mi jednak było pod koniec kiedy zorientowałem się, iż ludzi nie znają się na tym co sprzedają i raczej prędko się nie poznają.

Jeżeli więc macie coś stworzyć w technologii X, to nie grajcie głupa i nie liczcie na to, że klient jest głupi i się na technologii nie zna. Przejedziecie się na tym i stracie pozytywną opinie a co za tym idzie klientów.

2 KOMENTARZE

  1. Hehe, sztuka mówienia "nie wiem" w pełnym zaniku jak widzę. Na szczęście w przetargach publicznych (bo coś czuję że o takie chodzi a przynajmniej unijne) nie o wytworzenie czegoś chodzi, więc twoje uwagi były nie na miejscu :).

  2. Hehehe klasyka. Pytanie o Unit Testing jest extra na przeprowadznie "interview" kazdy odpowiada ze oczywiscie pisal testy i testowal nastepne wiec w kolei jest a jaki framework uzywales(as) i tutaj juz wiadomo co kto robil.

Comments are closed.