Mengapa Anda mempekerjakan pengembang perangkat lunak in-house alih-alih mengalihdayakan mereka untuk mengembangkan produk untuk perusahaan Anda? [Tutup]

23

Mengapa Anda menyewa in-house alih-alih outsourcing dalam mengembangkan produk untuk perusahaan Anda? Saya hanya bisa memikirkan beberapa, tetapi saya tidak sepenuhnya yakin apakah itu alasan yang cukup baik.

Ini sebenarnya untuk debat yang akan saya lakukan di kelas. Saya lebih condong ke bagian outsourcing tetapi sayangnya, saya diminta untuk beralih ke sisi internal debat.

Ada ide?

Terence Ponce
sumber
1
Untuk lebih jelasnya, Ketika Anda mengatakan outsourcing, maksud Anda hanya sebuah perusahaan eksternal, atau yang sering digunakan secara sehari-hari, off-shoring (yaitu, di luar negeri).
GrandmasterB
Saya cukup yakin profesor saya bermaksud baik ketika dia mengatakan outsourcing.
Terence Ponce
38
Saya suka bagaimana Anda mengalihdayakan pertanyaan pekerjaan rumah Anda: p
glasnt

Jawaban:

26
  • Tim in-house akan lebih responsif terhadap kebutuhan Anda, karena mereka sebenarnya bagian dari perusahaan Anda, sehingga mereka memiliki gagasan yang lebih baik tentang apa yang Anda inginkan.
  • Tim in-house lebih mudah untuk berkomunikasi dengan-tidak ada yang mengalahkan kontak tatap muka biasa.
  • Tim internal Anda akan memiliki lebih banyak pengetahuan khusus domain yang harus dipelajari oleh tim eksternal.
  • Anda berinvestasi tidak hanya dalam perangkat lunak, tetapi dalam keahlian memecahkan jenis masalah perangkat lunak yang dimiliki perusahaan Anda. Menggunakan pengembang Anda sendiri membangun stok programmer yang telah menangani masalah-masalah spesifik sebelumnya.

(Untuk argumen balasan, lihat Joel mengambilnya .)

Fishtoaster
sumber
5
Pandangan Joel pada tautan itu tampaknya lebih "mengapa aku tidak ingin menjadi in-house dev" tidak?
MIA
Agak. Salah satu poin hist adalah bahwa pengembangan in-house cenderung menghasilkan perangkat lunak jelek juga.
Fishtoaster
8
Saya punya banyak cerita horor tentang perangkat lunak outsourcing jelek, jadi saya pikir itu tidak mungkin untuk menggeneralisasi dimensi tertentu.
MIA
+1: semua jalan di sekitar. Perusahaan kami bergantung pada tim pengembang yang di-outsourcing-kan. Saya "pengembang" pertama yang mereka miliki dalam staf dalam 5 tahun - khusus untuk mengurangi ketergantungan pada perusahaan yang bersumber dari luar dan membawanya sendiri.
IAbstrak
6
90% dari semua perangkat lunak jelek, dan itu mungkin dianggap remeh
jk.
11

Jika perangkat lunak harus digunakan secara taktik atau strategis atau merupakan inti dari bisnis Anda, maka memiliki programmer yang juga memahami bisnis dapat menjadi kunci. Mereka juga perlu memahami dukungan dan siklus hidup dan berapa biaya perusahaan Anda untuk mendukung sistem setelah rilis.

Saya tidak berpikir bahwa biaya umumnya merupakan faktor nyata. Jika seseorang mengklaim itu, mereka tidak tahu atau berbohong. Jika Anda melakukan outsourcing, Anda membayar margin keuntungan orang lain di atas biaya mereka. Penghematan apa pun karena perbedaan pasar tenaga kerja geografis biasanya dengan cepat dibuat dalam peningkatan biaya komunikasi dan pendidikan, dan perbedaan angka itu tidak sebesar sebelumnya, karena negara berkembang disebut demikian karena suatu alasan.

Ada banyak jenis perangkat lunak di luar sana. Dalam banyak kasus, Anda dapat memasang iklan sesuatu dan baik-baik saja. Masalahnya adalah bahwa keputusan harus diambil berdasarkan kasus, dan Anda tidak dapat menyelesaikannya dalam satu ukuran untuk semua situasi.

Saya yakin ada sejuta hal yang harus dicari dalam proses pengambilan keputusan.

Akan ada kasus di mana pengembangan perangkat lunak inti yang ditentukan dengan baik mungkin dengan mudah diserahkan kepada perusahaan yang berspesialisasi dalam pekerjaan semacam itu - misalnya hal tingkat sistem seperti driver perangkat atau server web mungkin masih di-outsource oleh sebuah perusahaan yang membuat alat dan ingin mengkhususkan pada pengalaman pengguna lebih dari sekadar bahan dasar.

Di sisi lain, jika Anda akan mengendarai server web itu dengan cara khusus dan meskipun Anda telah menentukannya dengan baik, Anda akan memiliki komponen ini terikat erat dengan inisiatif pengembangan multi-fase utama, Anda mungkin tidak akan t akan ingin melakukan outsourcing itu.

Cade Roux
sumber
3

Ini adalah jawaban yang terlambat, tetapi yang lebih umum "mengapa perusahaan menyewa di rumah X daripada outsourcing?" - dengan kata lain, mengapa perusahaan ada, daripada CEO tunggal yang mengalihdayakan semuanya? - Disebut "teori perusahaan"

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

dan ada cukup banyak bukti dan studi untuk berbagai alasan mengapa, dan banyak pengetahuan tentang kapan masuk akal untuk meng-out-source vs "in-source" berbagai bit tenaga kerja dan modal.


sumber
2

Salah satu alasan untuk melakukannya sendiri adalah karena Anda menggunakan teknologi enkripsi data yang tidak dapat diekspor ke negara-negara tertentu.

Perangkat lunak dapat dibilang dapat dilakukan lebih cepat, dengan kualitas lebih tinggi dan memenuhi harapan pelanggan dengan lebih baik ketika tim pengembang lokal kecil digunakan yang dapat berkomunikasi tatap muka menggunakan model iteratif.

Model iteratif bisa dibilang kurang efektif dengan outsourcing; outsourcing membutuhkan lebih banyak pekerjaan untuk mengembangkan persyaratan, menggunakan BDUF (desain besar di muka).

Jika aplikasinya besar, dan bagian-bagian dari hal-hal duniawi dapat dipecah menjadi perpustakaan-perpustakaan kecil yang terdefinisi dengan baik, maka outsourcing dapat bermanfaat untuk memproduksi karya-karya tersebut.

Robert Harvey
sumber
2

Pengalihdayaan (secara lokal) masuk akal jika perusahaan tidak memiliki sumber daya untuk melakukan pengembangan atau mengetahui cara memulai. Misalnya, perusahaan sepatu yang ingin membuat aplikasi Android. Tidak banyak gunanya mereka melakukan itu di rumah. Jika ini adalah perusahaan perangkat lunak, outsourcing proyek tidak masuk akal, meskipun beberapa kesenjangan mungkin dipenuhi dengan kontraktor luar.

Ada bentuk lain dari outsourcing ... membeli perusahaan untuk mendapatkan dan mengubah citra produk mereka. Artinya, perusahaan yang lebih besar akan mencari-cari produk yang sudah ada, membelinya, dan mengganti namanya menjadi milik mereka. Efek bersihnya pada dasarnya sama dengan outsourcing.

Untuk off shoring, itu tidak selalu keputusan keuangan yang baik yang manajer ingin Anda pikirkan. Ada terlalu banyak pengetahuan domain (pengetahuan industri) yang diperlukan dalam sebagian besar pengembangan yang tidak bisa 'dibeli' seperti itu, dan sangat sulit untuk membuat tim jarak jauh untuk menduplikasi dengan hanya spesifikasi untuk memandu mereka.

GrandmasterB
sumber
1

Kami hanya memiliki tim internal kecil, dan hanya menggunakan tim eksternal kecil, tetapi perangkat lunak yang diproduksi secara internal selalu jauh lebih baik daripada perangkat lunak yang ditulis secara eksternal.

Secara internal kami menggunakan pola yang terdokumentasi, logika lapisan bisnis yang sesuai (bukan hanya kelas yang memanggil metode lain dalam lapisan data yang melewatkan DataTable tanpa logika aktual di mana pun), dan kami memiliki pustaka kode yang dapat digunakan kembali dari aplikasi lain yang sesuai dengan domain kami.

ck01
sumber
1

Karena Anda mungkin tidak tahu persis apa yang perlu dibangun.

rhettg
sumber
1
Dan pelanggan apa yang pernah menerima persyaratan yang disepakati sebagai hasil akhir tanpa perubahan lingkup yang luas? Terkadang, pengembang in-house dapat memperkuat dan membuat berbagai skenario berdasarkan pada req yang jauh lebih tidak jelas, vs. outsourcing yang hanya menghentikan pengembangan sampai klarifikasi dibuat (dan Anda mungkin kehilangan sepanjang hari di lepas pantai).
Jé Queue
0

Itu tergantung pada berbagai faktor:

Jika Anda mengembangkan produk perangkat lunak; jelas Anda harus memiliki beberapa rencana rahasia, kerahasiaan, ide-ide baru, dll. yang terkait dengannya yang membuatnya lebih sensitif untuk dipilih untuk dilakukan sendiri daripada mengalihdayakan persyaratan pengembangan perangkat lunak Anda.

Di sisi lain, jika Anda memiliki anggaran yang ketat atau Anda ingin lebih fokus pada penjualan dan kegiatan pemasaran daripada pengembangan hardcore atau jika Anda memiliki lebih banyak alur kerja daripada yang bisa ditangani oleh tim Anda saat ini; Anda dapat pergi dengan outsourcing pengembangan perangkat lunak.

Jadi, itu semua tergantung pada preferensi Anda; kedua opsi memiliki pro dan kontra sendiri. Jika saya harus mengembangkan situs web yang sederhana, saya akan memilih untuk menyewa perusahaan pengembang situs web untuk melakukan outsourcing, dan jika saya harus membuat produk perangkat lunak seperti CRM atau ERP, saya akan memilih untuk melakukannya sendiri.

Jimmy Kamboj
sumber