Czy powinienem uwzględnić koszt wyjścia przy wyborze rozwiązania


10

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?


Czy możesz dodać, dlaczego według ciebie pierwsze rozwiązanie zablokuje dane i będzie trudne do późniejszej zmiany?
Jaap

Zasadniczo, czy wszystkie formaty nie są zastrzeżone, nawet te, które mają być „standardowe” lub „otwarte”? Yagni prawdopodobnie ma zastosowanie, jeśli format „zastrzeżony” jest łatwiejszy do wdrożenia, prosty w użyciu i / lub format defacto do wymiany.
JustinC

Bez wchodzenia w szczegóły; pomyśl o tym jak o umieszczeniu arkusza Excel (zaprojektowanego przez klienta) w systemie zarządzania dokumentami (rozwiązanie 1), w porównaniu do tworzenia odpowiednich tabel i GUI oraz generowania arkusza Excel na żądanie (rozwiązanie 2). Tyle że to nie jest Excel.
dvdvorle

Jednak prawdopodobnie nie wyklucza to zwrócenia uwagi na ten aspekt obaw w przedstawieniu wyboru i decyzji sponsorowi projektu.
JustinC

@JustinC no cóż, w końcu mówimy tutaj o gotówce. Czy na dłuższą metę taniej jest używać formatu „zastrzeżonego”, czy nie? To, co myślę, jest najważniejsze dla sponsora projektu
dvdvorle,

Odpowiedzi:


4

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).


Alternatywą dla kosztu wyjścia będącego częścią TCO tego rozwiązania byłoby to, że byłby on częścią TCO następnego rozwiązania. Teraz wiem, że to brzmi dziwnie, jeśli tak powiem, ale z mojego doświadczenia wynika, że ​​koszt likwidacji systemu stanowi część planu / budżetu następnego systemu, a nie planu / budżetu dla obecnego systemu. Czy to ma sens?
dvdvorle

1
Ma to dla mnie sens i do tego właściwie doszedłem. Nie da się tak naprawdę wyliczyć rzeczywistej sumy, dopóki wszystko się nie skończy.
Blrfl

Zgadzam się z trudnościami w dokładnym oszacowaniu „kosztów wyjścia”, myślę, że zapewnienie wartości jest opłacalne, nawet jeśli są w dzisiejszych pieniądzach. Porównaj „byłoby to trudne i czasochłonne” oraz „prawdopodobnie jutro kosztowałoby to od 25 000 do 50000 USD”.
vaughandroid

@Blrfl, co sprawia, że ​​to pytanie jest nie na temat?
neontapir

1
@neontapir: Istotą pytania jest tak naprawdę zarządzanie projektami; fakt, że chodzi o program, tak naprawdę nie ma znaczenia w programowaniu. To samo dotyczy równie łatwo przełączników telefonicznych lub pieców do pizzy.
Blrfl

2

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:

  • Jak prawdopodobne jest migrowanie danych do innego systemu w przyszłości?
  • Czy prawdopodobne jest, że dostawca rozwiązania zmieni własny format danych, aby migracja danych była łatwiejsza / trudniejsza w przyszłości? Jeśli tak, czy wpłynie to na twoje rozwiązanie?
  • Nawet jeśli nie chcesz później zmieniać danych, czy jest szansa, że ​​możesz chcieć je przedstawić / uzyskać do nich dostęp w inny sposób? Z mojego doświadczenia wynika, że ​​jest to dość powszechne!

1

Pracując na podstawie komentarza dotyczącego sytuacji w pliku Excel, patrzę na to jako:

  • nie zmienia bieżącego formatu (rozwiązanie 1)
  • w porównaniu do parsowania formatu teraz i przechowywania go w innym formacie (być może / mam nadzieję, że bardziej odpowiedni / gotowy na przyszłość) (rozwiązanie 1 + krok analizy, inaczej rozwiązanie 2)

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.


Dla jasności, obecnie nie ma rozwiązania (rozwiązanie 0, jeśli chcesz). Obecnie przechowują wszystkie informacje w plikach papierowych. Z całego serca zgodziłbym się z tą odpowiedzią, gdyby już korzystali z pliku „Excel” w systemie zarządzania dokumentami, ale tutaj nadal jest wybór.
dvdvorle

A może uważasz, że to nie ma znaczenia, ponieważ wdrożenie rozwiązania 1 jest tanie?
dvdvorle

Chodzi mi o to, że uważam, że jeśli rozwiązanie 2 można uznać za ulepszenie rozwiązania 1, ale to rozszerzenie nie jest obecnie absolutnie konieczne, zastosowanie ma YAGNI.
Jaap

Rozumiem, co masz na myśli. To jest coś do przemyślenia. Chociaż myślę, że nadszedł czas, aby udać się teraz do klienta, zobacz, co myśli o tym, że jest to ulepszenie, i tak dalej.
dvdvorle

0

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.


2
Mówisz więc, że jakikolwiek koszt związany z 5% szansą na zmianę rozwiązania jest nieistotny?
dvdvorle

Mam na myśli, że to uczucie… Wiesz, co znaczy „YAGNI” - reszta to uczucie =)
MikroDel,

0

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.