Perché assumeresti sviluppatori di software interni invece di esternalizzarli per sviluppare un prodotto per la tua azienda? [chiuso]


23

Perché dovresti assumere internamente oltre l'outsourcing nello sviluppo di un prodotto per la tua azienda? Posso solo pensarne alcuni, ma non sono del tutto sicuro se siano motivi abbastanza validi.

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

Qualche idea?


1
Giusto per essere chiari, quando dici outsourcing, intendi solo una società esterna, o come spesso usato colloquialmente, off-shoring (cioè, fuori dal paese).
GrandmasterB,

Sono abbastanza sicuro che il mio professore intendesse entrambi quando ha detto l'outsourcing.
Terence Ponce,

38
Mi piace come hai esternalizzato la tua domanda di compiti a casa: p
glasnt

Risposte:


26
  • Un team interno risponderà meglio alle tue esigenze, dal momento che fanno effettivamente parte della tua azienda, quindi hanno un'idea migliore di ciò che desideri.
  • Una squadra interna è più facile da comunicare, niente batte un contatto diretto.
  • Il tuo team interno avrà una conoscenza più specifica del dominio che un team esterno dovrebbe imparare.
  • Stai investendo non solo nel software, ma nella competenza per risolvere i tipi di problemi software che la tua azienda ha. L'utilizzo dei propri sviluppatori crea una scorta di programmatori che hanno già affrontato questi problemi specifici.

(Per controargomentazioni, vedi l'argomento di Joel .)


5
L'introduzione di Joel nel collegamento sembrava essere più "perché non vorrei essere un sviluppatore interno" no?
MIA,

Un po '. Uno dei punti salienti era che lo sviluppo interno tende a produrre anche software scadente.
Fishtoaster

8
Ho un sacco di storie dell'orrore su software scadenti in outsourcing, quindi non penso che sia possibile generalizzare quella particolare dimensione.
MIA,

+1: tutto intorno. La nostra azienda dipende da un team di sviluppatori in outsourcing. Sono il primo "sviluppatore" che hanno avuto nello staff in 5 anni, in particolare per ridurre la dipendenza dall'azienda esterna e portarla in azienda.
Estratto

6
Il 90% di tutto il software è scadente e questo potrebbe essere un sottovalutazione
jk.

11

Se il software deve essere utilizzato in modo tattico o strategico o è fondamentale per il tuo business, avere programmatori che capiscono anche il business può essere la chiave. Devono inoltre comprendere il supporto e il ciclo di vita e quanto costerà alla tua azienda supportare i sistemi dopo il rilascio.

Non penso che il costo sia generalmente un fattore reale. Se qualcuno afferma che lo sono, sono ignoranti o mentono. Se esternalizzi, stai pagando il margine di profitto di qualcun altro oltre ai loro costi. Qualunque risparmio dovuto ai differenziali geografici del mercato del lavoro viene di solito rapidamente compensato da un aumento dei costi di comunicazione e istruzione, e i differenziali di tasso non sono così grandi come una volta, dal momento che il mondo in via di sviluppo viene chiamato per una ragione.

Esistono molti tipi di software là fuori. In molti casi, puoi esternalizzare qualcosa e stare bene. Il problema è che tale decisione deve essere presa in base al caso e non è possibile risolverla in un'unica soluzione 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 a un'azienda specializzata in quel tipo di lavoro, ad esempio una cosa a livello di sistema come un driver di dispositivo o un server web potrebbe essere esternalizzata da un'azienda che ha realizzato un'appliance e ha voluto specializzarsi sull'esperienza utente più che sui mattoni.

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, probabilmente non sei " vorrà esternalizzare questo.


3

Questa è una risposta tardiva, ma il più generale "perché un'azienda dovrebbe assumere in casa X anziché esternalizzare?" - in altre parole, perché esistono le aziende, piuttosto che un singolo CEO che esternalizza tutto? - si chiama "la teoria dell'azienda"

http://en.wikipedia.org/wiki/Theory_of_the_firm

e ci sono un bel po 'di prove e studi per vari motivi, e molta conoscenza su quando ha senso esternalizzare contro "in-source" vari pezzi di lavoro e capitale.


2

Uno dei motivi per farlo internamente è perché stai usando una tecnologia di crittografia dei dati che non può essere esportata in determinati paesi.

Probabilmente il software può essere fatto più velocemente, con una qualità più elevata e soddisfa meglio 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ù lavoro per lo sviluppo dei requisiti, utilizzando BDUF (grande design in anticipo).

Se l'applicazione è grande e parti del materiale banale possono essere suddivise in librerie piccole e ben definite, l'outsourcing può essere prezioso per la produzione di quei pezzi.


2

L'outsourcing (a livello locale) ha senso se la società non ha le risorse per fare lo sviluppo o il know-how per iniziare. Ad esempio, un'azienda calzaturiera che vuole realizzare un'app Android. Non ha molto senso che lo facciano in casa. Se si tratta di una società di software, l'outsourcing di un progetto non ha molto senso, anche se alcune lacune potrebbero essere colmate con appaltatori esterni.

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

Per il puntellamento off, questa non è sempre la buona decisione finanziaria che i manager vorrebbero farti pensare. C'è troppa conoscenza del dominio (conoscenza del settore) richiesta nella maggior parte dello sviluppo che non può semplicemente essere "acquistata" in quel modo, ed è estremamente difficile convincere un team remoto a duplicare questo con solo una specifica per guidarli.


1

Abbiamo solo un piccolo team interno e abbiamo usato solo piccoli team esterni, ma il software prodotto internamente è sempre stato molto meglio del software scritto esternamente.

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


1

Perché probabilmente non sai esattamente cosa deve essere costruito.


1
E quale cliente ha mai accettato i propri requisiti concordati come prodotto finale senza grandi cambiamenti di portata? A volte, gli sviluppatori interni possono consolidarsi e presentare vari scenari basati su req molto meno definiti, rispetto a quelli in outsourcing, che fermano lo sviluppo fino a quando non vengono fatti dei chiarimenti (e probabilmente hai perso un'intera giornata off-shore).
Jé Queue,

0

Dipende da vari fattori:

Se stai sviluppando un prodotto software; ovviamente devi avere alcuni piani segreti, riservatezza, nuove idee, ecc. ad esso associati, il che rende più sensibile essere preferito 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 attività di vendita e 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 esternalizzarlo e se devo fare in modo che un prodotto software dica CRM o ERP, preferirò farlo internamente.

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.