Czy powinienem używać języka, w którym czuję się najlepiej, czy też „standardowego” w firmie


18

Zamierzam opracować witrynę intranetową dla mojego konkretnego zakładu, a standardem naszej firmy do tworzenia stron internetowych jest IIS + ASP.Net + VB.Net + Microsoft SQL Server (zauważ, że mamy około 10+ zakładów). Strona intranetowa będzie używana tylko przez moją fabrykę, a ja jestem jedyną, która będzie ją obsługiwać. Jestem znacznie bardziej biegły w konfiguracji LAMP i mogłem programować i rozwiązywać problemy znacznie szybciej z PHP niż ASP.Net. Mimo że „standardem” firmy jest ASP.Net/VB.Net, większość tego, co firma robi jako całość, polega na zakupie oprogramowania stron trzecich (zwykle opartego na Javie ), i bardzo, i mam na myśli bardzo niewiele osób w firma nawet wieVB6 , nie mówiąc już o ASP.Net/VB.Net.

Biorąc to pod uwagę, czy lepiej jest naruszać standard firmy i przejść do konfiguracji, którą mogę lepiej obsługiwać, czy też lepiej, aby przejść do konfiguracji, którą firma mogłaby wesprzeć lepiej, gdybym kiedykolwiek odszedł, chociaż nikt obecnie czy firma może w ogóle obsługiwać własny standard?

Kilka dodatkowych czynników, które należy wziąć pod uwagę w mojej osobistej sprawie:

  • Ponownie, dotyczy to tylko mojego zakładu i jestem jedynym, który będzie go wspierał, chyba że odejdę z firmy, a wtedy mój zastępca będzie go wspierał. Nikogo już nie ma w firmie.
  • W każdym razie firma robi niewielki rozwój.
  • Prawie żadna z istniejących firm nie korzysta ze swojego standardu.
  • Jeśli wybiorę standard firmy, muszę użyć ekspresowej wersji Microsoft SQL i systemu operacyjnego Windows 7. Z moich odczytów wynika, że ​​wersja Express nadaje się do użytku biznesowego, ale rozmiar bazy danych jest ograniczony.

25
Kluczowym słowem jest tutaj naruszenie . Wybrałeś właściwe słowo, a samo czytanie własnego pytania powinno ci powiedzieć, że jest to dość głupi pomysł. Nie bez powodu wybrali standard. Jeśli nie zgadzasz się z tym wyborem, powinieneś formalnie skierować go w górę.
Joel Etherton,

3
„Mam na myśli, że bardzo niewiele osób w firmie zna nawet VB6, nie mówiąc już o ASP.Net/VB.Net.” Naprawdę nie rozumiem, co to ma z tym wspólnego. VB6 to brzydki starszy kod - fakt, że nikt nie wie, że to naprawdę dobra rzecz.
DeadMG,

1
@DeadMG, Problemem jest to, że żaden z nich nie zna VB.Net. Jakie znaczenie ma język, którego używam? Gdybym odszedł, nadal musieliby zatrudnić kogoś innego, kto by go wspierał.
Drew Chapin

3
SQl Server Express obsługuje bazy danych do 4 GB. Zazwyczaj wystarcza, jeśli nie jest, potrzebna jest inna baza danych i prawdopodobnie powinieneś poradzić sobie z odpowiednimi osobami (pracownikiem IT, przełożonymi itp.)
Holger

3
@Baboon, tak, to nie jest tak, że strony takie jak Facebook użyłyby czegoś tak niebiznesowego
SWeko

Odpowiedzi:


38

Ponownie, dotyczy to tylko mojego zakładu i jestem jedynym, który będzie go wspierał, chyba że odejdę z firmy, a wtedy mój zastępca będzie go wspierał. Nikogo już nie ma w firmie.

1 - Nie zakładaj, że tylko ty to wesprzesz. Lubisz swój wolny czas i wakacje, prawda? Co zrobić, jeśli chcesz skorzystać z przedłużonego urlopu macierzyńskiego / ojcowskiego? Kto zatem wesprze Twoją aplikację? A co jeśli chcesz porozmawiać z kimś na temat problemów technicznych specyficznych dla Twojej firmy? Co jeśli chcesz mieć recenzje kodu? Lub potrzebujesz pomocy w trudnym błędzie? We wszystkich tych przypadkach pomaga między innymi wgląd w technologię, której używasz - w szczególności w to, jak można ją zastosować do rozwiązania konkretnych problemów Twojej firmy.

W każdym razie firma robi niewielki rozwój.

2 - To, że jakiś dokument istnieje, nie oznacza, że ​​jest to naprawdę standard lub nic nie znaczy. Może to po prostu oznaczać, że istnieje grupa wpływowych politycznie osób opowiadających się za takim podejściem i może się okazać, że inne podgrupy przyjmują różne podejścia.

Twoim problemem może być po prostu to, że „standard” ewoluował do jakiegoś de facto, nieudokumentowanego stanu, który jest sprzeczny z udokumentowanym „standardem”. Lub może istnieć wiele małych, nieoficjalnych grup osób stosujących różne „standardy” - a jedna z tych grup zdoła oficjalnie wydać swój „standard”. Prawdopodobnie musisz zapytać, aby dowiedzieć się, co inni w Twojej grupie - którzy mogą również wspierać Ciebie i Twoją aplikację - rozważają najlepsze praktyki. Zapytaj, co sprawia, że ​​czujesz się komfortowo podczas korzystania. Nakreśl prawdziwy krajobraz technologiczny Twojej firmy i dowiedz się, gdzie jest know-how. Tak jak każdy dobry kawałek ewoluującej wiedzy plemiennej, jedynym sposobem, aby wiedzieć, jak postępować, jest rozmawianie z ludźmi.

3 - Nie przegap profesjonalnych okazji do nauki nowych rzeczy . Musisz wystrzegać się szufladkowania w tej branży. Bądź zwinny. Możesz mieć szansę na poszerzenie się i nauczyć się nowego sposobu rozwiązania problemu. Nie wspominając o tym, że zdobywasz nowe umiejętności do swojego CV. W większości może tylko pomóc wyjść poza strefę komfortu, aby zrobić coś nowego. Biorąc to pod uwagę, jeśli inna / nowa rzecz jest tak wyjątkowo niszowa, że ​​nie uważasz, że ty lub inni przyszli pracodawcy skorzystają na tych umiejętnościach, być może nie jest to świetna okazja. Ale szansa na bycie zarówno ekspertem ASP.net, jak i LAMP z pewnością otworzy oczy i może jedynie pomóc w karierze. Nie ma to jak prawdziwy projekt z terminem, który zmusi cię do prawdziwej nauki.

Więc moja rada, nie idź sam. Dowiedz się, gdzie naprawdę stoją ludzie i zdecyduj, gdzie najlepiej się dopasować. Jeśli chcesz wyjść ze strefy komfortu, wykorzystaj to jako okazję do profesjonalnego rozwoju.


4
+1: Będziesz wspierał to tak długo, jak tam będziesz pracować. Jeśli jednak odejdziesz, ktoś inny go poprze.
unholysampler

1
To dobra odpowiedź, ale dodam, że PO powinien porozmawiać ze swoim menedżerem o kompromisach, aby zobaczyć, jak surowo uważają standard i czy zgodzi się na użycie przez niego innego stosu do tego projektu.
Mike Partridge

Nie zakładaj, że jesteś jedynym, który to wesprze : w ten sposób ludzie mogą ponownie używać kodu od siebie, zamiast wymyślać koło za każdym razem, gdy potrzebujemy czegoś, co się potoczy.
Konerak

2
Najszybszym sposobem na utknięcie w pozycji jest uczynienie siebie niezastąpionym. Jeśli nie możesz zostać zastąpiony, nie możesz awansować.
Burhan Khalid

9

Biorąc to pod uwagę, czy lepiej jest naruszać standard firmy i przejść do konfiguracji, którą mogę lepiej obsługiwać, czy też lepiej, aby przejść do konfiguracji, którą firma mogłaby wesprzeć lepiej, gdybym kiedykolwiek odszedł, chociaż nikt obecnie czy firma może w każdym razie obsługiwać własny standard?

To decyzja zarządcza. Poinformuj ich o swoich obawach i nalegaj formalnie na zmianę.

To powiedziawszy, język jest narzędziem i musisz wybrać odpowiednie narzędzie do pracy; spraw, by zrozumieli, że nie wkręcasz śruby młotkiem.


Ważne, aby pamiętać, że w kontekście tego pytania (biorąc pod uwagę poziom szczegółowości dostępnych) ASP.NET i PHP są zarówno właściwe narzędzie do pracy w tym zarówno bardzo zdolnych platformy
Murph

1
ASP.NET jest prawdopodobnie bardziej wydajny, po prostu operacja lepiej zna php.
Kevin

1
@Kevin, Jedynym powodem, dla którego kiedykolwiek mogłem argumentować, że ASP.Net jest bardziej zdolny niż PHP, jest to, że lepiej integruje się z bezpieczeństwem AD / Windows, nawet jeśli nadal możliwa jest integracja PHP z zabezpieczeniami AD / Windows. Poza tym nie widziałem żadnej przewagi ASP.Net nad PHP.
Drew Chapin,

Według własnego uznania znasz php znacznie lepiej, więc nic dziwnego, że tak powiedziałbyś.
Kevin

8

Czy masz jakieś aspiracje do promocji lub pracujesz nad innymi projektami? Jeśli tak, sugeruję, że „robienie własnych rzeczy” będzie miało dwa negatywne skutki prawie na pewno skutkujące (parafrazą) „Będę tym, który to poprze, dopóki nie odejdę”

  1. Ponieważ zdecydowałeś się nie stosować się do standardów firmy, oznacza to, że nie jesteś szczególnie odpowiedni do pełnienia wyższych ról, ponieważ nie jesteś w stanie wykonać prostych instrukcji.
  2. Ponieważ zdecydowałeś się nie stosować standardu firmy, Twoim problemem będzie to, że nikt inny w firmie nie będzie mógł obsługiwać Twojego kodu.

Jeśli zdecydujesz się użyć standardu, nie będziesz odpowiedzialny za utrzymanie produktu, gdy (jeśli) pojawi się okazja do promocji lub innego projektu.

Drugi sposób spojrzenia na absurdalną analogię. Przeprowadzam się do kraju, w którym jeżdżą po lewej stronie, jednak jestem bardziej przyzwyczajony do jazdy po prawej stronie, wolę jechać po prawej stronie, dlatego jestem w tym lepszy i mogę jechać szybciej. Czy powinienem jechać po prawej stronie?


+1 za ostatni akapit - zwłaszcza, że ​​jeśli chodzi o możliwości platformy, tak naprawdę nie można uzasadnić wyboru PHP zamiast ASP.NET. Może istnieć argument za zmianą standardu w oparciu o możliwości zespołów
deweloperów

5

Firmy mają określone powody z jakiegoś powodu, jeśli istnieje formalnie określony standard mówiący o użyciu x, musisz uzasadnić y.

Nie oznacza to, że nie możesz użyć y, oznacza to, że powinieneś zrozumieć uzasadnienie standardu i uzyskać zgodę przed jego naruszeniem.

Być może po zrozumieniu, dlaczego nie chcesz już tego naruszać, być może zobaczysz, że należy go zmienić lub zezłomować, lub że nie ma zastosowania w tym przypadku, aby korzystanie z y nie było problemem.

Jeśli ma to zastosowanie, to jeśli nie możesz go zmienić, powinieneś go przestrzegać. Standardy firmy nie są na tym samym poziomie co zamówienia bezpośrednie, ale twój pracodawca ma uzasadnione oczekiwania, że ​​zastosujesz się do obu, chyba że naruszą prawo.


1
Standardy firmy są czasem związane z względami marketingowymi zamiast wydajności lub względami technicznymi.
Mister Smith,

@Mister Smith Mimo to nadal musisz porozmawiać ze swoim przełożonym lub kimś, kto ma uprawnienia decyzyjne, aby zweryfikować te powody. Zobacz moją odpowiedź na to pytanie.
Mike Cellini

1
@MisterSmith: ważne powody marketingowe są tak samo ważne, jeśli nie ważniejsze, niż większość kwestii technicznych. Jeśli nie znasz przyczyny, nie znasz jej ważności.
jmoreno

Tak, ale czytając pytanie, miałem wrażenie, że nie ma nad nim menedżera do tego projektu i że tak naprawdę nikogo nie obchodzi egzekwowanie standardów. Jeśli to prawda, nie widzę powodu, aby ślepo przestrzegać standardów zamiast po prostu wybierać bardziej znaną technologię.
Mister Smith,

@MisterSmith: Ślepo nie przestrzega standardów, ślepo przestrzega standardów firmy. Jest różnica. A jeśli nikogo to nie obchodzi, powinno być łatwo uzyskać pozwolenie na naruszenie, a nawet zmianę standardu.
jmoreno

2

Wszystko zależy od tego, czy zostaniesz zwolniony, czy nie. Jeśli zamierzasz zostać zwolniony, nie rób tego. Jeśli nie zamierzasz zostać zwolniony, to z całą pewnością kontynuuj.


-1 To jest, imho, okropna rada. Równie dobrze możesz powiedzieć ludziom, aby pisali brzydki, niezrozumiały, zaciemniony kod bez (lub gorzej: złej) dokumentacji, aby stać się niezbędnymi. Wiedz, że jeśli staniesz się niezbędny, nigdy nie będziesz w stanie awansować w firmie, ale utkniesz, robiąc to, co robiłeś i utrzymując swój (gówniany) kod na wieki!
Konerak

@Konerak Cóż, masz rację. Nie mówiłem o tym poważnie. Zmodyfikuję moje pytanie, aby cię uszczęśliwić.
Mike Nakis

Przepraszam Mike, nie dostałem części ironii;) Cieszyłem się, że zobaczyłem odpowiedź na to, co niezbędne, ponieważ dało mi to możliwość zareagowania i ludzie o tym przeczytają.
Konerak

1

Myślę, że możesz przewidzieć wiele problemów, które mogą z tego wyniknąć, i opracować szczegółowy plan na wypadek, gdybyś kiedykolwiek musiał odejść z firmy.

Jednym z problemów, który mógłby zepsuć prace, byłoby odejście, a dział HR musiałby poszukać twojego zamiennika. Biorąc pod uwagę, że albo aktywnie starają się zrozumieć, co zrobiłeś, i zatrudniają zgodnie z potrzebnymi umiejętnościami - lub - po prostu spójrz na oryginalny dokument określający zasady IIS / ASP.NET / itp. i ślepo zatrudnić kogoś z tymi umiejętnościami, aby utrzymać kod LAMP (zgodnie z zasadą „bo tak mówi”), myślę, że ten drugi jest znacznie bardziej prawdopodobne.

Najłatwiej (na dłuższą metę) zrobić to, co zalecił fabianhjr i zmienić standard. Zmień go tak, aby obejmował zarówno Microsoft, jak i LAMP, jeśli są odporne na pełny przełącznik.


w rzeczywistości oficjalne publikowanie mojej pracy nie wymagało żadnej wiedzy programistycznej / programistycznej.
Drew Chapin

1
@druciferre Tym bardziej należy szanować wszystko. Jeśli ten projekt stanie się znaczną częścią twojej odpowiedzialności za pracę i zdarzałyby się sytuacje, w których można by go odreagować na podstawie twojego oryginalnego opisu pracy, byliby w potoku (nie że w tym momencie będziesz musiał się tym przejmować, ale tylko dla ze względu na nich).
jonsca

1

W takim przypadku musisz postępować zgodnie ze standardem. Jeśli wydaje się, że standard nie ma zastosowania, musisz porozmawiać ze swoim przełożonym na temat robienia tego w innym języku.

Ze wszystkich standardów, których należy przestrzegać podczas rozwoju, osobiście uważam, że wybór języka jest najważniejszy . Ignorując standardowy wybór języka na korzyść tego, który czujesz się bardziej komfortowo, pozostawia współpracowników i / lub następców w strumieniu bez wiosła, ponieważ mogą oni nie mieć umiejętności do pracy nad twoim projektem. Decyzje dotyczące zatrudnienia w firmie są oparte na wyborze języka, więc takie decyzje mogą mieć znaczący wpływ. Wprowadzenie kolejnej platformy / języka może zmusić firmę do trudnej sytuacji, gdy zaczną zatrudniać innych ludzi.

Poza językiem musisz wziąć pod uwagę wewnętrzne wsparcie dla serwera LAMP. Kto będzie administrował Apache? Co powiesz na MySQL? Czy oprogramowanie firmy działa na innej bazie danych? Czy administratorzy będą gotowi administrować nową platformą. Nawet jeśli planujesz administrować tymi usługami, obowiązki mogą ostatecznie spoczywać na kimś innym. Jeśli planujesz administrować usługami, czy administratorzy sieci / serwerów pozwolą ci to zrobić?

Konsekwencje wprowadzenia innej platformy mogą być szerokie i głębokie. Nieprzestrzeganie tego standardu może mieć wpływ na wiele osób oprócz ciebie. Nawet jeśli jesteś bardziej biegły w LAMP niż ASP.NET, budowanie na tej platformie może w dłuższej perspektywie kosztować Twoją firmę znacznie więcej. Kluczem tutaj jest komunikacja z menedżerem i zrozumienie skutków ostatecznej decyzji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.