Perché dovresti assumere sviluppatori software interni anziché esternalizzarli per sviluppare un prodotto per la tua azienda? [chiuso]

23

Perché dovresti assumere internamente l'outsourcing nello sviluppo di un prodotto per la tua azienda? Posso solo pensare a pochi ma non sono del tutto sicuro se sono una ragione sufficiente.

Questo è in realtà per un dibattito che avrò in classe. Sono più incline alla parte di outsourcing ma sfortunatamente, mi è stato chiesto di passare al lato interno del dibattito.

Qualche idea?

    
posta Terence Ponce 16.09.2010 - 02:54
fonte

8 risposte

26
  • Un team interno sarà più reattivo alle tue esigenze, dato che fanno effettivamente parte della tua azienda, quindi hanno un'idea migliore di ciò che desideri.
  • Un team interno è più facile da comunicare con: niente batte il normale contatto faccia a faccia.
  • Il tuo team interno avrà più conoscenze specifiche del dominio che un team esterno dovrebbe imparare.
  • Stai investendo non solo nel software, ma nell'esperienza che risolve i tipi di problemi software della tua azienda. Usando i tuoi stessi sviluppatori costruisci uno stock di programmatori che hanno già affrontato questi problemi specifici.

(Per i controargomenti, vedi su di Joel .)

    
risposta data 16.09.2010 - 03:40
fonte
11

Se il software deve essere utilizzato tatticamente o strategicamente o è fondamentale per la tua attività, quindi avere i programmatori che comprendono anche l'attività commerciale può essere la chiave. Devono anche comprendere il supporto e il ciclo di vita e quanto costerà alla tua azienda sostenere i sistemi dopo il rilascio.

Non penso che il costo sia generalmente un fattore reale. Se qualcuno sostiene che lo è, sono ignoranti o bugiardi. Se esternalizzi, stai pagando il margine di profitto di qualcun altro in cima ai loro costi. I risparmi dovuti ai differenziali geografici del mercato del lavoro sono di solito rapidamente compensati dall'aumento del costo della comunicazione e dell'istruzione, e le differenze tariffarie non sono così grandi come in passato, dal momento che il mondo in via di sviluppo è chiamato per un motivo.

Ci sono molti tipi di software là fuori. In molti casi, puoi esternalizzare qualcosa e star bene. Il problema è che questa decisione deve essere presa caso per caso, e non è possibile risolverla in una situazione adatta a tutte le situazioni.

Sono sicuro che ci sono un milione di cose da cercare nel processo decisionale.

Ci sarebbero casi in cui lo sviluppo di un software ben specificato ma core potrebbe essere facilmente esternalizzato ad una società specializzata in quel tipo di lavoro - ad esempio una cosa a livello di sistema come un driver di periferica o un server web potrebbe ancora essere esternalizzato da una società che ha realizzato un elettrodomestico e desidera specializzarsi nell'esperienza utente più dei blocchi predefiniti.

D'altra parte, se stai guidando quel server web in modi speciali e anche se lo hai ben specificato, avrai questo componente strettamente legato alle principali iniziative di sviluppo multi-fase, tu probabilmente non vorrai esternalizzarlo.

    
risposta data 16.09.2010 - 06:40
fonte
3

Questa è una risposta tardiva, ma il più generale "perché una ditta assumerebbe X in casa anziché in outsourcing?" - In altre parole, perché esistono le aziende, piuttosto che un unico amministratore delegato che esternalizza tutto? - Si chiama "la teoria dell'impresa"

link

e ci sono un bel po 'di prove e studi per vari motivi e molte informazioni su quando ha senso estrapolare e "in-source" varie parti del lavoro e del capitale.

    
risposta data 28.12.2010 - 22:20
fonte
2

Un motivo per farlo internamente è perché utilizzi una tecnologia di crittografia dei dati che non può essere esportata in determinati Paesi.

Il software può probabilmente essere svolto più rapidamente, con una qualità superiore e soddisfare le aspettative del cliente quando viene utilizzato un piccolo team locale di sviluppatori in grado di comunicare faccia a faccia utilizzando un modello iterativo.

Il modello iterativo è probabilmente meno efficace con l'outsourcing; l'outsourcing richiede più requisiti di sviluppo del lavoro, utilizzando BDUF (design di grandi dimensioni).

Se l'applicazione è di grandi dimensioni e parti delle cose banali possono essere suddivise in librerie piccole e ben definite, l'outsourcing può essere prezioso per produrre quei pezzi.

    
risposta data 16.09.2010 - 03:26
fonte
2

L'outsourcing (localmente) ha senso se la società non ha le risorse per fare lo sviluppo o il know-how per iniziare. Ad esempio, un'azienda di scarpe che desidera creare un'app per Android. Non ha molto senso farlo in casa. Se è un'azienda di software, l'outsourcing di un progetto non ha molto senso, anche se alcune lacune potrebbero essere colmate da contraenti esterni.

C'è un'altra forma di esternalizzazione ... comprando le aziende per ottenere e rinominare i loro prodotti. Cioè, un'azienda più grande cercherà un prodotto esistente, lo acquisterà e lo cambierà come proprio. L'effetto netto di questo è essenzialmente lo stesso dell'outsourcing.

Per off-shore, non è sempre la buona decisione finanziaria che i dirigenti vorrebbero che tu pensassi. C'è troppa conoscenza di dominio (know-how del settore) richiesta nella maggior parte degli sviluppi che semplicemente non può essere 'comprata' in questo modo, ed è estremamente difficile ottenere una squadra remota per duplicarla con una specifica per guidarli.

    
risposta data 16.09.2010 - 08:09
fonte
1

Abbiamo solo un piccolo team interno e abbiamo utilizzato solo piccoli team esterni, ma il software prodotto internamente è sempre stato di gran lunga migliore del software scritto esternamente.

Internamente utilizziamo schemi documentati, logica del livello aziendale appropriata (non solo classi che chiamano altri metodi nel livello dati che restituiscono un DataTable senza alcuna logica effettiva da nessuna parte) e abbiamo una libreria di codice che possiamo riutilizzare da altre applicazioni che rientrano nel nostro dominio.

    
risposta data 16.09.2010 - 09:50
fonte
1

Perché probabilmente non sai esattamente che cosa deve essere costruito.

    
risposta data 17.09.2010 - 08:41
fonte
0

Dipende da vari fattori:

Se stai sviluppando un prodotto software; ovviamente è necessario avere alcuni piani segreti, confidenzialità, nuove idee, ecc. associati ad esso che rendono più sensibile la preferenza per fare in casa piuttosto che esternalizzare i requisiti di sviluppo del software.

D'altra parte, se hai un budget limitato o vuoi concentrarti maggiormente sulle vendite e sulle attività di marketing piuttosto che sullo sviluppo hardcore o se hai un flusso di lavoro maggiore di quello che il tuo team attuale può gestire; puoi andare con lo sviluppo di software in outsourcing.

Quindi, tutto dipende dalle tue preferenze; entrambe le opzioni hanno i loro pro e contro. Se devo sviluppare un sito web semplice, preferirò assumere una società di sviluppo di siti web per esternalizzarla e se dovessi fare un prodotto software dire CRM o un ERP, preferirò farlo internamente.

    
risposta data 31.05.2013 - 13:22
fonte

Leggi altre domande sui tag