Obecnie wybieram między dwoma realnymi projektami / rozwiązaniami oprogramowania. Rozwiązanie 1 jest łatwe do wdrożenia, ale zablokuje niektóre dane w zastrzeżonym formacie i trudno będzie je później zmienić. Rozwiązanie 2 jest trudne do wdrożenia, ale później będzie o wiele łatwiejsze do zmiany.
Czy powinienem zdecydować się na YAGNI, czy powinienem uwzględnić koszty wyjścia w procesie decyzyjnym? Lub inaczej: czy koszt wyjazdu jest częścią TCO?
Zastanawiam się, czy nie wrócić do klienta z pytaniem, czy jego zdaniem koszty wyjścia są istotne, ale chciałbym wiedzieć, co społeczność myśli w pierwszej kolejności.
PS Czy koszt wyjścia jest prawidłowy?
design
architecture
terminology
decisions
dvdvorle
źródło
źródło
Odpowiedzi:
Koszt wyjścia jest częścią całkowitego kosztu posiadania ( T oznacza sumę całkowitą ), ale trudno go ustalić, chyba że z góry wiesz, jak długo system będzie trwał. Innymi słowy, jeśli wiesz, że system będzie używany dokładnie przez rok, a jego wycofanie za rok będzie kosztować 52 000 USD, możesz być pewien, że dodasz 1000 USD tygodniowo do budżetu operacyjnego na jego pokrycie.
Ten model wychodzi z okna, gdy nie znasz żywotności systemu. System może teoretycznie pozostawać w użyciu na zawsze, co oznacza, że nie będzie pieniędzy wydanych na jego zamknięcie. Wszystko, co weźmiesz teraz pod uwagę, będzie w dzisiejszych dolarach, a te liczby mogą być bezsensowne za pięć lat od teraz ze względu na zmiany stawek pracy i technologii, które ułatwiają (lub utrudniają) ten proces.
Najlepiej poinformuj swojego klienta o tym, co jest potrzebne, aby odejść od systemu i pozwól mu wziąć to pod uwagę przy podejmowaniu decyzji o wymianie, gdy nadejdzie ten czas.
(A teraz, po napisaniu tej odpowiedzi, mogę głosować za jej zamknięciem jako nie na temat).
źródło
YAGNI to świetna zasada na swoim miejscu, ale nie jestem pewien, czy powinna mieć zastosowanie w tym przypadku. Szacujesz tutaj przyszłe koszty, co powinno obejmować rozważenie przyszłych zmian wymagań. Gdybyś pisał implementację, byłaby to inna historia!
Sugeruję wykonanie kalkulacji kosztów, ale upewnij się, że klient rozumie, dlaczego to zrobiłeś. Jeśli nie są zbyt techniczni, nie zdziw się, jeśli powiedzą coś w stylu „to nie może być dobre rozwiązanie, jeśli już myślisz o użyciu czegoś innego!”
Podczas przygotowywania / prezentacji szacunków kosztów należy wziąć pod uwagę bardziej szczegółowe aspekty:
źródło
Pracując na podstawie komentarza dotyczącego sytuacji w pliku Excel, patrzę na to jako:
Uważam, że YAGNI stosuje się do tego etapu analizy; pamiętaj, aby zachować wiedzę o bieżącej strukturze, ale nie wdrażaj jeszcze analizy.
Ponadto przeanalizowana struktura danych może nie być tak elastyczna, jak myślisz; wymagania mogą również dotyczyć przechowywania różnych informacji / plików, co oznaczałoby, że musisz zaktualizować / rozszerzyć swoje tabele.
źródło
Jeśli nie masz 95% pewności, zostanie to zmienione w przyszłości - Rozwiązanie 1 - YAGNI =)
Z pewnością zależy to od twoich klientów i twojego doświadczenia w programowaniu czegoś dla tego klienta.
źródło
Z mojego doświadczenia wynika, że wymyślanie na nowo kół zajmuje więcej czasu niż myślisz, a koła zewnętrzne są łatwiejsze do wymiany. Oba rodzaje kół wyglądają gorzej po zakupie niż wtedy, gdy podejmujesz decyzję.
Jeśli naprawdę uważasz, że numer 1 jest łatwy do wdrożenia i zastanawiasz się, jak długo potrwa numer 2, wysłucham tego pytania. Zaimplementuj teraz numer 1 i pomyśl o większym projekcie. Pomoże ci to, jeśli później zechcesz to odkryć na nowo.
I odwrotnie, jeśli # 1 nie wygląda już tak łatwo, jak się spodziewałeś, przeskocz do # 2.
źródło