Czy istnieje heterogeniczne środowisko programistyczne?

10

Współpracuję z zespołem programistów, którzy mają wybór co do obsługiwanego sprzętu i oprogramowania. Uważamy, że ten scenariusz pozwala nam zobaczyć szeroką gamę systemów docelowych przed testowaniem. Z naszego doświadczenia wynika, że ​​wkrótce po wprowadzeniu problemu znajdujemy wiele dziwnych problemów w różnych przeglądarkach i systemach operacyjnych. Ale to tylko doświadczenie jednej grupy.

Ta różnorodność systemów jest trudna dla naszych zespołów ds. Infrastruktury i bezpieczeństwa, dlatego często pojawia się jako problem.

Czy bardziej korzystne jest posiadanie jednorodnego lub heterogenicznego środowiska programistycznego w zespole programistów?

Ben
źródło
1
Większość problemów związanych z programowaniem, takich jak ta, nie jest autorytatywnie badana. Jeśli szukasz sposobu, aby przekonać swoich przełożonych lub współpracowników, musisz znaleźć inny sposób. To powiedziawszy, spójrz tutaj: netlib.org/utk/papers/practical-hetro/node2.html
Robert Harvey
Myślę, że warto samodzielnie przetestować grupę. W ten sposób możesz sprawdzić, czy utrzymasz korzyści dla dewelopera, gdy będziesz musiał korzystać z jednorodnego środowiska, a także określisz, czy zyskujesz korzyści w zakresie bezpieczeństwa i infrastruktury, które według zespołów otrzymają. Nie chodzi o to, że te rzeczy są proste, ale znalezienie dobrych programistów jest trudne i kosztowne, więc nie jestem pewien, czy te inne zespoły chcące ulepszyć swoje obszary są tak naprawdę tylko ogonem machającym psem.
JeffO
1
Doskonałe pytanie, na które ostatecznie powinni odpowiedzieć wymagania dotyczące produktu / usługi oraz zarządzanie znane z korzyści i kosztów opisanej heterogeniczności. Z mojego doświadczenia wynika , że niepotrzebna różnorodność powoduje wzrost kosztów, szczególnie gdy jest to interesujące odwrócenie uwagi od nudnych wymagań. Utrzymanie różnorodności technologii wiąże się jednak z pewnym kosztem, gdy twórcy wyruszą na kolejne wyzwanie. Interesują mnie również powiązane studia przypadków. +1
bvj
6
Wiele sklepów, które odniosły sukces, pozostawia programistom bezpieczeństwo rozwoju i infrastrukturę. Prześlesz sprawdzony kod do repozytorium i nie ma znaczenia, czy Twój laptop został zhakowany, ponieważ wiemy, że twoje źródło jest czyste. Możemy to zrobić, ponieważ nie ufamy Tobie bardziej niż temu, kto włamał się do Twojego laptopa. Ale ponieważ pracujemy w ten sposób, możesz mieć root. Pracowałem w obie strony. Wolę rootować. Zaletą heterogenicznego rozwoju jest to, że jest to ból dla ludzi próbujących zapuścić korzenie.
candied_orange
2
Sugeruję, że sam fakt, że Twój zespół woli wybierać własne środowiska, jest w pewnym stopniu

Odpowiedzi:

3

Jedną z zalet jest to, że napotykasz i musisz rozwiązać problemy dotyczące zgodności i rozbieżności między platformami na wczesnym etapie procesu programowania. Wszyscy są przyzwyczajeni do radzenia sobie z takimi małpimi kluczami i przeszkodami.

Widzisz również wadę takich rozbieżności: środowisko jest trudniejsze do skonfigurowania, utrzymania, zabezpieczenia i rozwoju z powodu tych rozbieżności. Wszyscy muszą wcześnie i często pracować nad kwestiami rozbieżności. Uwolnienie Małpy Chaosu na samym początku może być dużym odciągnięciem uwagi od robienia postępów.

Z mojego doświadczenia wynika, że ​​kłopoty z rozbieżnością nie są warte wysiłku, chyba że pracujesz nad produktem, który musi być wieloplatformowy. Ale jest to wezwanie do osądu, które różne zespoły muszą zrobić dla siebie. Wolę mieć przynajmniej odrobinę identyczności w moich zespołach projektowych - ale w rzeczywistości jest to raczej pragnienie niż coś, co mogę narzucić. Niektórzy ludzie używają Windowsa, inni macOS, inni smakują Linuksa. Pomnóż ten czas przez wszystkie narzędzia, z których programiści mogą chcieć korzystać.

Możesz ustanowić niektóre podstawowe standardy projektu, takie jak Python 3.5, PostgreSQL 9.5+, potok zasobów oparty na gulp, git, Github, rebasing odgałęzienia ... z którymi wszyscy muszą się dostosować. Pomaga to zmniejszyć rozbieżność, a tym samym czas / wysiłek wymagany do jej dostosowania i pokory. Im bardziej korporacyjna i blokująca Twoja organizacja, tym więcej standaryzacji i powszechności możesz nalegać. Deweloperzy są jednak metaforycznymi kotami, których nie da się znieść. Dlatego utrzymywanie rozbieżności „na poziomie tępego ryku” jest często najlepsze, co możesz praktycznie zrobić.

Jonathan Eunice
źródło
Nie sądzę, aby była to dobra odpowiedź, ponieważ PO wyraźnie zapytał o niektóre badania i dokumenty, a nie osobistą opinię.
KjMag
1
@KjMag Serdecznie zapraszamy do wyrażenia opinii. To pytanie zadawano mi wiele razy na przestrzeni lat, w tym przez zespoły korporacyjne i rządowe dobrze płacące za odpowiedź. Witryny Stack Exchange są zasadniczo skonfigurowane w celu gromadzenia i dzielenia się doświadczeniami pochodzącymi z tłumu. To jest moje. Jeśli chcesz przeprowadzić pełne wyszukiwanie raportu z badań i opublikować swoją bibliografię, odwiedź stronę.
Jonathan Eunice
@KjMag z prośbą o badania i prace jest tutaj nie na temat i zredagowałem to bez pytania. Ta odpowiedź skorzystałaby z niektórych linków zewnętrznych, ale jest samowystarczalna i „użyteczna”.