Oryginał: Co mówi twój szef? Dowiedz się - zrób to.
Poproszono mnie o rozwinięcie powyższego:
Po pierwsze, myślę, że masz więcej niż jeden dylemat:
- Czy należy „naprawić” kod innej osoby?
- Czy wdrożenie (od A) innych osób jest na tyle złe, że należy je zastąpić czymś innym?
- Czy obfuscator (tutaj B) będzie lepszy do tego „osadzania licencji w naszej aplikacji”?
Po pierwsze, patrząc z przypadku biznesowego, problem JEST rozwiązany. A jest na miejscu i - najprawdopodobniej - „wystarczająco dobre” rozwiązanie problemu. Twoja firma może być z tego zadowolona w zasadzie tylko wystarczająco chroniona, że do jej przełamania potrzebny jest celowy wysiłek.
Oznacza to, że nawet jeśli ci się nie spodoba (i zaufaj mi, zobaczysz o wiele gorzej w swojej karierze ) robi to, co jest potrzebne. Dlatego, gdy problem JEST rozwiązany, nie powinieneś „po prostu to robić”, ale raczej przekonać osobę odpowiedzialną za powierzenie swojej pracy długoterminowejcena tego wdrożenia będzie wystarczająco wysoka, aby uzasadnić wycofanie i wybór zapasowego zaciemniacza. Będzie to wymagało od ciebie sporo przygotowania, a także zauważ, że zaciemniacze mają również wady, które musisz znać (inne odpowiedzi obejmują to dobrze). Np. Ślady na stosie nie nadają się do natychmiastowego użycia itp. Wszystko zależy od tego, jak ważne jest unikanie piractwa. Pamiętaj, że najtrudniejsze do złamania są te, które wymagają klucza sprzętowego do uruchomienia i najprawdopodobniej są droższe, niż klienci tego lubią.
Dlatego decyzja nie należy do Ciebie, ponieważ Twoja firma musi wykorzystać dodatkowe zasoby, aby przejść do B. Dlatego musisz przedstawić swoje obawy osobie odpowiedzialnej, wyjaśnić tę i wszelkie inne długoterminowe obawy wystarczająco dobrze, aby mógł zrozumieć, dlaczego uważasz to za gorsze od twojej sugestii. Następnie pozwól mu podjąć decyzję i bez względu na to, co się okaże, uszanuj ją i postępuj zgodnie z nią w sposób profesjonalny. Zauważ, że pierwotny autor najprawdopodobniej i tak będzie musiał go zachować, gdy go napisał, a jeśli odejdzie lub nie będzie tego chciał, możesz ponownie poruszyć tę sprawę.
Innymi słowy: co mówi twój szef? Dowiedz się - zrób to.
Zauważ też, że byłoby inaczej, gdybyś poruszył ten problem wcześniej, tak że zmarnowane pieniądze za czas poświęcony na wdrożenie A były mniejsze. Innymi słowy, kiedy miał zostać dokonany wybór między A i B.
Na koniec chciałbym skomentować twoje pytanie dotyczące „naprawiania kodu innego narodu”. To nie jest mała poprawka do istniejącego kodu (co uważam za dobre i zachęcane, szczególnie po przeprowadzeniu testów). Jest to destrukcyjne wycofywanie i ponowna implementacja, a nawet w zespołach posiadających wspólne prawa własności do kodu nie byłoby to do zrobienia - przynajmniej dla mnie - bez uprzedniej zgody.
Mam nadzieję, że to wyjaśnia mój punkt widzenia.