Not invented here
Większość z Was pewnie wie doskonale co oznaczają trzy słowa w tytule. Pozostałych odsyłam
tutaj. Prawie każdy programista na pewnym etapie swojego rozwoju (o którym świetnie piszę Procent
tu,
tu i
tu) cierpi na chorobę pisania wszystkiego od nowa. Wydaje mi się, że wynika to z ogromnej pychy, która jest niezbywalną cechą programistów - "przecież ja zrobiłbym to lepiej!". Łatwo potępiać takie postępowanie, kiedy patrzy się na nie z perspektywy wielu lat doświadczenia - że bez sensu, że szkoda czasu, że przecież są ludzie mądrzejsi.
Tu mała dygresja, żeby nie pozostawiać wątpliwości - szczerze nienawidzę syndromu "not invented here" w odniesieniu do inżynierii oprogramowania jako dziedziny przemysłu. NIH w firmach nie sprawdza się prawie nigdy.Z drugiej strony jednak uważam, że podejście to ma swoje zalety i, odpowiednio zastosowane, może być wartościowe. Według mnie "not invented here" drzemiące gdzieś w zakamarkach duszy programisty zachęca go do podejmowania twórczych działań w celu zmiany otaczającego go świata. Być może delikwent taki nie napisze od postaw kolejnego framework-u
Dependency Injection, ale zrobi coś, aby ten, którego używa był lepszy. A wszystko po to, aby uciszyć wyrzuty sumienia, w którym tkwi ziarno "not invented here".
Kolejną zaletą wymyślania koła na nowo jest fakt, że jest to świetna metoda nauki nowych technologii i koncepcji. Żadna książka i żadne szkolenie nie zastąpi zaimplementowania dobrze znanej funkcjonalności za pomocą nowej technologii.
I tym optymistycznym akcentem chciałbym zaanonsować nowy cykl notek na tym blogu:
moja własna szyna usług. Temat ten został ostatnio spopularyzowany przez
Ayende Rahien, który pogardził
nServiceBus Udiego Dahana oraz
MassTransit-em i podjął się budowy własnej szyny. Idąc więc za ciosem, ja również będę miał własną szynę. A co!?!:)