Sto cercando di scoprire la tua logica decisionale su quando fare cosa. Sono felice di fornire più contesto, ma per ora voglio renderlo generale.
Sto cercando di scoprire la tua logica decisionale su quando fare cosa. Sono felice di fornire più contesto, ma per ora voglio renderlo generale.
Risposte:
È eccessivamente semplificato, immagino, ma quel tipo di verità è vera come linea guida generale:
E:
Se sì, allora preferisco scriverlo piuttosto che acquistarlo.
Se il costo totale di proprietà del prodotto (inclusi sviluppo, test, manutenzione, supporto o eventuali spese correlate) è superiore al costo del prodotto e il ritorno sull'investimento calcolato non compenserà tale costo, allora sei meglio comprarlo e andare avanti.
Cose da considerare per una decisione di fare o comprare
costo di sviluppo / costo per manutenzione vs. costo del prodotto / costo per contratto di manutenzione: ovviamente questa è la cosa ovvia, ma in realtà non è l'unica cosa. Ad esempio, se ho intenzione di utilizzare il software non solo per la mia azienda, ma voglio anche venderlo ad altri, il calcolo avrà un aspetto diverso
Disponibilità di un prodotto adatto. Per molti processi aziendali, non esiste un software standard disponibile. Oppure c'è qualcosa disponibile, ma non è adatto, perché contiene 100 funzionalità di cui hai bisogno solo 3 in modo leggermente diverso, mentre mancano altre 2 funzionalità importanti.
Si vuole diventare dipendenti da un fornitore di terze parti? Soprattutto i fornitori più piccoli ti offrono sempre il rischio che il fornitore svanisca dal mercato in futuro o che l'ulteriore sviluppo del prodotto non vada nella direzione di cui hai bisogno. Per un prodotto che hai sotto il tuo controllo, puoi guidare molto meglio la direzione dello sviluppo.
Quando ho bisogno di un software specifico e cosa va più veloce: svilupparlo da solo o acquistare qualcosa, adattarlo fino a adattarlo ai miei processi e implementarlo? L'acquisto di qualcosa dallo scaffale può sembrare l'alternativa più rapida e talvolta più economica, ma personalmente ho visto anche scenari in cui lo sviluppo di un software esattamente per le esigenze di un'azienda, adattandosi ai processi aziendali esistenti, ha risparmiato così tanto tempo rispetto all'acquisto di qualcosa e insegnando diversi centinaia di utenti svolgono il proprio lavoro in modo nuovo e diverso, con costi di sviluppo trascurabili.
Qualunque cosa abbia a che fare con la crittografia. Esistono 100.000 modi per sbagliare ed esporre il tuo software a gravi vulnerabilità della sicurezza e solo pochi modi per farlo correttamente. Per questo sono necessarie competenze elevate.
A livello personale, sviluppo una strana combinazione di ciò che voglio e di ciò che sarebbe interessante scrivere.
A livello professionale, @haylem fa un buon punto generale su quando acquistare e quando scrivere. Dirò che c'è un elemento enorme che viene trascurato: opportunità. Per le aziende più grandi ha spesso senso, a mio avviso, scrivere applicazioni line-of-core (non tutte le app line-of-business) personalizzate nel rendere più agile l'impresa. C'è un costo opportunità associato all'acquisto di software perché la tua azienda (non solo il tuo IT) è bloccata nel modo in cui il fornitore guarda il tuo dominio.
Per la maggior parte delle cose, non importa. È meglio che il tuo sistema contabile non sia creativo. Il tuo elaboratore di testi sarà lo stesso di chiunque altro. Ma le cose che ti costringono potrebbero essere meglio scritte in casa in modo che possano adattarsi a ciò che la tua azienda sta cercando di realizzare.
È, come praticamente ogni altra risposta, una decisione costi-benefici:
Dipende dal fatto che il costo, compensato dai benefici, di una soluzione sviluppata su misura sia inferiore al costo del prodotto standard.
Ci sono anche costi di opportunità da considerare. Comprendi che questi non devono essere inclusi nei costi reali di sviluppo rispetto agli acquisti, ma in un mondo più ampio, devi considerarli. Se il personale di sviluppo interno sta lavorando a questo progetto, non sta lavorando a nessun altro progetto; ciò significa che se c'è un altro progetto nell'elenco che ti costa soldi ogni giorno, non è fatto, potrebbe essere una priorità più alta che ti fa accantonare o addirittura annullare lo sviluppo personalizzato e andare con il pacchetto standard. Tuttavia, se non si esegue questo progetto significa che il personale interno è seduto per mano, il costo dello sviluppatore viene ridotto; stai pagando il tuo personale di sviluppo che stia lavorando o meno, quindi ti costerà meno complessivamente se li stai usando per il loro potenziale.
Suppongo che tu lo stia chiedendo in un contesto professionale e commerciale e che stiamo parlando di una parte importante del tuo sistema piuttosto che di una singola libreria.
Ci sono situazioni in cui la tua organizzazione può utilizzare un prodotto standard. Ad esempio, poche persone scrivono il proprio elaboratore di testi: usano MS Word, OpenOffice o altro. Lo stesso vale per i fogli di calcolo. Tieni presente che potresti "personalizzare" il tuo elaboratore di testi con i tuoi modelli o macro, ma le persone non lo considerano come una personalizzazione. Questo è solo "usare" il word processor, come lo vedono.
Potrebbe essere possibile utilizzare sistemi più complicati allo stesso modo, dai webshop ai sistemi ERP. Ma arriverà un punto in cui i vostri progettisti o gli addetti allo sviluppo del business vorranno un cambiamento che non è incluso nello standard. Una riprogettazione della pagina di checkout, forse, o un nuovo modo di calcolare le offerte di sconto.
Se lo sai dall'inizio, la tua decisione è davvero prendere o personalizzare . Basta acquistare non è più un'opzione. E anche se non ci sono tali requisiti in questo momento, ti aspetti che i tuoi colleghi li presentino più tardi?