Quando in genere scrivi tu stesso un modulo software anziché acquistare un prodotto esistente?


13

Sto cercando di scoprire la tua logica decisionale su quando fare cosa. Sono felice di fornire più contesto, ma per ora voglio renderlo generale.


Che dire dell'opzione n. 3, "utilizzare una libreria open source?" Questo può effettivamente essere un compromesso, perché puoi modificarlo in base alle tue esigenze.
Nathan Long,

@NathanLong: è un buon punto, ma mi aspetto che se l'OP fa questa domanda, significa che è interessante solo questo scenario. Inoltre, un prodotto può essere open source ed essere ancora commercialmente venduto, quindi penso che intendessi "software libero". E a seconda del tipo di licenza, non puoi necessariamente modificare le tue esigenze (se prevedi di rivendere ed è incompatibile, ad esempio), quindi ci sono molti fattori diversi da considerare in questa strada. (non dire che è un cattivo suggerimento, però)
haylem

Risposte:


17

È eccessivamente semplificato, immagino, ma quel tipo di verità è vera come linea guida generale:

In un ambiente personale

  • Mi diverto a codificarlo?
  • O imparo qualcosa dalla codifica?

E:

  • Ho abbastanza tempo per codificarlo?

Se sì, allora preferisco scriverlo piuttosto che acquistarlo.

In un ambiente professionale

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.


1
+1 molto importante per occasionalmente codificare alcune cose da soli, altrimenti finirai per unire una cosa all'altra come un idraulico di Internet. Devi anche bilanciare il "imparare qualcosa da esso" e determinare se vuoi / devi imparare quel qualcosa.
Gary Rowe,

2
@GaryRowe: grazie. Deve resistere a fare una battuta su "Internet Plumber" e le attuali tendenze del web e il mercato del lavoro degli sviluppatori web. Arggghhhh, è abbastanza allettante però ...
haylem

In un ambiente professionale, non sono solo i costi di sviluppo, ma anche i costi di manutenzione in corso e il tempo perso nello sviluppo.
Gilbert Le Blanc,

1
@GilbertLeBlanc: vero, Gilbert. In un certo senso intendevo il costo end-to-end, ma chiarirò come hai suggerito, poiché dovrebbe davvero riguardare il TCO del prodotto.
Haylem,

9

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.


8

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.



È un buon punto, anche se penso che ci siano molte altre cose che sarebbero degne di cadere sotto l'etichetta "non rovinare con questo". Tuttavia, per uso personale (e fintanto che non c'è esposizione e non è per dati sensibili), scattare una foto da soli è ancora divertente con criptovaluta. Alcuni anni fa ho implementato nuovamente alcune cifre per divertimento e autoapprendimento. Un sacco di grandi problemi da guardare, mi sono divertito molto a farlo e ho imparato molto.
Haylem,

Eviterei di acquistare criptovalute. Le librerie crittografiche affidabili sono generalmente open source o parte del sistema operativo. Mi fiderei del mio codice sulla maggior parte delle librerie di sorgenti chiuse. Non userei alcuna libreria che non pubblichi almeno una specifica chiara e completa su come funziona il suo codice crittografico.
CodesInCos

@CodesInChaos alcuni pacchetti "chiusi" commerciali ti danno il codice sorgente.
Pieter B,

In realtà penso che un codice peer review sia migliore e che supporre che l'attaccante non sappia che l'algo sia un errore. Ma perché lo colleghi anche alla crittografia?
Ramzi Kahil,

0
  • sforzo elevato, prodotto di montaggio esistente >> acquista prodotto
  • interesse personale per la tecnica o nessun prodotto esistente adatto a tutti i requisiti >>
    sviluppo da solo

0

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.


0

È, come praticamente ogni altra risposta, una decisione costi-benefici:

  • Quanto mi costerà in ore lavorative, materiali, ecc. Consegnare questo progetto a uno sviluppatore interno o a un appaltatore esterno per lo sviluppo personalizzato? (di solito elevato; contando la loro parte di spese generali, oltre a stipendio e benefici, uno sviluppatore esperto ti costerà circa un grande al giorno; forse un po 'più o meno a seconda delle finanze coinvolte)
  • Quanto mi costerà acquistare il prodotto noto dallo scaffale? (Dipende dal prodotto; i programmi di uso generale come gli editor di testo sono in genere economici, anche gratuiti, mentre i programmi specializzati come i prodotti di progettazione di circuiti possono costare milioni)
  • Quali vantaggi otterrò da una soluzione sviluppata su misura? (In genere una soluzione personalizzata si adatta meglio alla tua attività e può quindi automatizzarla o almeno digitalizzarne una maggiore)

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.


0

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.

Crea o acquista vs. Crea o personalizza

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?

  • Puoi personalizzare il sistema, oltre a caricare il logo della tua azienda nei posti giusti?
  • Quanto è difficile e può essere fatto dal tuo personale o devi contrarlo al fornitore? Si noti che ci sono aziende il cui intero modello di business è quello di fornire servizi premium per un software gratuito che hanno sviluppato.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.