Dlaczego nie używam poczty elektronicznej do komunikacji w projektach

Wstęp

Od lat spo­ty­kam się w lite­ra­tu­rze z zakre­su zarzą­dza­nia, z kry­ty­ką pocz­ty elek­tro­nicz­nej jako narzę­dziem zarzą­dza­nia czym­kol­wiek (patrz: Sabotaż…2013). Poczta elek­tro­nicz­na (podob­nie jak pakie­ty biu­ro­we w ogó­le) jest typo­wym przy­kła­dem mak­sy­my: uła­twie­nie nie zawsze jest ulep­sze­niem. W klien­cie pocz­ty elek­tro­nicz­nej zarów­no treść jak i spo­sób adre­so­wa­nia (co i do kogo, kopia, itp.) nie pod­le­ga żad­nej stan­da­ry­za­cji ani restryk­cji (pocz­ta elek­tro­nicz­na czę­sto słu­ży do wypro­wa­dza­nia danych z fir­my). Jak dodać do tego fakt, że załącz­ni­ki są nie­wi­docz­ne w narzę­dziach do lokal­ne­go wyszu­ki­wa­nia, że mamy na ser­we­rach fil­try anty­spa­mo­we któ­rych regu­ły nie pod­da­ją się kon­tro­li użyt­kow­ni­ków, że nie panu­je­my nad tym co inni mają w swo­ich skrzyn­kach pocz­to­wych, to mamy obraz abso­lut­ne­go bra­ku pano­wa­nia nad infor­ma­cją w orga­ni­za­cji i chaosu. 

Swego cza­su dr Paweł Litwiński, praw­nik, napi­sał kry­tycz­ny arty­kuł o zasto­so­wa­niu pocz­ty elek­tro­nicz­nej przez adwo­ka­tów. Jego tekst był sze­ro­ko cyto­wa­ny przez wie­lu auto­rów, tu jeden z takich arty­ku­łów. Wybrałem kil­ka waż­nych kwestii:

Praktyka poka­zu­je, że wie­lu adwo­ka­tów i rad­ców praw­nych korzy­sta z dar­mo­wych skrzy­nek, tak­że tych wprost zastrze­ga­ją­cych sobie pra­wo do ska­no­wa­nia korespondencji. […]

Konflikt pomię­dzy obo­wiąz­kiem ochro­ny infor­ma­cji a warun­ka­mi narzu­co­ny­mi w regu­la­mi­nach dar­mo­wych usług to jed­no. Czym innym są kwe­stie bezpieczeństwa.[…]

? Na logi­kę, lepiej żeby o mate­ria­łach obję­tych tajem­ni­cą adwo­kac­ką nie dowie­dział się żaden dostaw­ca, ale z dru­giej stro­ny, rzad­ko któ­rej kan­ce­la­rii praw­nej uda się samo­dziel­nie skon­fi­gu­ro­wać ser­wer pocz­to­wy tak, aby był rów­nie bez­piecz­ny i nie­awa­ryj­ny, jak infra­struk­tu­ra np. Gmaila. Oczywiście, moż­na zle­cić to zewnętrz­nej pol­skiej fir­mie, ale wte­dy mamy ten sam pro­blem z zaufa­niem, co w przy­pad­ku korzy­sta­nia z ser­we­rów np. Google ? zwra­ca uwa­gę Piotr Konieczny, eks­pert ds. cyber­bez­pie­czeń­stwa z ser­wi­su Niebezpiecznik​.pl. ? Abstrahując więc od aspek­tów praw­nych, roz­pa­tru­jąc pro­blem wyłącz­nie na płasz­czyź­nie bez­pie­czeń­stwa, tj. ochro­ny skrzyn­ki przed ata­ka­mi, moim zda­niem praw­ni­kom nie­dy­spo­nu­ją­cym budże­tem na bez­pie­czeń­stwo takim, jaki posia­da­ją pro­fe­sjo­nal­ni dostaw­cy usług pocz­to­wych, lepiej i pro­ściej było­by wyko­rzy­stać infra­struk­tu­rę np. Google?a ? doda­je. Jego zda­niem praw­ni­cy powin­ni przede wszyst­kim roz­wa­żyć moż­li­wość szy­fro­wa­nia kore­spon­den­cji. Wtedy zarów­no dar­mo­wy, jak i płat­ny dostaw­ca usług nie będzie w sta­nie jej podej­rzeć. Szyfrowanie jest bez wąt­pie­nia naj­bez­piecz­niej­szym spo­so­bem, ale wią­że się z koniecz­no­ścią dostar­cze­nia klu­cza czy hasła odbior­cy, a ten nie zawsze godzi się na takie nie­do­god­no­ści. Co wię­cej, klien­ci kan­ce­la­rii sami czę­sto korzy­sta­ją z dar­mo­wych skrzy­nek. ? I nie rozu­mie­ją, dla­cze­go pouf­ne infor­ma­cje nie powin­ny być na nie prze­sy­ła­ne. Moim obo­wiąz­kiem jest wów­czas poin­for­mo­wać takie­go klien­ta o zagro­że­niach z tym zwią­za­nych. Oczywiście jeśli mimo tego będzie chciał uży­wać takiej skrzyn­ki do kore­spon­den­cji ze mną, to nie mogę mu tego zabro­nić ? zwra­ca uwa­gę dr Paweł Litwiński. ? Z dru­giej stro­ny są rów­nież klien­ci, któ­rzy wręcz wyma­ga­ją, by w kore­spon­den­cji z nimi uży­wać jedy­nie skrzy­nek zało­żo­nych na ich ser­we­rach. Tak restryk­cyj­ną mają poli­ty­kę bez­pie­czeń­stwa. Chcąc dla nich pra­co­wać, adwo­kat czy rad­ca musi przy­stać na te warun­ki ? doda­je ekspert.

(patrz: Darmowe e‑maile nie dla praw­ni­ków. Dostawca pocz­ty ska­nu­je jej zawar­tość – Forsal​.pl)

W 2013 roku pisałem:

W więk­szo­ści przy­pad­ków treść umiesz­cza­na jest w tre­ści ema­il??a lub w załącz­ni­ku (załą­czo­ne doku­men­ty). Jeżeli treść ema­ila nie jest szy­fro­wa­na (a gene­ral­nie nie jest, o ile sami o to nie zadba­my, co jed­nak, jak poka­zu­je cyto­wa­ny Niebezpiecznik, nie jest try­wial­ne) nasza kore­spon­den­cja, prze­cho­dząc przez publicz­ne łącza sie­ci Internet, jest jaw­na i łatwa do pod­słu­chi­wa­nia. Jak uczy­nić naszą kore­spon­den­cję (bar­dziej) niejawną?

(Patrz: Bezpieczny jak ema­il czy­li wca­le – Jarosław Żeliński IT-Consulting – Systemy Informacyjne)

Przypomnę klu­czo­we tezy powyż­sze­go arty­ku­łu. Generalnie waż­nych doku­men­tów nie nale­ży prze­sy­łać jako załącz­ni­ki z dwóch powo­dów: nie wie­my co sie z nimi dzie­je po dro­dze, nie wie­my czy zosta­ły dostar­czo­ne, i kie­dy, gdyż bar­dzo wie­lu użyt­kow­ni­ków ema­il ma wyłą­czo­ne auto­ma­tycz­ne ode­sła­nie potwier­dze­nia w swo­jej poczcie, co skut­ku­je tym, że po pro­stu jest to nie­wia­ry­god­na for­ma potwier­dza­nia. Poniżej sche­mat poka­zu­ją­cy dro­gę pocz­ty email: 

Droga pocz­ty elektronicznej.

Środkowa część (Internet) to tak­że poten­cjal­ne kolej­ne pośred­ni­czą­ce ser­we­ry, nie wie­my co sie na nich dzie­je. Tak więc dwie klu­czo­we wady ema­il to poten­cjal­ne ska­no­wa­nie tre­ści po dro­dze oraz brak kon­tro­li nad dorę­cze­niem. Czy moż­na ina­czej? Owszem: do prze­ka­zy­wa­nia doku­men­tów moż­na użyć repo­zy­to­rium (ser­we­ra pli­ków) z kon­tro­lo­wa­nym dostę­pem. Poniżej sche­mat blo­ko­wy archi­tek­tu­ry nie­ma­ją­cej ww. wad prze­sy­ła­nia doku­men­tów mailem:

Dokumenty prze­ka­zy­wa­ne za pośred­nic­twem repozytorium

Dokumenty w dro­dze” nie opusz­cza­ją repo­zy­to­rium: z nasze­go kom­pu­te­ra ładu­je­my je na ser­wer wska­zu­jąc ewen­tu­al­nie okre­ślo­ne­go adre­sa­ta (lub robi to mecha­nizm obsłu­gu­ją­cy wymia­nę tre­ści pomię­dzy uczest­ni­ka­mi), okre­ślo­na oso­ba dosta­je mailem infor­ma­cje, że jest dla niej doku­ment, żeby go pobrać musi się zalo­go­wać do repo­zy­to­rium. W efek­cie treść (plik) nie jest nigdzie nara­żo­na na ska­no­wa­nie, podej­rze­nie go itp. Tu ema­il słu­ży wyłącz­nie do moni­to­wa­nia fak­tu, że jest doku­ment do nas adre­so­wa­ny i że moż­na do pobrać, co zosta­nie odnotowane.

Mając nawet pro­ste, dostęp­ne przez inter­net, repo­zy­to­rium, moż­na umie­ścić tam dowol­ny plik i mailem poin­for­mo­wać adre­sa­ta (wcze­śniej zakła­da­my mu tam kon­to), że powi­nien pobrać plik. Serwer reje­stru­je zarów­no moment zała­do­wa­nia pli­ku jak i jego pobra­nia, co jest gwa­ran­to­wa­nym zna­kiem cza­su nada­nia i dorę­cze­nia. Minus takie­go roz­wią­za­nia to ręcz­na obsłu­ga całe­go pro­ce­su, plus to pano­wa­nie nad wszyst­kim i bezpieczeństwo.

Sprawdzonym, od daw­na, na ryn­ku pomy­słem jest sys­tem work­flow z udo­stęp­nia­nym repo­zy­to­rium, auto­ma­ty­zu­ją­cy cały ten proces: 

Architektura sys­te­mu wymia­ny danych z Repozytorium.

Uogólniając moż­na go przed­sta­wić jako ser­wer usług:

System work­flow ste­ro­wa­ny regułami

System dorę­czeń to tak napraw­dę funk­cjo­nal­ność apli­ka­cji typu work­flow zorien­to­wa­ne­go na zada­nia (task mana­ger), mają­cej moż­li­wość udo­stęp­nie­nia jej kon­tra­hen­tom. Funkcjonalność taką ma wie­le sys­te­mów CRM, sys­te­mów help­desk, wie­le repo­zy­to­riów pozwa­la na skon­fi­gu­ro­wa­nie sub­skryp­cji zda­rzeń powią­za­nych z doku­men­ta­mi. Zbudowanie takie­go sys­te­mu opar­te­go na regu­łach, zamiast na macier­zach praw dostę­pu do doku­men­tów, zna­ko­mi­cie uprasz­cza całość i dodat­ko­wo pod­no­si bez­pie­czeń­stwo (bar­dzo uła­twia wdra­ża­nie RODO) . Ciekawą funk­cjo­nal­no­ścią jest moż­li­wość blo­ko­wa­nia moż­li­wo­ści pobra­nia doku­men­tu na lokal­ny dysk, dozwo­lo­ne jest jedy­nie prze­glą­da­nie tre­ści w prze­wi­ja­nym oknie (ofe­ru­ją to nie­któ­re tego typu systemy).

Systemy tego typu są tak­że wdra­ża­ne jako zamien­nik pocz­ty elek­tro­nicz­nej wewnątrz orga­ni­za­cji. Tam gdzie pod­sta­wo­wym wewnętrz­nym sys­te­mem komu­ni­ka­cji jest pocz­ta elek­tro­nicz­na pro­ble­mem są giną­ce doku­men­ty oraz brak dostę­pu do doku­men­tów (skrzy­nek) osób nie­do­stęp­nych, będą­cych poza fir­mą (chro­ba, dele­ga­cja itp.). Generalnie pocz­ta jako skład doku­men­tów” ma tę pod­sta­wo­wą wadę, że doku­men­ty są roz­pro­szo­ne i zarza­dza­nie nimi w jed­no­li­ty spo­sób jest nie­moż­li­we. Stosowanie współ­dzie­lo­nych dys­ków nie roz­wią­zu­je cał­ko­wi­cie pro­ble­mu, bo po pierw­sze nie da się budo­wać reguł dostę­pu, po dru­gie wymia­na doku­men­tów z oso­ba­mi spo­za fir­my jest bar­dzo trud­na (np. wyma­ga uru­cho­me­nia VPN co jest trud­ne, wyma­ga inge­ren­cji w cudzy kom­pu­ter, i coraz czę­ściej nie jest to moż­li­we w wie­lu firmach).

Tak więc pocz­ta elek­tro­nicz­na, jako swo­bod­na komu­ni­ka­cja mię­dzy ludź­mi owszem, jest przy­dat­na. Jednak jako narzę­dzie do zarzą­dza­nia komu­ni­ka­cją, prze­pły­wem tre­ści, doku­men­tów ich wydań i dorę­czeń, jest bar­dzo zawod­na. A war­to wie­dzieć, że praw­na ochro­na know-how w UE, czy­li w Polsce tak­że, to przede wszyst­kim obo­wią­zek ochro­ny tre­ści przez pod­miot chro­nią­cy (udo­stęp­nia­ją­cy) takie dane. Dlatego dość kurio­zal­nie wyglą­da każ­da fir­ma, któ­ra wysy­ła­jąc mailem umo­wę o pouf­no­ści (NDA) wysy­ła potem tak­że mailem te pouf­ne” dokumenty…

Na zakończenie

Rozwiązań, reali­zu­ją­cych opi­sa­ne wyżej funk­cje, nie bra­ku­je. Główną blo­ka­dą ich wdra­ża­nia jest przy­zwy­cza­je­nie do swo­bo­dy. Jednak pocz­ta elek­tro­nicz­na jest kla­sycz­nym przy­kła­dem tego, że uła­twie­nie nie zawsze jest ulep­sze­niem. O wdra­ża­niu sys­te­mów work­flow, panu­ją­cych nad komu­ni­ka­cją i jej pouf­no­ścią, mówi się podob­nie jak o sys­te­mach kopii zapa­so­wych: fir­my dzie­lą się na te, któ­re wdro­ży­ły sku­tecz­ny work­flow i na te któ­re wdrożą.

Kilka przy­kła­dów (nie ofe­ru­ję tych sys­te­mów, to nie są reko­men­da­cje a przykłady):

  • Biuro księ­go­we, któ­re mnie obsłu­gu­je, ode­szło od pro­ste­go sys­te­mu FK i komu­ni­ka­cji mailo­wej (prze­ka­zy­wa­nie doku­men­tów kosz­to­wych, wysy­ła­nie klien­tom dekla­ra­cji podat­ko­wych, rapor­tów itp.), obec­nie korzy­sta z podat​ki​po​dat​ki​.pl.
  • Zaczynałem jak wie­lu od pocz­ty elek­tro­nicz­nej, po kil­ku przy­go­dach z doku­men­ta­mi w pro­jek­tach (kto, co, kie­dy i komu) szyb­ko wdro­ży­łem dar­mo­wy, potem sup­por­to­wa­ny osTicket (na począ­tek bar­dzo dobry i łatwy we wdrożeniu). 
  • Z uwa­gi na spe­cy­fi­kę mojej pra­cy (pra­ca pole­ga­ją­ca na zbie­ra­niu danych i two­rze­niu rapor­tów z ana­liz, ich recen­zo­wa­nie przez klien­tów) uży­wam obec­nie do komu­ni­ka­cji bar­dziej zaawan­so­wa­ne­go opro­gra­mo­wa­nia PostMania.
  • U wie­lu klien­tów spo­ty­kam, popu­lar­ny w ser­wi­sach i fir­mach IT, Mantis.
  • Do zarzą­dza­nia pro­ce­sem nego­cjo­wa­nia i pod­pi­sy­wa­nia umów, wie­le firm i ich praw­ni­ków uży­wa opro­gra­mo­wa­nia Pergamin.
  • No i powszech­ny, z uwa­gi na pra­wo, ePUAP.

Polecam roz­wa­że­nie rezy­gna­cji z pocz­ty elek­tro­nicz­nej do prze­ka­zy­wa­nia doku­men­tów pro­jek­to­wych, nie tyl­ko z uwa­gi na ich bez­pie­czeń­stwo ale głów­nie z uwa­gi na zarzą­dza­nie nimi i kon­tro­le w całym cyklu życia dokumentu. 

Źródła

Paschke, A., & Kozlenkov, A. (2008). A Rule-based Middleware for Business Process Execution. 13.

Dokumenty czy niedokumenty.… czyli zarządzanie informacją i jej standaryzacja

Nie raz tu już pisa­łem, że ana­li­zy i pro­jek­ty zwią­za­ne bez­po­śred­nio z wyma­ga­nia­mi na opro­gra­mo­wa­nie to tyl­ko” ok. 3/4 moich pro­jek­tów. Jednak nawet, jeże­li pro­jekt nie jest nazwa­ny” infor­ma­tycz­nym, to zawsze jest infor­ma­cyj­ny” w rozu­mie­niu zarzą­dza­nia infor­ma­cją (tak­że zarzą­dza­nie wie­dzą). Tym razem kil­ka słów na temat doku­men­tów. Stanowią one pod­sta­wo­wą jed­nost­kę infor­ma­cji (i danych) w każ­dym sys­te­mie biz­ne­so­wym. Są tak­że źró­dłem danych dla hur­tow­ni danych.

Wstęp

Wiele pro­jek­tów zwią­za­nych z doku­men­ta­mi jest spro­wa­dza­nych do problemu:

jakie mamy doku­men­ty i co z nimi robimy?”

Zaniedbuje się bar­dzo waż­ny ele­ment: odpo­wiedź na pytanie:

czy nasze obec­ne doku­men­ty, ich ilość i treść, są właściwe?”

Otóż prak­ty­ka poka­zu­je, że dość czę­sto pro­ble­mem są doku­men­ty opra­co­wa­ne kie­dyś tam”. Inicjuje się pro­jekt z róż­ny­mi wyma­ga­nia­mi ale niko­mu nie przy­cho­dzi do gło­wy by zasta­no­wić się nad tym czy obec­ne doku­men­ty, w ich obec­nej posta­ci, są dobrym pomy­słem i powin­ny takie pozostać.

Czy doku­men­ty są nie­zmie­nial­nym bytem? Nie, nie są.

Każda orga­ni­za­cja obra­ca skoń­czo­ną licz­bą doku­men­tów, są to róż­ne­go rodza­ju for­mu­la­rze, w naj­ogól­niej­szym przy­pad­ku doku­men­tem jest po pro­stu każ­da treść, tak­że zwy­kła pro­za” np. notat­ka. Warto jed­nak zwró­cić uwa­gę na to, że nawet ona ma pew­ną struk­tu­rę: np. auto­ra, adre­sa­ta, temat, datę i treść. Dokumenty to okre­ślo­na kon­kret­na treść utrwa­lo­na z okre­ślo­ne­go powo­du (w prze­ciw­nym wypad­ku doku­ment nie by powstał). Osiem lat temu opi­sy­wa­łem kwe­stie róż­ni­cy mię­dzy doku­men­tem, wie­dzą, infor­ma­cją a danymi:

Czy baza danych to wie­dza?[?] Model jaw­nie poka­zu­je, że bez­po­śred­ni zwią­zek z Bazą Danych mają Dane. Dalej już są wyłącz­nie nie­ma­te­rial­ne poję­cia czym więc jest Zarządzanie Wiedzą (mil­czą­co zakła­dam, że zarzą­dzać moż­na czymś mate­rial­nym)? Jest to ?prze­cho­wy­wa­nie danych jed­no­znacz­nie zro­zu­mia­łych, opi­su­ją­cych okre­ślo­ne i ogra­ni­czo­ne licz­bą fak­ty inter­pre­to­wa­ne jako poj­mo­wal­na przez adre­sa­ta infor­ma­cja?. (Źródło: Potrzeby infor­ma­cyj­ne fir­my ? Zarządzanie wie­dzą | Jarosław Żeliński IT-Consulting)

Dzisiaj co nie­co o tym, dla­cze­go od cza­su do cza­su war­to się pochy­lić nad wzo­ra­mi doku­men­tów i czy cza­sem nie zmie­nić nie­co podej­ścia do nich.

Dokumenty w organizacji

Swego cza­su u jed­ne­go z moich klien­tów odkry­łem” cie­ka­wy doku­ment. Była to fak­tu­ra z doda­nym zesta­wem danych odpo­wia­da­ją­cym doku­men­tom WZ oraz ana­lo­gicz­nym zesta­wie­niem doty­czą­cym opa­ko­wań zwrot­nych. Ten super doku­ment był pomy­słem z przed wie­lu lat oso­by odpo­wie­dzial­nej za wyda­wa­nie i zarzą­dza­nie opa­ko­wa­nia­mi zwrot­ny­mi w maga­zy­nie. Uzasadnienie brzmia­ło: na jed­nym doku­men­cie będą wszyst­kie infor­ma­cje zwią­za­ne z kon­kret­ną sprze­da­żą i dosta­wą. Brzmi ład­nie jed­nak: prak­tycz­nie każ­dy kto miał z tym doku­men­tem do czy­nie­nia, w toku obsłu­gi zamó­wie­nia, dosta­wał nad­mia­ro­we dane, nie raz nie­jaw­ne (nie­któ­re) ceny, szcze­gó­ły zawar­to­ści paczek, war­tość towa­ru (po co ta wie­dza kie­row­com), ilo­ści i sal­da (tak) opa­ko­wań zwrot­nych (jak się oka­za­ło doku­ment nie raz poma­gał w nad­uży­ciach, nie­któ­rzy pra­cow­ni­cy zaś zama­zy­wa­li cza­sa­mi część danych prze­ka­zu­jąc doku­ment dalej, by ich nie ujaw­niać). Ale naj­więk­szym pro­ble­mem było to, że ta oso­ba uczy­ni­ła z tego wzo­ru doku­men­tu wyma­ga­nie wobec opro­gra­mo­wa­nia ERP. Jak się nie trud­no domy­śleć, żaden ryn­ko­wy sys­tem nie ma takie­go doku­men­tu stan­dar­do­wo, dostaw­ca ERP uznał to wyma­ga­nie bez zastrze­żeń, co przy­czy­ni­ło się do wie­lu mody­fi­ka­cji opro­gra­mo­wa­nia tak­że w innych miej­scach, znacz­ne­go wzro­stu budże­tu (współ­dzie­lo­na baza danych pro­pa­gu­je zmia­ny prak­tycz­nie na całą apli­ka­cję). Nie będę tu opi­sy­wał dal­szych losów tego wzo­ru doku­men­tu bo celem moim było jedy­nie poka­za­nie pro­ble­mu na real­nym przykładzie.

Każdy pro­jekt, czy to wdro­że­nie nowych zasad zarzą­dza­nia czy nowe­go opro­gra­mo­wa­nia, zwią­za­ny z zarzą­dza­niem orga­ni­za­cją, to (powi­nien być) tak­że co naj­mniej prze­gląd doku­men­tów i ich obie­gu. Kluczowym ele­men­tem tego prze­glą­du powin­na być ana­li­za tre­ści tych doku­men­tów, ich opty­mal­ność, nie tyl­ko obie­gu ale tak­że tre­ści i jej struk­tu­ry. Owszem, wie­le doku­men­tów ma narzu­co­ną struk­tu­rę np. w odpo­wied­niej usta­wie, jed­nak są to mini­mal­ne zawar­to­ści (np. fak­tu­ra) nie ma zaka­zu uzu­peł­nie­nia tej struk­tu­ry i np. doda­nia do fak­tu­ry nume­ru zamó­wie­nia, z któ­rym jest związana.

Ogólnie moż­na okre­ślić pew­ne pra­wi­dło­wo­ści: jeże­li doku­men­ty są prze­cią­ża­ne tre­ścią, czy­li idzie­my w kie­run­ku małej ilo­ści doku­men­tów zawie­ra­ją­cych dużo danych, rośnie zło­żo­ność reguł pra­cy z takim doku­men­tem. Jeżeli zaś idzie­my w kie­run­ku doku­men­tów bar­dzo pro­stych”, rośnie ilość ich typów i rośnie licz­ba reguł koja­rzą­cych te doku­men­ty ze sobą w celu ich uży­cia. Ogólnie obra­zu­je to poniż­szy diagram:

Liczba dokumentów vs ilośc treści na nich

Tak więc skraj­nym roz­wią­za­niem będzie stwo­rze­nie jed­ne­go doku­men­tu, na któ­rym będą wszyst­kie infor­ma­cje np. zwią­za­ne z danym zamó­wie­niem. Drugą skraj­no­ścią jest podzie­le­nie infor­ma­cji na odręb­ne małe nie­po­dziel­ne już grup­ki, jak to ma miej­sce w znor­ma­li­zo­wa­nych rela­cyj­nych bazach danych. Jeżeli mega­do­ku­men­ty to raczej bar­dzo rzad­kie zja­wi­sko, to przy­pa­dek dru­gi jest dość powszech­ny. To co nazy­wa­my czę­sto doku­men­tem to tu tak na praw­dę nie­ist­nie­ją­cy byt w rela­cyj­nej bazie danych, gene­ro­wa­ny ad-hoc w locie” z sze­re­gu roz­drob­nio­nych tablic danych. Innymi sło­wy nie są to sta­łe struk­tu­ry” a pew­na okre­ślo­na zło­żo­na logi­ka, two­rzą­ca z pro­stych danych pobie­ra­nych z tablic, kon­kret­ne zesta­wy infor­ma­cji np. fak­tu­ry (to dla­te­go czę­sto w języ­ku dostaw­cy” fak­tu­ra to raport a nie doku­ment!). Ta zło­żo­na logi­ka reali­zo­wa­na jest (wyko­ny­wa­na w pamię­ci kom­pu­te­ra) za każ­dym razem gdy odwo­ła­my się do takie­go dokumentu.

Optymalna sytu­acja to rodzaj kom­pro­mi­su pomię­dzy zło­żo­no­ścią logi­ki two­rze­nia i korzy­sta­nia z doku­men­tu a jego zawar­to­ścią. Na powyż­szym dia­gra­mie jest to obszar sta­no­wią­cy oko­li­ce mini­mum krzy­wej opi­su­ją­cej zależ­ność pomię­dzy licz­bą doku­men­tów a zło­żo­no­ścią ope­ro­wa­nia nimi. Nie ma pro­stej regu­ły na opra­co­wy­wa­nie i opty­ma­li­za­cje tre­ści i licz­by doku­men­tów jed­nak są pew­ne spraw­dzo­ne dobre prak­ty­ki, a mia­no­wi­cie jeden doku­ment, o okre­ślo­nej struk­tu­rze, powi­nien zawie­rać dane o okre­ślo­nym zda­rze­niu w okre­ślo­nym kon­tek­ście [powsta­je teraz publi­ka­cja na ten temat, wyda­je się moż­na to jed­nak zde­fi­nio­wać, przyp auto­ra 2019]. Dokumenty te, podob­nie jak fak­ty któ­re doku­men­tu­ją, mogą mieć każ­dy wła­sny i róż­ny od innych cykl życia, dla­te­go czę­sto bywa bar­dzo szko­dli­we roz­dzie­la­nie” ich na pola bazy danych i pozby­cie się redundancji.

Przykładem mogą być: zamó­wie­nie jako udo­ku­men­to­wa­nie fak­tu zawar­cia umo­wy na dosta­wę, fak­tu­ra jako udo­ku­men­to­wa­nie fak­tu sprze­da­ży (prze­nie­sie­nia wła­sno­ści) oraz doku­ment WZ doku­men­tu­ją­cy fakt wyda­nia z maga­zy­nu okre­ślo­nych pro­duk­tów. Bardzo czę­sto spe­cy­fi­ka­cja tego co wyda­no z maga­zy­nu nie jest toż­sa­ma z tre­ścią fak­tu­ry (sprze­da­no odku­rzacz a wyda­no odku­rzacz i zapa­so­we wor­ki), na zamó­wie­niu mógł być wyszcze­gól­nio­ny odku­rzacz, wor­ki oraz wyma­ga­ne koń­ców­ki (któ­re są np. u pro­du­cen­ta pako­wa­ne w stan­dar­dzie więc nie ma ich ani na fak­tu­rze ani na WZ). Dlatego ma głę­bo­ki sens by te doku­men­ty były jed­nak osob­ny­mi doku­men­ta­mi” a nie zacho­wy­wa­ny­mi w bazie danych dany­mi jako odręb­ne pola pozba­wio­ne redun­dan­cji, wyma­ga­ją­ce skom­pli­ko­wa­nej logi­ki (pole­ce­nia SQL) by je (te doku­men­ty”) poka­zać na ekra­nie czy wydrukować.

To dość try­wial­ny przy­kład, bo opi­sa­ne doku­men­ty są wyma­ga­ne prze­pi­sa­mi jako dowo­dy księ­go­we, jed­nak każ­da więk­sza orga­ni­za­cja ma swo­je wewnętrz­ne doku­men­ty, na któ­rych ilość i treść ma peł­ny wpływ. Po dru­gie nawet te doku­men­ty są czę­sto wła­śnie zapi­sy­wa­ne w rela­cyj­nych bazach danych jako roz­pro­szo­ne po małych tabe­lach dane, wyma­ga­ją­ce skom­pli­ko­wa­nych ope­ra­cji łącze­nia w jeden doku­ment”, każ­do­ra­zo­wo przy pró­bie jego uży­cia. Tu zacho­dzi bar­dzo duże ryzy­ko, że postać i treść takie­go doku­men­tu ule­gnie zmia­nie np. po reor­ga­ni­za­cji bazy danych. Takich doku­men­tów” nie da się (w tej posta­ci) pod­pi­sać elek­tro­nicz­nie, bo one po pro­tu fizycz­nie na praw­dę nie istnieją.

A jak ina­czej? Nie ma żad­ne­go pro­ble­mu by dowol­ny doku­ment sta­no­wił sobą jed­no­li­ty byt np. zestaw danych w for­ma­cie XML, sko­ja­rzo­ny ewen­tu­al­nie ze swo­ją posta­cią goto­wą do dru­ku albo np. plik PDF sko­ja­rzo­ny z meta­da­ny­mi opi­su­ją­cy­mi go (wybór jest na praw­dę duży). Nie nale­ży zapo­mi­nać, że poza doku­men­ta­mi, któ­re są two­rzo­ne w orga­ni­za­cji ope­ru­je­my doku­men­ta­mi obcy­mi, otrzy­ma­ny­mi z zewnątrz i wypa­da­ło by mieć taki doku­ment w posta­ci takiej jaką prze­słał nam ich twór­ca. Owszem poja­wia się redun­dan­cja danych ale ona nie sta­no­wi sobą nic złe­go. Ogromną korzy­ścią takie­go podej­ścia jest roz­wią­za­nie pro­ble­mu pole­ga­ją­ce­go na nie­moż­no­ści roz­dzie­le­nia doku­men­tów” i logi­ki ope­ro­wa­nia nimi jeże­li są zapi­sa­ne w posta­ci odręb­nych pól w rela­cyj­nej bazie danych. Np. sta­je się nie­moż­li­we pozo­sta­wie­nie fak­tur i wynie­sie­nie doku­men­tów maga­zy­no­wych do odręb­ne­go sys­te­mu (w tym zmia­na ich struk­tu­ry) co ma miej­sce nie raz przy wdra­ża­niu sys­te­mów WMS (sys­te­my logi­stycz­no-maga­zy­no­we). Takie ope­ra­cji pra­wie żaden duży zin­te­gro­wa­ny ERP nie wytrzy­ma (usły­szy­my raczej, że my dosto­su­je­my do Państwa potrzeb nas moduł magazynowy…).

Podejście takie ma tak­że inna cie­ka­wą zale­tę: jeże­li udo­ku­men­tu­je­my osob­no struk­tu­ry doku­men­tów i logi­kę ope­ro­wa­nia nimi (tak­że ich two­rze­nia), to otrzy­ma­my obiek­to­wy model orga­ni­za­cji: model poka­zu­ją­cy wza­jem­ną współ­pra­cę obiek­tów biz­ne­so­wych (doku­men­tów) odpo­wie­dzial­nych za prze­cho­wy­wa­nie infor­ma­cji, obiek­tów odpo­wie­dzial­nych za reje­stro­wa­nie tych infor­ma­cji, obiek­tów mają­cych wie­dzę jak ope­ro­wać tymi infor­ma­cja­mi, obiek­tów udo­stęp­nia­ją­cych to wszyst­ko zgod­nie z okre­ślo­ną logi­ką. Poniżej obiek­to­wy model na któ­rym od pra­wej mamy: doku­men­ty z ich tre­ścią oraz logi­kę ich two­rze­nia i udo­stęp­nia­nia (repo­zy­to­ria czy­li kuwet­ki na doku­men­ty), logi­kę korzy­sta­nia z infor­ma­cji w repo­zy­to­riach, tak­że ich wza­jem­ne­go koja­rze­nia (samo­dziel­ne usłu­gi) oraz logi­kę dostę­pu do tego sys­te­mu (reali­za­cja sce­na­riu­szy przy­pad­ków uży­cia). Jeżeli w toku ana­li­zy uzna­my, że jakieś ele­men­ty tej logi­ki to zada­nia pod­da­ją­ce się w 100% algo­ryt­mi­za­cji, to poniż­szy model jest jed­no­cze­śnie mode­lem logi­ki apli­ka­cji i nazy­wa­my go Modelem Dziedziny Systemu. Nie jest to abso­lut­nie żad­na baza danych, poniż­sze repo­zy­to­ria nicze­go nie współ­dzie­lą (moż­na je w dowol­nym momen­cie zamie­niać na inne bez kon­se­kwen­cji dla resz­ty systemu).

Obiektowy model dziedziny Zasada SOLID

Model ten powstał z uży­ciem blo­ków funk­cjo­nal­nych wzor­ca BCE (opi­sa­łem go tu: Wzorzec ana­li­tycz­ny Boundary Control Entity). Dla wyja­śnie­nia: powyż­szy dia­gram to w peł­ni popraw­ny Model dzie­dzi­ny wyko­na­ny z uży­ciem dia­gra­mu klas UML, kla­sy mają ste­reo­ty­py boun­da­ry, con­trol i enti­ty (powy­żej od lewej do pra­wej), ste­reo­ty­py te są repre­zen­to­wa­ne sym­bo­la­mi opi­sa­ny­mi (iko­na­mi) w BCE. (Źródło: Krzywe i kosz­ty? archi­tek­tu­ry | | Jarosław Żeliński IT-Consulting

Prawie zawsze obser­wu­ję, że pod­sta­wo­wym domyśl­nym zało­że­niem wdro­żeń sys­te­mów wspo­ma­ga­ją­cych zarzą­dza­nie, jest uzna­nie a prio­ri nie­zmien­no­ści struk­tu­ry i wzo­rów dokumentów. 

Z doświad­cze­nia mogę powie­dzieć, że ana­li­za i opty­ma­li­za­cja tre­ści doku­men­tów wewnętrz­nych może przy­nieść bar­dzo duże korzy­ści prze­kła­da­ją­ce się na duży wzrost wewnętrz­nej efek­tyw­no­ści i jako­ści pra­cy, a w przy­pad­ku wdro­żeń opro­gra­mo­wa­nia wspo­ma­ga­ją­ce­go zarzą­dza­nie, pozwa­la nie raz cał­ko­wi­cie unik­nąć bar­dzo kosz­tow­nych i ryzy­kow­nych kasto­mi­za­cji. Zaryzykuje tezę, że kil­ka pro­jek­tów w ten spo­sób wręcz uratowałem…