Post jest stricte o SharePoint 2007, nie o 2010, na ten temat nie uważam, że mogę się jeszcze tak wypowiadać.

SharePoint 2007, portal korporacyjny umożliwiający kolaborację pomiędzy pracownikami, uzupełniający lukę w produktach MSowych dla biur. Posiadający takie funkcje naj współdzielenie pliku, obszar roboczy, zadania, taski, raportowanie i jakkolwiek to nazwać przyjemne tworzenie przepływów prac dla pracowników biurowych.

Długaśny wstęp

Wyśmienicie komponuje się z istniejącymi produktami MSowymi takimi jak SQL Server, Active Directory, Office, Reporting Services, Info Path, IE 6, IE 7, IE 8 (po poprawkach mówiących „korzystaj z renderingu IE 7”), Communication Server jak i nawet SCOM, Exchange i Rights Management Server. Wymagający naprawdę minimum wiedzy dotyczącej klikologii dla pracownika biurowego by móc wyklikać prosty formularz, podłączyć go pod przepływ pracy wytworzony w darmowym już narzędziu SharePoint Designer. Baa nawet ten formularz od razu podłączony jest do Excela, narzędzia bazodanowego wielu firm jak i upsa korporacji. W outlooku pracownik może podejrzeć zbliżające się wspólne wydarzenia, stworzyć lub zamknąć task. Zostać poinformowany o nowym elemencie na liście poprzez e-mail czy też RSS. Czego więcej taki pracownik chce, potrzebuje? Wyszukiwanie! Jasne, Search Server i mamy nie tylko wyszukiwanie po elementach na liście ale także nawet po dysku sieciowym! A i administrator może się wyżyć i nadać uprawnienia temu biednemu pracownikowi tylko do jednego elementu na całej farmie. Narzędzie idealnie stworzone dla firm! Instalacja, 500 stron dokumentacji jak to skonfigurować i po kłopocie.

Dobra, trochę all wyolbrzymiłem, wiemy jak jest – nie jest to takie proste, ale co do funkcjonalności raczej chyba każdy się ze mną zgodzi. Produkt pasuje idealnie do biura, spełnia wszystkie podstawowe wymagania – trudno jest spełnić, wszystkie, wszystkie wymagania, ale te które MS wybrał by zaimplementować nie są taką złą intersekcją pomiędzy wszystkie a rozsądne. Oczywiście możey sobie pojęczeć, że coś tam nie działa itp., jednak jeżeli potrzebujemy produkt do biura to możemy skorzystać z „darmowej” wersji w postaci WSSa i mamy mały, odpowiedni portal korporacyjny.

I wszystko było by fajnie i ładnie, gdyby nie Microsoft i jego entuzjastyczna reklama SharePointa jako narzędzia do wszystkiego, spełniającego każdą zachciankę firmy/korporacji. I wszystko było glancuś do póki nie doszło się do problemów z implementacją, nagle się okazuje że to ani takiej liczby użytkowników nie udźwignie, ani takiej liczby dokumentów itp. itd. Mimo wszystko te problemy dawało się obejść, nowy serwer w farmie, osobne miejsce przechowywania dokumentów, produkty firm trzecich do archiwizowania, ok. Wraz całą tą nagonką na reklamę by osiągnąć „target” (bo IMO naczej MS by tak na tego SharePointa nie naciskał gdyby nie było jakiegoś targetu, celu do osiągnięcia za sprzedaną liczbę kopi/liczbę wdrożeń), zaczęły się pojawiać pomysły stworzenia stron Internetowych w oparciu o SharePoint, takich co by były wizualną wizytówką firmy, zaś wewnętrznie ten sam portal wykorzystywany byłby do celów korporacyjnych.

Tutaj na początku zgrzytało, MS bardzo się starał i pomagał partnerom w wytworzeniu takiego projektu, dzięki czemu także zyskał wiedzę co i jak można i nie można zrobić z SharePointem. Rzeczywiście z czasem coraz więcej i to fajnych przykładów takich rozwiązań można było spotkać przeglądając Internet: a to wykorzystanie Microsoft Live Maps (wtedy nie było bing) w celu śledzenia pracowników i platform wiertniczych po huraganie Katrina (i to chyba najlepsze będzie) dla BP :), gdzieś gdzie kangury skaczą powstałą strona informująca o przyrodzie i miejscach do zobaczenia w tym rejonie, jak na przykład takie rozwiązanie, a i także na rodzinnym rynku powstało kilka wdrożeń jak na przykład PGESA.

Portale społecznościowe

Po tych sukcesach nie wiem komu przyszedł do głowy pomysł, dlaczego przyszedł, po co się on pojawił w ogólne jest to dla mnie nie do wyobrażenia: Wykorzystajmy SharePointa 2007 jako platformę dla portali społecznościowych. Dajmy użytkownikom możliwość zakładania swoich kont, wprowadzania wielu komunikatorów, wybrania z którego komunikatora ma być status pokazywany pod Nickiem osoby. Dajmy możliwość tagowania i kategoryzowania całej treści, przenoszenia elementów pomiędzy tagami, na ankietach puśćmy workflow, dajmy stronę z podziękowaniem za wypełnienie ankiety. Dodajmy chat do strony, notyfikacje dla użytkowników, zaawansowane forum z punktacją i modernizacją. Niech użytkownicy mogą komentować wszystko co zechcą. Niech całość będzie jeszcze połączona z Facebookiem, twitterem, naszą klasą, wykopem itp. itd. Aaa i wszystko ma działać od IE 6 przez Operę do Chroma włącznie. No i bym zapomniał, wiki ma zwierać moduł komentarzy.

DOŚĆ! To jest gorsze niż modlitwa „Panie boże chciałbym BMW, z radiem Z, system Y, oknami B?” bo o dziwo, modlitwa może się spełnić.

Czy Ci analitycy kompletnie oszaleli? Czy oni w ogóle wiedzą, co to jest SharePoint??? Może zamiast na kurs to poszli na browar.

Żeby zrozumieć czemu to jest głupim pomysłem należy zrozumieć SharePointa, sposób jego działania, możliwości jego rozszerzania. SharePoint jest produktem, który omyłkowo tak jak Microsoft.Data, LSD i inne produkty MSowe został skierowany na złą grupę docelową.

Analitycy moim zdaniem myślą w ten sposób: jest status komunikatora MS pokazywany w SharePoint, skoro jest ten to da się inny. Skoro istnieje opcja „podłącz workflow” w ankietach to można go podłączyć. Skoro można tworzyć własne pytania i robić skoki w zależności od odpowiedzi to i można dodać stronę z podziękowaniem za wypełnienie ankiety. A skoro można to zrobić to pewnie można także zliczać głosy, ograniczać do pojedynczego wypełniania itp. itd. BZDURA.

Dla przykładu weźmy najczęstszy moduł takich portali, najczęstszy ze względu na to iż ze wszystkich RFP/przetargach w jakich brałem udział 90% posiadała tą funkcjonalność – ankiety.

Mit 1: Workflow na ankietach

Nie da się tego zrobić z ankietami wbudowanymi, brak jest jednego pola w metadanych opisujących ankiety, które na to zezwala. Możemy spędzić dni i miesiące pisząc taki WF, który i tak potem się nam nie uruchomi.

Mit 2: Strona z podziękowaniami

Nie da się tego zrobić, przynajmniej nie bez niezłej ingerencji w bezpośrednie zachowania przycisków dostępnych na ankietach, co powoduje, iż jeżeli chcemy mieć różne ankiety na portalu, mamy przewalone bo przeciążyliśmy globalne przyciski.

Mit 3: Opis pytania

Nie da się i tyle :) nie ma co więcej na ten temat pisać.

Mit 4: Zliczanie głosów/pojedyncza odpowiedź

Na ten temat mógłbym napisać z trzy posty. Ogólnie chodzi o to, że w zależności od tego czy ankieta jest jedno czy wielo stronnicowa, funkcjonalność zadziała lub nie. Ogólnie wielo-stronnicowa ankieta działa jak dokument, posiada opcje check-in i check-out, ukryte dla oczu użytkownika/administratora. Dodatkowo jako jedyna z list (tutaj mogę się mylić bo piszę z pamięci a nie mam jak tego teraz sprawdzić, chodzi o słowo jedyna) nie pokazuje administratorowi nie skończonych ankiet (czyli w tym wupadku wycheckoutowanych)! Zaś Count na elementach zwraca informacje o tym elemencie. Halo, coś jest nie tak? No jasne, że jest. By móc się do tego dobrać programistycznie, trzeba zrobić hacka na bazę danych i odpowiednich polach w odpowiednich elementach zmienić 1 na 0. To by pewnie było proste gdyby nie to, że dochodzą do tego jeszcze 2-3 inne tabele w których też trzeba zrobić „logiczną” zmianę danych gdzie w jednym oznacza to usunięcie rekordów a w drugim aktualizacje statusu. Dodatkowo ankieta jednorazowa, wielo-stronnicowa, raz zapisana a nie zakończona nie otworzy się użytkownikowi ponownie bez bezpośredniego linku, jeżeli dajemy możliwość tylko „odpowiedz” to mamy przechlapane.

Mało tego? Zajmijmy się więc przeglądarkami

Mit 1: działa na wszystkich IE

Taaa, zrobili patcha do SharePointa, z dyrektywą na Compatybility Mode z IE7. Bez patcha zapomnijcie o tym.

Mit 2: Działa na Operze i Chrome

Acha… chyba jak nieźle nakombinujecie w CSSach, podmienicie domyślne kontrolki i nie będziecie aktualizować SharePointa bo a nuż wam na nowo podmieni wasz kodzik (word spell checker podpowiada lodzik… dziwne). Nie twierdzę, że to jest nie możliwe, twierdzę, iż jest to bardziej skomplikowane niż stworzenie nowego designu w CSS. Jeżeli nie będziecie korzystać z kontrolek SharePointa to jesteście na jak najlepszej drodze do sukcesu.

Przypatrzmy się podmianie statusu na inny (My favorite color is blue! No, yellow… !), to znaczy zamiast pokazać informację z communicatora chcemy pokazać informacje z… skype.

Zakończę ten punkt słowami Good Luck. Są obejścia jednak nie dające tego samego efektu co Communicator, i przeważnie wymagające pewnego hardcodingu, jak na przykład to rozwiązanie.

Można jeszcze popatrzeć na funkcjonalności SharePointa jak InfoPath, Reporting Services, inegracja z office w przypadku portali społecznościowych. Czy to w ogóle ma sens? Płacić nisamowite pieniądze za licencje InfoPath tylko po to by dowiedzieć się, że w HTML i AJAX da się zrobić fajniejszy formularz, reporting services? Po co, chcę diagramu mam kontrolki zarówno jQuery jak i .NET. Integracja z Office? A widzielibyście twittera ślącego DOCX zamiast wiadomości? :) albo Facebooka gdzie „proszę dodaj mnie do znajomych” było by 10 wersją dokument Word, w którym nick i link do profilu jest nadpisywany co wersja.

To nie wszystkie wady jakie można wymienić i nie wszystkie problemy na jakie można natrafić przy traktowaniu SharePointa jako platformy społecznościowej. Podałem tylko kilka elementów nie wspominając o ograniczeniach jak liczba dokumentów, wydajne zarządzanie użytkownikami, jak i tak naprawdę koszt całości jako dev, licencje, integracja, administracja plus rozwiązania firm trzecich. Ale epopei nie chcę tworzyć, 4 strony powinny wystarczyć.

Podsumowanie

Kończąc takie porównania i mity, dochodzimy do rozwiązania, które z SharePointem ma tyle wspólnego, co pieniądze klienta wydane na licencje. Większość rzeczy, trzeba będzie stworzyć samodzielnie, momentami ostro ingerując w bezpośrednią strukturę SharePointa, jak i w jego zachowanie. Trzeba będzie przeciążać przyciski, modyfikować kody źródłowe, bawić się reflectorem a do tego tak naprawdę by klient nie płacił za nic, przechowywać to wszystko w mało wydajnych listach. Lub jak to niektórzy robią, umieścić iframe na stronie i załadować aplikację ASP.NET która będzie robiła wszystko to co klient/analityk chce.

Oczywiście przez ostatnie 3 lata powstało wiele produktów w oparciu o SharePoint, które mają za zadanie nam ułatwić pewne implementacje rozwiązań, szkoda tylko, że i one borykają się z takimi problemami jak wydajność czy wsparcie dla wielu języków.

Do SharePointa 2007 trzeba pochodzić z rozsądkiem, wiedzieć co można a czego nie można dotykać. Podejście aktualne analityków jest nie do przyjęcia, a do tego jeszcze robione są przetargi i jak wiadomo cena w przetargu jest prawie zawsze najważniejsza i nagle trafia się klient co daje dosłownie 50% tańszą cenę na takie rozwiązanie. I podejmuje się wytworzenia czegoś takiego. Szczerze mówiąc współczuje, ja się przejechałem raz na IT Core, od tego momentu moja wiedza na temat SharePoint drastycznie wzrosła a poszczególne funkcjonalności nawet nie to, że zostały przeanalizowane, zostały nawet potraktowane reflectorem krok po kroku by dowiedzieć się co i gdzie się zwaliło. Wiem jedno, taki byt jak IT Core w takiej postaci w jakiej była specyfikacja nie miał prawa działać poprawnie. To co ja w swoim kodzie tam wyrabiałem przechodziło ludzkie granicę – synchronizacja kont użytkowników z ASP.NET Membership providera z Exchange za pomocą power shell, serwisów i innych dziwactw tylko po to by dostarczyć funkcjonalność „grupy i konta mailowe dla każdego, kto chce a kto nie chce to niech korzysta z swojego adresu e-mail, ale tak by mógł wysyłać pocztę jako on”. A wiem, że nie ja jedyny tam rzeźbiłem jak się dało by osiągnąć to co było zapisane. Bardzo wielu bardzo dobrych programistów pracowało nad tym serwisem. Wynik jest znany. Większość chyba od tamtej pory SharePointa nie tyka :)

Post ten jest apelem, to wszystkich programistów zajmujących się MOSSem, nie akceptujcie takich wymagań/analiz, nie wchodźcie w taki projekt. Nakierujcie na lepsze, dogodniejsze rozwiązania, które dadzą wam nie tylko frajdę w trakcie pisania, ale i umożliwią dostarczenie produktu klientowi. Jeżeli nie jesteście wstanie przekonać do tego firmy/analityka odwołajcie się do tego postu, lub poproście by się ze mną gość skontaktował. Nie opłaca się marnować dni, tygodni, miesięcy na coś co jak powstanie będzie kaleką do końca życia – czyli pewnie kilku miesięcy. Trzeba IMO zakończyć ten rażący nurt pomysłów na projekty społecznościowe w oparciu o MOSS.

Jeżeli zaś nie zgadzacie się ze mną :) to napiszcie dlaczego, podajcie przykład, pokażcie, że się da.

PS.: Jeżeli ktoś się poczuł urażony tym postem, trudno nie było to moją intencją, proszę o komentarz z informacją dlaczego, może po prostu się, źle zrozumieliśmy.

PS2.: to samo tyczy się portali korporacyjnych – miałem kilka analiz w ręku, które z portalu korporacyjnego robiły portal spełecznościowy… zamiast informacyjno-kolaboracyjny (sic!).

5 KOMENTARZE

  1. Ogolnie sie zgadzam. SP nie jest do wszystkie jak co poniektorzy go reklamuja.

    Co do integracji ze Skypem – to jesli masz zainstalowana wtyczne do IE np, na portalu masz ludzi o takich samych mailach jakie maja w profilu Skypowym to sie to nawet dobrze binduje :)

  2. Zgadza sie, ale mysle ze wynika z faktu, ze czesto decydujacy glos w projekcie ma osoba, ktora widziala prezentacje SharePoint’a i tak sie spodobalo, ze chcialby miec cos takiego, plus kilka napewno bardzo prostych zmian (np innego komunikatora).
    Teraz pracuje nad portalem spolecznosciowym na platformie SharePoint 2010 i jest ciekawie.

Comments are closed.