keyboardMiliony linii kodu to czasem chaos. Komputer jest z definicji deterministyczny.

Właśnie skończyłem czytać kolejny tegoroczny grudniowy numer Software Developer Journal. Ogromne przemyślenia wzbudził we mnie artykuł Fazy Tworzenia Oprogramowania Pana Daniela Jabłońskiego. Autor, doświadczony programista, pisze o zarządzaniu projektami, w których złożoność staje się wręcz abstrakcyjna dla samych programistów: miliony linii kodu!

To właśnie mnie fascynuje: ogarnianie złożoności za pomocą abstrakcyjnych modeli problemu. Wyrzucam wszystko to co zaciemnia obraz i zostawiam tylko elementy jednej perspektywy. Z milionów linii kodu można zrobić kilkadziesiąt diagramów….

System ERP zawiera kilka tysięcy funkcjonalności, każdą implementuje kilka, kilkanaście czy nawet kilkadziesiąt tysięcy linii kodu. Jak to ogarnąć?

Jeden z pracowników moich klientów, duży developer powiedział, że firma i to co się w niej dzieje jest tak skomplikowana, że nie wyobraża sobie bo można to było opisać lub narysować. Powiedziałem, że można, należy jednak po pierwsze przyjąć pewien poziom szczegółowości opisu sensowny z perspektywy człowieka (model to uproszczenie) oraz podzielić problem na kawałki… dyskusja nie miała końca. Mój projekt dobiegł końca i okazało się, że udało się opisać nie małą firmę w ciągu miesiąca, modelem na kilkudziesięciu stronach. Jak?

Modelowanie to fascynująca profesja. Pozwala uprościć samochód Porche, składający się z kilkuset tysięcy elementów do postaci modelu,  zabawki na resorach, zachowującej potrzebne, w kontekście wyścigów na plastykowym torze, cechy takie jak wygląd i rozpoznawalność marki samochodu. Modelowanie pozwala uprościć ten sam złożony samochód do postaci drewnianej skorupy pozwalającej na ocenę aerodynamiki samochodu. Innym razem silnik umieszcza się, w skrzynce imitującej nadwozie z kołami by go przetestować i ocenić jakie samochód będzie miał przyśpieszenie.

Opanowywanie złożoności to podstawowe zajęcie analityka, projektanta.

Autor artykułu pyta: czy kiedyś przypadkowy błąd, defekt, programu zawierającego miliony linii kodu nie spowoduje, że powstanie świadomy program?

No coż … filozoficzne dywagacje :)… czasem i to należy robić…. W każdym razie, z filozoficznego powodu polecam ten numer SDJ

Jarosław Żeliński

Jarosław Żeliński: autor, badacz i praktyk analizy systemowej organizacji: Od roku 1991 roku, nieprzerwanie, realizuje projekty z zakresu analiz i projektowania systemów, dla urzędów, firm i organizacji. Od 1998 roku prowadzi samodzielne studia i prace badawcze z obszaru analizy systemowej i modelowania (modele jako przedmiot badań: ORCID). Od 2005 roku, jako nieetatowy wykładowca akademicki, prowadzi wykłady i laboratoria (ontologie i modelowanie systemów informacyjnych, aktualnie w Wyższej Szkole Informatyki Stosowanej i Zarządzania pod auspicjami Polskiej Akademii Nauk w Warszawie.) Oświadczenia: moje badania i publikacje nie mają finansowania z zewnątrz, jako ich autor deklaruję brak konfliktu interesów. Prawa autorskie: Zgodnie z art. 25 ust. 1 pkt. 1) lit. b) ustawy o prawie autorskim i prawach pokrewnych zastrzegam, że dalsze rozpowszechnianie artykułów publikowanych w niniejszym serwisie jest zabronione bez indywidualnej zgody autora (patrz Polityki Strony).