Jak radzić sobie z postawami ad hoc?

13

Dołączyłem do zespołu programistów sześć miesięcy temu. Ludzie są mili, wszystko jest dobrze. Ale coraz częściej obserwuję sposób myślenia ad hoc. Rzeczy szybko się naprawiają, kosztem przyszłej użyteczności, niewiele jest testów, a dwie osoby z radością przyznają, że lubią nosić tę wiedzę w głowie, zamiast ją zapisywać.

Jak sobie z tym poradzić? Chciałbym dawać przykład, ale czas jest ograniczony - lubię tworzyć i wdrażać rzeczy. Ale obawiam się, że nastawienie ad hoc zaraża mnie i zamiast dążyć do jasności i prostoty w projektowaniu i kodzie - co nie jest łatwe do ustalenia - wpadam w drenaż niekończącej się spirali hacków na hackach - co nie outsider może odłączyć - tylko ze względu na harmonogram i kierownictwo.

Rotian
źródło
1
Sugeruję kopnięcie, aby spowodować brak zdolności do zachowania wspomnień. Dokumentacja jest niezbędna dla każdego długowiecznego systemu ... nawet jeśli nie jest formalna.
Rig
14
Witamy w tworzeniu oprogramowania!
yannis
@YannisRizos, nie, nie, nie! ;)
Rotian
4
@Rotian To prawie wymagane czytanie: joelonsoftware.com/articles/fog0000000332.html . Trochę przestarzały, ale wciąż świetny zasób i prawdopodobnie wart sam w sobie jako odpowiedź.
K.Steff
Mówiąc szerzej, polecam „Uncle Bob” / Clean Code / i / The Clean Coder /. Nie zgadzam się ze wszystkim, co mówi w tych książkach, ale są bardzo dobrym jedzeniem do namysłu. Z pewnością otworzyły mi oczy!
Michael Scott Shappe

Odpowiedzi:

10

Znasz już część odpowiedzi: musisz dawać przykład. Musisz także czuć się komfortowo z faktem, że twoje „przywództwo” może zostać zignorowane, że twoi koledzy będą nadal robić rzeczy tak, jak zawsze to robili - albo dlatego, że cieszy szefa, albo dlatego, że sami cenią sobie celowość nad długoterminowa łatwość konserwacji.

W końcu musisz pozwolić swoim wynikom mówić same za siebie. Czy nie dotrzymałeś terminu o trzy dni, ale uratowałeś zespół ds. Kontroli jakości przynajmniej tyle zaplanowanych dni testowania, ponieważ testowałeś swój rozwój i działa on w dużej mierze zgodnie z planem? To jest zwycięstwo.

Ostatecznie jednak, jeśli nie masz co najmniej pewnego stopnia wpisowego do zarządzania dla tego rodzaju kompromisu, po prostu jesteś w złym otoczeniu i musisz znaleźć jeszcze jeden czynnik sprzyjający dobrym praktykom. Złe praktyki kształtują nawyki, więc im szybciej znajdziesz sposób na przetrwanie, lub zmienisz środowisko pracy na lepsze, tym lepiej.

Michael Scott Shappe
źródło
Doceniam twoją odpowiedź. Chyba dobrze znasz moje środowisko - postaram się ciężej pracować - a jeśli nie dostanę rzutu - rozejrzę się za czymś innym.
Rotian
2
+1. Bądź zmianą, którą chcesz zobaczyć w swoim zespole. Ustaw standard.
Scott C Wilson,
2
+1 za to, że wyniki mówią same za siebie. To w połączeniu z dawaniem przykładu jest najlepszym sposobem wpływania na pozytywne zmiany. Ludzie naturalnie chcą wykonywać dobrą robotę (w każdym razie większość), a jeśli widzą, że ktoś osiąga lepsze wyniki niż ich, prawdopodobnie zapytają o tajemnicę. I bardzo chętnie słuchają, kiedy proszą o własną wolę, niż gdy są proszone, niechciane.
Erik Dietrich,
@Rotian Oczywiście nie twoje specyficzne środowisko, ale tak, byłem tam i to zrobiłem. Najgorsze było to, że wtedy nawet nie do końca rozumiałem, jak źle było. Wiedziałem tylko, że coś jest subtelnie nie tak na głębokim poziomie i ostatecznie zdecydowałem, że to wystarczy, aby się wydostać. Dopiero w ostatnich latach mogłem wskazać konkretne praktyki, które powinni (lub nie powinni) robić.
Michael Scott Shappe
1

Nic?

Mam na myśli ograniczenia czasowe w biznesie. Może to być scenariusz, w którym czas wprowadzenia na rynek jest cenniejszy niż łatwość użytkowania w przyszłości.

Jeśli jesteś programistą zajmującym się rangą i zarządzaniem plikami, to ustalanie standardów i dbanie o architekturę produktu nie jest tak naprawdę twoim zadaniem (szczególnie za 2 miesiące). Państwo powinno dążyć do poprawy produkt jednak można (w tym zmiany kultury), ale nie kosztem alienacji swój zespół i / lub szefa. Będąc nowym facetem, który myśli, że wie lepiej, jest to szybki i łatwy sposób.

Chciałbym zapytać, dlaczego robisz te wszystkie poprawki szybkiego hacka? Czy to z powodu poprzednich szybkich poprawek do hacków? Łatwo jest więc zauważyć, że jeśli wszystko zostało zrobione „dobrze” w pierwszej kolejności ...

W końcu złe praktyki programowania prowadzą do konkretnego bólu. Jeśli ludzie myślą, że tego nie zrobią, wystarczy poczekać.

Telastyn
źródło
1
O ile rozumiem, problem nie polega na tym, że ci ludzie wprowadzają poprawki ad hoc ze względu na ograniczenia czasowe. Problem polega na tym, że nie uważają go za dług techniczny, który powinien zostać spłacony w przyszłości. To jak skakanie: możesz sobie poradzić przez jakiś czas bez wsparcia Ziemi, ale lepiej przygotuj się na lądowanie.
9000
@ 9000: OP twierdzi, że to dla harmonogramu i zarządzania, więc zgaduję (mam nadzieję), że to głównie presja czasu. Niedocenianie faktycznej pracy związanej z tworzeniem oprogramowania nie jest niczym niezwykłym.
Telastyn
1
Zgadzam się, że złe praktyki prowadzą do konkretnego bólu; ale konkretny ból nie zawsze prowadzi do zmian, których można oczekiwać w racjonalnym świecie. Z doświadczenia mogę powiedzieć, że istnieją menedżerowie, którzy nie nauczą się tego bólu i nie będą zachęcać do właściwych praktyk. Będą po prostu błąkać się, ponieważ zrobienie tego inaczej wymagałoby stawiania czoła SWOIM szefom i opowiadania się za poświęcaniem czasu na robienie tego „dobrze”, co nie zawsze jest na to przygotowane.
Michael Scott Shappe
@UncleMikey: Oczywiście. Ale jeśli Twoi menedżerowie są zbyt nieskuteczni, aby odpowiednio zaplanować, niewiele możesz zrobić.
Telastyn
@ 9000 i Telastyn - tak, myślę, że obie - pewna niewiedza o tym, że coś takiego jak dług techniczny naprawdę istnieje w połączeniu ze środowiskiem, które zachęca do obejścia z różnych powodów (np. Czas, nawyk itp.).
Rotian