Niedawno skontaktowała się ze mną lokalna agencja reklamowa z ofertą pracy. Wprowadzają wszystkie internetowe / interaktywne prace programistyczne i dodają do swojego zespołu programistów.
Mam już dość mojej wygodnej, ale nudnej pracy w firmie i intryguje mnie to stanowisko.
Pracowałem tylko dla sklepów z oprogramowaniem, w których głównym przedmiotem działalności było wytwarzanie oprogramowania, martwię się, że nie mogą kłaść nacisku na praktyki oprogramowania wysokiej jakości, ponieważ rozwój nie jest przedmiotem ich działalności.
Czy ktokolwiek z doświadczeniem w porównywaniu / porównywaniu pracuje w firmie programistycznej z firmą, która akurat ma własny zespół lub dział rozwoju oprogramowania?
development-environment
Mike Vormwald
źródło
źródło
Odpowiedzi:
Będzie to zależeć od firmy. Ale zazwyczaj, jeśli nie jest to ich głównym celem, oprogramowanie będzie gorszej jakości. Proces, jeśli taki istnieje, będzie mniej rygorystyczny. Testowanie nie istnieje. A praca ogólnie mniej wymagająca technicznie.
Będą chcieli, żeby to działało i działało teraz, i to będzie wystarczająco dobre.
Ale niektóre miejsca są popularne w tworzeniu oprogramowania, nawet jeśli są sklepami typu mom & pop, które robią coś zupełnie innego. Zależy to od tego, czy kierownictwo biznesu jest otwarte na dobre pomysły, kierownictwo technologiczne ma wystarczającą wiedzę, aby zrobić to dobrze, i ma ludzi, którzy mogą wyjaśnić dobry pomysł. Który możesz być ty.
Wywiad z firmą. Zapytaj ich, czy wiedzą / przestrzegają testu Joela. Większość z nich to dobre punkty. Sprawdź, czy rozumieją dług techniczny i mityczny miesięcznik. Kto jest twoim kierownikiem projektu, jakiego procesu używa i jaki jest geek?
źródło
Istnieje OGROMNA różnica. W pierwszym przypadku jesteś częścią centrum zysków. W tym drugim przypadku jesteś częścią centrum kosztów. Zgadnij, który z nich ma lepsze leczenie?
Pracuję teraz dla firmy programistycznej i jestem O wiele szczęśliwszy niż podczas mojej ostatniej pracy, gdzie przez cały czas były to zwolnienia i outsourcing, a programiści byli postrzegani jako łatwo wymienialne widżety (zamiast serca firmy).
źródło
Programiści wciąż są programistami. To, że głównym produktem firmy nie jest oprogramowanie, nie oznacza, że programista nie potrzebuje tych samych udogodnień.
źródło
Pracowałem w dziale IT dużych firm, opracowując oprogramowanie do użytku wewnętrznego; Pracowałem w firmach tworzących oprogramowanie na rynek; i pracowałem w agencjach zajmujących się tworzeniem stron internetowych dla klientów.
I nie powiedziałbym, że istnieje jakakolwiek różnica między tymi różnymi firmami, jeśli chodzi o znaczenie zwiększenia wydajności.
Utrzymanie produktywności programistów ma zasadnicze znaczenie, niezależnie od tego, jaki rodzaj rozwoju robią ci programiści. I chciałbym powiedzieć, że utrzymanie programistów szczęśliwy i utrzymanie ich pracy dla Ciebie jest jeszcze bardziej istotne, gdy są programiści konserwacji w dziale IT firmy bez oprogramowania.
źródło
Różnica w dużej mierze zależy od samej firmy; Pracowałem w dobrych firmach niebędących programistami i okropnych firmach programistycznych. Średnio jednak oto, co znalazłem:
Firma niezwiązana z oprogramowaniem
Nacisk kładziony jest na szybkie wykonywanie zadań, bez zastanowienia się nad jakością lub długoterminową konserwacją. Deweloperzy są zazwyczaj technicznie ignorantami wykraczającymi poza to, co robili w przeszłości lub w czasie swojej pracy w firmie, i często próbują wprowadzić nowe koncepcje (ORM, zasady SOLID, TDD itp.) Spotka się z dezorientacją lub natychmiastowym zwolnieniem. Ludzie skupiają się bardziej na „holowaniu linii firmy”.
Firma programistyczna
Nacisk na wykonywanie zadań bez utraty jakości. Współpracownicy są bardziej skłonni do aktualizowania technologii (niezależnie od tego, czy mogą z niej korzystać w pracy) i często sprawdzają, jak mogą zintegrować nowe pomysły lub ramy z codzienną rutyną, aby ulepszyć oprogramowanie. Jeśli jeszcze nie są zaznajomieni i używają takich pojęć, jak TDD, ORM, SOLID itp., Prawdopodobnie słyszeli o tym i chętniej je oceniają.
Znów jest to zależne od firmy. Pracowałem w firmie niezwiązanej z oprogramowaniem z niezwykle zwinnym zespołem, który obejmował TDD i ORM i nauczył mnie wiele o właściwej inżynierii oprogramowania, a także pracowałem w małej firmie programistycznej, która napisała kod spaghetti VBScript najgorszego rodzaju i ma ponad 50 programistów że każda z nich musiała pracować na różnych stronach, aby uniknąć zepsucia rzeczy, i mnóstwo biurokracji nawet dla drobnej zmiany. Jednak im mniej firma zewnętrznie polega na oprogramowaniu, tym bardziej prawdopodobne jest, że środowisko będzie bardzo ubogie w tworzenie oprogramowania.
źródło
Pracowałem jako jedyny programista w grupie osób niebędących programistami i myślę, że w tym przypadku niezależność jest jeszcze ważniejsza. Gdy nie masz dziesiątek osób korzystających z tych samych narzędzi, musisz podjąć znacznie więcej decyzji - jakiego języka będziesz używać, jakiego kompilatora, jakich serwerów itp. Samotni programiści potrzebują więcej swobody w instalowaniu, ocenie i administrowaniu oprogramowaniem jest to oczywiste w ustawieniach grupowych.
źródło
Jedną różnicą na pewno będzie mniejszy nacisk na koszty ogólne i biurokracja, które musisz przejść w sklepie z oprogramowaniem dla firm. Przekonasz się, że będziesz mieć znacznie bardziej szczegółową kontrolę nad wszystkimi aspektami swoich projektów.
Jednym z pro jest to, że może to być odświeżające ...
Okazało się to dla mnie okropnie, ale może tak być, ponieważ źle wybrałem. Jednym z OGROMNYCH oszustw jest to, że nie jesteś już przywiązany do zwykłego biznesu, a zamiast tego jesteś administratorem. Kontrolerzy budżetowi potraktowali mnie, jakbym osobiście pobierał pieniądze z własnych portfeli, i że tak powiem, zaczęli „bić mnie jak wynajęty muł”. Dla mnie było to irytujące i wyczerpujące doświadczenie, dlatego podczas wywiadu powinieneś uważnie szukać oznak tego rodzaju postawy.
źródło
Jest już kilka świetnych odpowiedzi, ale chciałbym odnieść się do linku do transkrypcji drugiej części wykładu, który Joel Spolsky wygłosił na Uniwersytecie Yale:
Joel Spolsky - Talk At Yale Part 2 of 3
Tam mówi o różnicy między programistami „wewnętrznymi” a programistami pracującymi w firmach zajmujących się oprogramowaniem / technologią.
Jego trzy główne punkty to:
Kiedy jesteś programistą wewnętrznym, nigdy nie możesz robić rzeczy we właściwy sposób. Zawsze musisz robić rzeczy we właściwy sposób.
Jako programista wewnętrzny, gdy jakieś oprogramowanie jest „wystarczająco dobre”, przestajesz nad nim pracować. Gdy tworzysz „produkty” oprogramowania, czynisz je pięknymi.
Gdy jesteś programistą w firmie programistycznej, praca, którą wykonujesz, jest bezpośrednio związana ze sposobem, w jaki firma zarabia pieniądze. Oznacza to, po pierwsze, że zarząd troszczy się o ciebie.
Osobiście przez całą karierę pracowałem zarówno w firmach programistycznych, jak i firmach innych niż oprogramowanie i chociaż zawsze są wyjątki od każdej reguły, zgadzam się z punktami Joela, ponieważ większość firm wydaje się być z nimi zgodna.
źródło
Jedną z głównych różnic jest to, że pracując w sklepie z oprogramowaniem, prawdopodobnie pomagasz w tworzeniu miejsc pracy w firmie. Praca w dziale programowania. w innym typie firmy oznacza to, że piszesz oprogramowanie zastępujące ludzi. Radzenie sobie z przygnębiającą rzeczywistością. Mimo to agencja reklamowa może być zupełnie inną bestią. Przypuszczam, że bardziej jak sklep internetowy w innej firmie.
źródło
Cóż, na podstawie moich obserwacji istnieją co najmniej dwa przypadki trzymania się granic firmowych oprogramowania w kwestiach przetrwania zawodowego .
Pierwszy przypadek dotyczy całkowicie kodowania - daj mi 80 ... 90 ... 100% czasu na kodowanie lub umrę . W sklepach z oprogramowaniem jest to prawie oczywiste, jakby wszyscy wiedzieli, jak się tam dostać, ponieważ, no cóż, ponieważ wszyscy to robią. Ale na zewnątrz istnieje bardzo wysokie ryzyko, że nie uda się tam dotrzeć. Można dostać nawet 50, 40, 30% (moje osobiste obciążenie kodowaniem spadło kiedyś do 20% - bez żartów, zmierzyłem w JIRA !) To nie dlatego, że „oni” nie chcą, żebyś kodował - nie, oni chcą, ale , ale ... mogą po prostu nie wiedzieć jak.
Drugie „śmiertelne ryzyko” ma miejsce, gdy ktoś ma poważne problemy z komunikacją. Może to być kłopotliwe nawet w sklepach z oprogramowaniem, prawda, ale przynajmniej istnieją duże szanse na przetrwanie i prowadzenie przyjemnego, produktywnego życia bez zakłócania interakcji. :) Jednak w firmach niebędących programistami takie szanse są znacznie mniejsze - wręcz przeciwnie, jest prawie nieuniknione, że w końcu trzeba będzie włożyć wiele wysiłku w edukację jakiegoś outsidera w podstawach IT tylko dlatego, że inaczej nie będzie możliwe wykonanie pracy.
Poza dwoma wymienionymi wyżej przypadkami nie znam innego mocnego powodu, by ściśle blokować się przed firmami produkującymi oprogramowanie. Teraz, którą stronę preferować? o ile wiem, jest to bardziej kwestia gustu, co to za zabawa, która kliknie bardziej w ciebie.
Obie strony oferują własne, odrębne formy zabawy. Niełatwo to opisać.
Powiedziałbym, że firmy produkujące oprogramowanie są bardziej zabawne dla osób dążących do „wysokich ocen”, podczas gdy firmy zewnętrzne dają dreszczyk emocji tym, którzy dążą do „dużej różnicy”. Myślę o tym w ten sposób ( poniższe numery notatek wymyślono tylko w celu uproszczenia robienia racji ) ...
Należy zauważyć, że szanse na uzyskanie 500% wzrostu w firmie produkującej oprogramowanie są nieznacznie małe w porównaniu - i odpowiednio, szanse na uzyskanie 100 funkcji są nieznacznie małe na zewnątrz .
Najwyższe oceny z jednej strony poszerzają naszą wiedzę na temat ograniczeń zawodowych, poszerzając naszą wiedzę o tym, jak robić rzeczy lepiej. Duża różnica po drugiej stronie ma głęboki wpływ na kulturę firmy, poprawiając wiedzę osób postronnych, jak to zrobić właściwie.
Teraz, jeśli masz wyraźne preferencje dla jednego lub drugiego, wiesz, którą stronę wybrać. Lub, jeśli jesteś niezdecydowany, po prostu swobodnie przesuwaj się między nimi, jak chcesz. :)
źródło
Uznanie dla odpowiedzi centrum kosztów i zysków.
Byłem w obu i zdecydowanie wolałbym firmę programistyczną. Ponieważ twoja korelacja z zyskami jest bardziej oczywista, bardziej prawdopodobne jest, że będziesz mieć odpowiednią kompensację opartą na wydajności i ogólną kulturę korporacyjną, która obejmuje osobowość twórców oprogramowania. Często przekłada się to na mniejszą politykę biurową, brak konieczności korzystania z dokerów, oczywiste ścieżki kariery i mniej BS. Ale jeśli bardziej podoba ci się stały 9-5, być może mniej wymagający, nie nowatorski koncert niż czasem korporacja IT jest lepszym rozwiązaniem - nie będąc tu cynicznym, rozumiem niektórych ludzi jako bardziej typową równowagę między pracą a życiem prywatnym kosztem inne rzeczy. Z mojego doświadczenia wynika, że ogólna jakość programisty jest znacznie lepsza w firmie produkującej oprogramowanie; w przeciwieństwie do przeciętności, która często przenika IT korporacji. Wiem, że są wyjątki
źródło
IT jest częścią grupy wsparcia w firmach niebędących programistami. Programiści opracowali aplikacje, które pomogą firmie o wiele lepszą produktywność, szybsze transakcje, wsparcie techniczne ... Niektóre firmy niebędące programistami (produkcja / przemysł etch) oferują szkolenia i inne rzeczy dla swoich programistów, ale wielu z nich nie jest, więc zlecali to programistom w innych firmach.
źródło
Wolę porównać pracę w dziale IS z działem rozwoju produktu firmy, która sprzedaje oprogramowanie. Aby wyjaśnić każdą stronę i podać niektóre z nich, z pewnymi poprawkami formatowania:
Dział IS
Firma może produkować sprzęt, oprogramowanie, samochody lub cokolwiek innego, ale kluczem jest to, że istnieje wewnętrzny dział odpowiedzialny za systemy, z których firma korzysta na co dzień i na co dzień. Tutaj mogą istnieć struktury takie jak ITIL, które mogą próbować wnieść pewną dojrzałość do procesów, które dział prowadzi w ramach tego działu. Faceci z infrastruktury, którzy zapalają światło, a drugą częścią są faceci ds. Rozwoju i analiz, którzy wprowadzają ulepszenia , ulepszenia i nowe systemy. Tutaj projekty mogą mieć różną długość, choć w niektórych przypadkach wdrożenie systemu może zająć lata ze względu na fazy wdrażania, jeśli jakiś duży system jest wymieniany, np. CMS, CRM lub ERP.
Czasami miałem wrażenie, że jestem trybikiem w maszynie, a na innych fajnie jest być częścią kręgosłupa firmy w przypadku niskich i wysokich pozycji takiej pozycji. Nie przechwalam się zbytnio ludźmi spoza firmy, ponieważ większość mojej pracy dotyczy wewnętrznych systemów, które nie mają być publicznie dostępne ani przeglądane. Tutaj mogą znajdować się zgłoszenia do pomocy technicznej, w których można mieć do czynienia z dostawcami oprogramowania, ponieważ ktoś ma problem, który niekoniecznie jest czymś, co łatwo jest ustalić, co spowodowało błąd, więc dział IS musi skontaktować się z kimś innym aby pomóc rozwiązać problem. W innych przypadkach może być tak, że niektóre dostosowania muszą zostać zmienione ze względu na zmieniające się wymagania lub reguły biznesowe.
Firma programistyczna
Tutaj działa to na to, co firma sprzedaje bezpośrednio, a zatem istnieją pewne duże różnice zasad. Po pierwsze, klienta tutaj nie można zapakować tak mocno, jak sprawa działu IS. W dziale IS może być tylko kilku użytkowników systemu, więc zarządzanie może zająć się wieloma dziwnymi przypadkami, w których jeśli ktoś celowo zdecyduje się na niewłaściwe użycie narzędzia, nie zawsze można temu zapobiec. W firmie produkującej oprogramowanie nie ma takiej siatki bezpieczeństwa. Jeśli ktoś pobierze twoje oprogramowanie i uda mu się znaleźć sposób, aby zrobić z nim coś raczej destrukcyjnego, firma może uzyskać duże podbicie oka. W tym przypadku może się pochwalić to, co zrobiłem, ponieważ może być fajna funkcja pokazania znajomemu lub krewnemu, jeśli chcą dowiedzieć się nieco więcej o tym, co robię.
Należy tu zauważyć, że mogą istnieć firmy, które są integratorami systemów, aby wprowadzić duże, konfigurowalne oprogramowanie dla przedsiębiorstw, które współpracuje z ludźmi z działów IS przy implementacji rzeczy za milion dolarów, a także tych, które działają bezpośrednio dla firmy produkującej samo duże oprogramowanie. Mogą też istnieć dostawcy usług aplikacyjnych, którzy przedstawią się tutaj, ponieważ sprzedają usługę zbudowaną głównie z oprogramowania. Na przykład Google może mieć dział IS, a także wielu programistów, nawet jeśli nie pójdzie do sklepu, aby kupić DVD z oprogramowaniem Google, przynajmniej nie sądzę, że to widziałem znać wiele produktów Google online, z których można dość łatwo korzystać. Może to pozwolić na pewną specjalizację, ponieważ nie jest
źródło
Niedawno pracował w dużej amerykańskiej firmy bez oprogramowania gdzie kolega usłyszał głos CEO „nie daję af *** o oprogramowaniu Prowadzę * *”. Z mojego doświadczenia wynika, że jest to norma dla kursu. Prawie nieuchronnie pojawią się problemy, które wydają się oczywiste dla zespołu programistów, ale zarządcy oprogramowania nie będą nawet o tym myśleć.
źródło