Trochę tła :
Pracuję w dużej firmie, używam Windows XP i koduję Winforms w VB6 / VB.Net i niektóre WebFormy w VB.Net (95% kod konserwacji). Mam jeden ekran 4: 3 19 ". Niedługo wydarzy się bardziej nowoczesna wersja systemu Windows, a dźwięk nie będzie działał od podstaw!
Nie powiedziano mi o tym, kiedy dołączyłem do firmy, wprowadzono mnie w błąd, sądząc, że będę pracować z dużo nowszymi technologiami i strukturami.
Mam o wiele bardziej aktualne doświadczenie z poprzednich prac, zarówno z bardziej nowoczesnymi frameworkami, jak i innymi językami programowania, a kiedy spotykam się z przyjaciółmi programistów z innych firm, słyszę tylko o tym, jak korzystają z najnowszej platformy ASP MVC, lub Vagrant / Ruby on Rails / etc i dostaję zielone oczy!
Mógłbym dość szybko zająć się inną pracą, ale czuję, że powinienem dać temu jeszcze jedną szansę.
Pytanie :
Próbuję się przekonać, że moja obecna praca nie jest taka zła. Jakie są więc zalety tej roli? Czy są zalety pracy z przestarzałymi technologiami? Może niektóre techniki, których nie wybrałbym przy pracy z bardziej nowoczesnymi? Czy jest to miejsce, w którym umierają kariery i powinienem wyjść, póki jeszcze mam swoją duszę?
Odpowiedzi:
Ach, ale tam bawią się zabawkami, a tam wykonujesz prawdziwą pracę, używając narzędzia, które wykonuje pracę, aby znaleźć rozwiązanie.
Właśnie to powinieneś wziąć pod uwagę - oprogramowanie to zbyt często romans amatorski z ludźmi przechodzącymi z jednej fajnej nowej technologii do następnej najnowszej mody. Są też inni, którzy traktują to jako bardziej profesjonalną karierę, w której narzędzia nie mają tak dużego znaczenia, jak produkt lub rozwiązanie, które tworzysz.
Są miejsca, w których starą technologię należy zastąpić czymś nowym, ale generalnie są to tylko ulepszenia, a nie hurtowe zamienniki. Np. VB6 zostaje uaktualniony do VB.NET, Visual Studio 2002 zostaje uaktualniony do Visual Studio 2012. Każdy, kto przejdzie całkowitą przeróbkę, zawsze przekonuje się, że nowe narzędzia nie są tak fantastyczne. (dlatego między innymi Joel twierdzi, że przepisywanie zawsze jest złą odpowiedzią)
Skoncentruj się więc na osiąganiu celów i ulepszaj je tam, gdzie możesz, powoli i ostrożnie tam, gdzie ma to sens - nie dlatego, że chcesz bawić się najnowszymi zabawkami (które i tak wkrótce zostaną odrzucone, a absolutną ostatnią rzeczą, jakiej chcesz, jest utrzymanie system napisany przez ludzi, którzy kodowali w zeszłorocznej fajnej technologii)
źródło
Istnieje kilka korzyści dla firmy polegającej na stosowaniu przestarzałych technologii:
Starsze rzeczy czasami nie działają z nowymi
Firma mogła zainwestować dużą ilość pieniędzy w systemy, które po prostu nie działają z nowszymi językami lub systemami operacyjnymi. Klasycznym przykładem jest wiele intranetowych aplikacji internetowych, które są kompatybilne tylko z IE6 i tylko IE6. Wybór pomiędzy trzymaniem się Windows XP + IE6 a wyrzuceniem działającego systemu i inwestowaniem pieniędzy w nowy nie jest oczywisty.
Zmiana ze względu na zmianę nie jest mądrym wyborem
Przykład: wiele banków nadal utrzymuje aplikacje pierwotnie napisane w języku COBOL. Kiedy te rzeczy działają, dlaczego firma zdecyduje się napisać je w innym języku, biorąc pod uwagę koszt przepisania dużego systemu o dużym znaczeniu dla firmy, a także ryzyko popełnienia błędu, wprowadzając mnóstwo nowych błędów? (Jednym z powodów jest opisany poniżej)
Licencje są drogie
Załóżmy, że firma ma kilkaset komputerów stacjonarnych korzystających z systemu Windows XP. Chcą przejść na system Windows 8. Ile kosztuje jedna licencja systemu Windows 8 Enterprise? Co jeśli pomnożymy ten koszt przez liczbę maszyn?
Jest jeszcze gorzej dla serwerów. Pojedyncza licencja na Oracle lub Microsoft SQL Server kosztuje około 30 000 USD - 40 000 USD. Jeśli firma ma, powiedzmy, pięćdziesiąt serwerów baz danych, szybko staje się bardzo droga nawet przy licencjonowaniu zbiorowym.
W mojej firmie utknęliśmy w programie Visual Studio 2010. Występują liczne błędy i wiemy, że nigdy nie zostaną rozwiązane, ponieważ Microsoft porzucił tę wersję. Ale 13 000 USD (biorąc pod uwagę, że potrzebujemy wersji Ultimate ze względu na jej unikalne funkcje, które są niedostępne w innych wersjach) jest zbyt wysoka, abyśmy mogli zaktualizować ją do Visual Studio 2013.
To powiedziawszy, istnieją również ważne wady.
Starsze rzeczy nie przyciągają nowych talentów
To jeden z problemów firm, które utrzymują aplikacje COBOL: trudno jest znaleźć niedrogich programistów. Również praca na komputerach mainframe i pisanie kodu COBOL nie jest czymś atrakcyjnym dla osób kreatywnych.
Chociaż są dobrym wyborem dla systemów szkieletowych, które wymagają zachowania solidności, te systemy i języki nie będą dobrze pasować do produktów wymagających ciągłych innowacji.
Stare nie znaczy bezpieczne
Ponieważ przepisywanie produktu w nowym języku może wprowadzać nowe błędy, utrzymywanie starych systemów, które nie są już obsługiwane, może być również niebezpieczne. Wyobraź sobie, że w systemie Windows 98 znaleziono błąd, który mógłby zagrozić całemu systemowi: czy Microsoft wyda aktualizację, aby go rozwiązać?
Dziedzictwo jest wirusowe
Niezgodność między starszymi i nowszymi systemami oznacza, że często, gdy trzymasz się starego produktu, języka lub infrastruktury, nie będziesz mógł dokonać aktualizacji w innym miejscu. Stara aplikacja intranetowa, która działa tylko na IE6, prowadzi do systemu Windows XP na wszystkich komputerach, co oznacza, że nie można migrować do nowej wersji usługi Active Directory, co oznacza, że nie można używać nowych aplikacji, które wymagają najnowszej wersji usługi Active Directory, oraz wkrótce.
Wydajność
Nowe wersje produktów wprowadzają nowe funkcje, które czasem zwiększają wydajność. Zadanie, które zajęłoby godzinę w programie Visual Basic 6.0, można wykonać w niecałą godzinę w programie Visual Studio 2013, ponieważ Visual Studio 2013 i .NET Framework 4.5 oferują ulepszone Intellisense, Entity Framework i tysiące innych rzeczy, które redukują kod pisać, zwiększyć szybkość pisania kodu i zmniejszyć ryzyko wprowadzenia błędów.
Jeśli przykład nie jest wystarczająco jasny, oto kolejny. W systemie Windows 3.1 administratorzy systemu konfigurowali każdą maszynę ręcznie jeden po drugim (chyba że istniała pewna automatyzacja, o której nie wiem). Dzisiaj użyliby PXE i Windows Assessment and Deployment Kit do automatycznego wdrożenia nowego systemu operacyjnego i oprogramowania na tysiącach komputerów.
Korzystanie ze starszych wersji może po prostu stać się zbyt kosztowne. Może nie być to oczywiste dla niektórych użytkowników, którzy są zadowoleni z systemu Windows 95, ale jest znacznie bardziej oczywiste dla programistów, administratorów systemów, projektantów, naukowców i innych osób, które w dużej mierze polegają na mocy sprzętu i aplikacji.
źródło
Rozwój przestarzałych technologii wiąże się z pewnymi zaletami, ale niezależnie od tego, czy przeważają one koszty związane z utratą płynności przy ich zastępowaniu, a ból związany z pracą z nimi jest osobistym wyborem między tobą a nimi.
Mogę wymyślić trzy zalety pracy z przestarzałą, zastąpioną technologią:
Znajomość samej starszej technologii
Jedynymi wciąż używanymi starymi technologiami są te, które ktoś gdzieś uznał za tańsze w utrzymaniu niż w wymianie. Umiejętność wyliczenia doświadczenia zawodowego z tak starszą technologią może sama w sobie pomóc w zdobyciu innej pracy w tym samym obszarze. Wraz ze wzrostem liczby deweloperów rośnie premia, którą można pobierać za pracę nad takimi programami.
Szansa na ćwiczenie uczenia się czegoś nowego
Naprawdę nie jesteś programistą, jeśli możesz programować tylko w językach, których nauczył cię ktoś inny. Możliwość dostosowania swoich technik i modeli do starszych technologii wymaga dokładnie takich samych umiejętności, jakie byłyby potrzebne do dostosowania się do nowej technologii.
Głębsze zrozumienie, dlaczego zostały zastąpione
Trudno wyjaśnić nieprogramiściowi typu HR lub Executive, dlaczego VB.NET lub C # jest lepszy od VB6, jeśli nie znasz samej technologii. A jeśli nie jesteś do końca zaznajomiony z tym ostatnim, poznanie tego, co zastąpili, może pomóc zrozumieć, dlaczego zastąpienia zostały napisane, jak były.
W związku z powyższym nie ma absolutnie żadnego powodu, dla którego firma powinna utrzymywać jakąkolwiek aplikację napisaną w technologii, która stała się tak przestarzała.
Jeśli można go pozostawić w spokoju, dopóki środowisko wykonawcze nie powiedzie się z powodu jakiegoś nieudokumentowanego błędu, to jedno - ale każda godzina, którą programista spędza na starej technologii bez planu przejścia, jest długiem technicznym, który przedsiębiorstwo będzie musiało ostatecznie spłacić.
źródło
W pewnym momencie firma będzie musiała martwić się o koniec życia VB6, ale niestety VB.NET ma trochę oddechu.
Czy istnieje jakiś powód, dla którego musisz pracować na jednym małym monitorze? To bardziej przypomina, że firma jest tania niż martwi się dobrze przetestowanymi technologiami. To nie tak, że kilka 21-calowych monitorów wprowadzi błędy.
Aby zachować swoje umiejętności i zarabiać za to, sugeruję przyjrzenie się twojej kompilacji, testowaniu i wdrażaniu konfiguracji. Może to być okazja do rozpoczęcia wprowadzania niektórych nowszych technologii przy użyciu rake, PowerShell i / lub nant do kompilacji i wdrażania. Jeśli nie masz testów jednostkowych, zacznij je dodawać.
Na koniec dnia, jeśli firma nie będzie w przestrzeni technologicznej, zawsze będzie dla nich drugorzędna. Zachowanie stabilności w celu ochrony ich podstawowej działalności biznesowej ma sens.
Będę unikać udzielania porad dotyczących kariery, jestem pewien, że inni opisali podstawy.
źródło
Dla osób starszych, zbliżanie się do końca kariery zawodowej, sprzedawanie głębokiej wiedzy na temat starszej technologii firmie, która nadal korzysta ze starych technologii, może być atrakcyjne finansowo . Na przykład, jeśli masz doświadczenie w PDP-11, możesz chcieć przeprowadzić się do Kanady .
Jednak na początku swojej kariery polecam przejść dalej.
źródło
Istnieje wiele zalet:
1) Będzie wiele zasobów dostępnych dla technologii, o ile nie były one niejasne i nie były szeroko stosowane.
2) Mam nadzieję, że inni w firmie będą dobrze zorientowani w technologiach, ponieważ się nie zmienili.
3) Jeśli nie ma dużo nowych rozwiązań, możesz pracować nad refaktoryzacją starego kodu, aby był czystszy lub szybszy. Zauważ, że typ sklepu, który utrzymuje tę starą technologię, prawdopodobnie będzie przeciwny zmianie jakiegokolwiek kodu, który „działa”, pomimo tego, jak obrzydliwe może być.
źródło
Skoncentruję się na drugiej stronie tego pytania, tj. Wadach korzystania z nowych technologii, ponieważ zalety przestarzałych technologii zostały w wystarczającym stopniu uwzględnione w innych odpowiedziach.
Wciąż mamy dużą bazę kodu Visual Studio 6 i nie wygląda na to, że zostanie ona wkrótce zastąpiona.
Nadal pracujemy nad nowymi technologiami, w których możemy opracowywać nowe rozwiązania.
Jak mi się wydaje, można napisać VB.NET, który całkiem ładnie współpracuje ze starszym kodem VB6 przy użyciu COM.
Korzystanie z najnowocześniejszych technologii jest niewątpliwie zabawne, ponieważ często przynoszą znaczące korzyści w zakresie wydajności. Jednak drugą stroną jest to, że możesz natknąć się na błąd / usterkę, która cofnie cię o kilka dni / tygodni. Nie bez powodu nazywa się to krwawieniem!
Nawet gdyby firma zebrała pieniądze na aktualizację oprogramowania, to (jak przekonałem się z własnego doświadczenia) może być nieco trudne, niezależnie od tego, którą firmę wybierze:
Port oprogramowania
Oprogramowanie zostało przepisane, ale musi wyglądać dokładnie tak samo jak stare oprogramowanie, aby nie denerwować użytkowników. Radość z pracy z nowymi technologiami jest nadrzędna przez fakt, że nie można używać żadnego z nowych programów GUI.
Aktualizacja programu Visual Studio
Tak naprawdę nie możesz właściwie korzystać z żadnej z nowych funkcji, ponieważ spędzasz dużo czasu na rozwiązywaniu problemów w kodzie, gdzie działa dobrze w jednej wersji studia, ale nie w drugiej.
Migracja funkcjonalna
Migrujesz oprogramowanie zachowując podstawową funkcjonalność. Pozwala to na największą swobodę z punktu widzenia programisty, ale mogą zostać wprowadzone błędy, które mogą spowodować, że firma zakwestionuje wartość takiego ćwiczenia, o ile nie zostaną również uwzględnione nowe funkcje o wartości dodanej.
Nirvana dla większości programistów to wysokiej jakości szkolenie na temat nowoczesnych technologii, szansa na przećwiczenie tego, czego się nauczyłeś, a następnie projekt greenfield, aby odciąć zęby.
To, co powinieneś zrobić, zależy w dużej mierze od rodzaju osoby, którą jesteś. Neophiles zawsze będzie chciał pracować z nowymi rzeczami, podczas gdy luddites uważają, że stara technologia jest najlepsza. Większość z nas jest gdzieś pośrodku. Musisz poćwiczyć w miejscu, w którym czujesz się komfortowo. Jeśli uważasz, że możesz żyć z obecnym status quo, to świetnie, w przeciwnym razie weź monetę na razie i miej oko na pół, aby uzyskać bardziej odpowiednią pozycję.
źródło
Może nie jest to dokładnie to, o co prosisz, ale mam kilka sugestii:
Myślę, że największą korzyścią jest to, co możesz zaoferować swojemu pracodawcy pod względem wiedzy specjalistycznej, kiedy w końcu zdają sobie sprawę, że muszą przeprowadzić migrację. XP zostanie wycofane w tym roku, więc wyobrażam sobie, że Twój dział IT już rozważa strategię migracji. (Jeśli nie, przygotuj swoje CV, ponieważ ich firma nie będzie długo w pobliżu).
Mając to na uwadze, rozsądne może być rozpoczęcie tworzenia listy zalet migracji podstawowych zestawów narzędzi oprogramowania w połączeniu z migracją systemu operacyjnego / platformy. Pomóż edukować swój technicznie nieopłacalny łańcuch zarządzania w zakresie ROI w odniesieniu do nowych technologii. Twoi menedżerowie nie dadzą się zwieść ramom typu whiz-bang i technologicznym zabawkom, ale powinni być bardzo zainteresowani twoimi dalekosiężnymi prognozami dotyczącymi porównawczych kosztów bieżących wydatków na utrzymanie, przyszłego rozwoju itp.
W tej samej linii możesz skorzystać z okazji, aby dowiedzieć się, jaki jest poziom zadowolenia klientów (pracowników korzystających z Twojego oprogramowania). Jakie ulepszenia chcieliby zobaczyć? Jakie błędy doprowadzają ich do szaleństwa? Jakie funkcje znacznie poprawiłyby ich wydajność? Jeśli możesz pokazać swoim pracodawcom, że nowa inwestycja w technologię miałaby demonstracyjny wpływ na ich wyniki finansowe, możesz zdobyć tytuł Technical Migration Manager.
I TO wyglądałoby dobrze na ŻADNYM życiorysie.
AKTUALIZACJA: Wygląda na to, że nie jesteś sam w swojej branży: „ 95% bankomatów na świecie korzysta z XP ”. Nie zrozum mnie źle: XP jest świetne - zawsze byłem fanem. Ale rzeczywistość jest taka, że po zakończeniu łatek bezpieczeństwa i aktualizacji XP nie będzie opłacalnym produktem dla banku. Twoim zadaniem (ze względu na klientów Twojego banku) jest uprzejmie, ale uporczywie informowanie swoich menedżerów, że ostatecznie zapłacą znacznie więcej (w ramach rozszerzonych umów serwisowych lub łagodzenia ataków), aby utrzymać XP po dacie przejścia na emeryturę. Jak wskazał link @ RobbieDee: masz czas do 14 lipca 2015 r. To wystarczy (jeśli zaczniesz teraz) na zaprojektowanie, wdrożenie i wdrożenie systemu zastępczego.
(Ale NIE próbuj sprzedawać tego pomysłu facetowi, który właśnie wypisał się z instalacji XP w całym przedsiębiorstwie. On nie jest twoim sprzymierzeńcem. Przy takim osądzie jego dni w tej roli są policzone. Po prostu spokojnie pracuj wokół niego, aż dominują mądrzejsze głowy).
źródło