Apa arti "perusahaan" dalam kaitannya dengan arsitektur perangkat lunak?

11

Saya melihat istilah "perusahaan" dilemparkan ke sekitar pengembang perangkat lunak dan pemrogram banyak dan tampaknya digunakan secara longgar.

id · ter · hadiah / ˈentərˌprīz /

Proyek atau usaha, biasanya yang sulit atau membutuhkan usaha. Inisiatif dan sumber daya.

Dapatkah seseorang tolong menjelaskan apa istilah ini sebenarnya mencakup? "Di tingkat perusahaan", "skala perusahaan"? Bahkan ada "edisi perusahaan" hal. Apa sebenarnya artinya? Jelas tidak masuk akal menilai dengan definisi di atas sehingga lebih khusus untuk perangkat lunak apa artinya seseorang ketika menggunakan kata perusahaan?

EDIT:

Untuk menambahkan putaran pada ini - bagaimana istilah ini kemudian cocok dengan frasa seperti Model Kerangka Kerja Perusahaan? Apa hubungan akses data dan konteks data dengan deskripsi di seluruh perusahaan?

SkonJeet
sumber
6
Pertanyaan yang sangat mirip: Apa itu perangkat lunak perusahaan, tepatnya?
Roc Martí
10
Pada dasarnya berarti itu cukup rumit, sehingga Anda dapat membangun bisnis konsultasi di sekitarnya ;-)
vartec
3
@SkonJeet: Perusahaan seperti IBM dan HP cenderung menyalahgunakan istilah "enterpise", dan model bisnis mereka pada dasarnya menyediakan layanan konsultasi untuk menyebarkan dan mempertahankan solusi mereka.
vartec
10
@artec Saya pikir itu berarti perangkat lunak yang tidak perlu rumit dan mahal yang perusahaan sangat besar dengan pembelian anggaran TI membengkak karena semua uang yang mereka hemat merampingkan staf TI mereka dan budak mengemudi orang-orang yang tetap?
maple_shaft
1
@maple_shaft: yeah, itu deskripsi yang cukup akurat ;-)
vartec

Jawaban:

11

Anda perlu memperluas definisi Anda.

Dari http://dictionary.reference.com :

id · ter ·  nomina [en-ter-prahyz]

  1. sebuah proyek yang dijalankan atau dilaksanakan, terutama yang penting atau sulit atau yang membutuhkan keberanian atau energi: Menjaga perdamaian adalah usaha yang sulit.
  2. rencana untuk proyek semacam itu.
  3. partisipasi atau keterlibatan dalam proyek-proyek semacam itu: Negara kita dibentuk oleh perusahaan pria dan wanita yang tegas.
  4. keberanian atau kesiapan dalam melakukan; roh petualang; kecerdikan.
  5. sebuah perusahaan yang diorganisasikan untuk tujuan komersial; perusahaan bisnis.

Sesuai definisi ke-5 yang telah saya kutip di atas, perangkat lunak Perusahaan atau Lisensi Perusahaan dimaksudkan untuk memberikan solusi di seluruh perusahaan. Sesuai definisi kamus OP, "Proyek atau Melakukan" dalam kasus-kasus yang dikutip oleh OP adalah sebuah perusahaan.

Solusi di seluruh perusahaan berarti bahwa itu akan digunakan di mana pun perusahaan memiliki kantor, atau situs. Jadi lisensi Perusahaan akan memberikan solusi untuk semua situs perusahaan. Ini berbeda dengan lisensi Situs, yang hanya akan mencakup satu lokasi milik perusahaan, bukan semuanya. Penggunaan istilah Enterprise lainnya hanya untuk menunjukkan seluruh perusahaan, dan tidak terbatas pada definisi untuk sesuatu yang terkait dengan perangkat lunak. Dengan demikian Anda dapat memiliki perangkat lunak, SDM atau Akuntansi, atau bahkan persediaan Jelly Beans untuk "The Enterprise". Ketika digunakan dalam kedua kasus tersebut, kata Enterprise terkait dengan ukuran perusahaan tidak relevan, karena kata itu berlaku untuk bisnis kecil, seperti halnya untuk megacorp.

Edisi perangkat lunak perusahaan dimaksudkan untuk dikemas penuh dengan jenis fitur yang biasanya Anda perlukan untuk melengkapi solusi multi-server multi-situs. Namun dalam kasus ini, Anda akan menemukan bahwa kemungkinan besar berarti Anda diharapkan membayar lebih untuk mendapatkan lebih banyak fitur yang mungkin tidak Anda perlukan dalam "perusahaan" yang lebih kecil, dan karena itu kata tersebut menjadi sama hiperbola pemasaran sebanyak apa pun.

Untuk menjawab bagian jawaban OP yang telah diedit, Enterprise Framework adalah nama yang bagus untuk API yang mendukung implementasi produk yang dirancang untuk penyimpanan data dan komunikasi terdistribusi, biasanya diperlukan untuk produk yang dirancang dengan mempertimbangkan produk multi-situs. Ini biasanya tidak ditujukan untuk usaha kecil dan belum dapat digunakan untuk membuat produk yang dapat menskala dari satu server / situs ke beberapa server / situs. Idenya adalah untuk memungkinkan suatu produk tumbuh agar sesuai dengan perubahan kebutuhan suatu perusahaan (Enterprise) ketika tumbuh, seperti membuka kantor di seluruh dunia, tetapi berbagi sistem surat biasa misalnya.

Jadi masalah kata yang digunakan "samar-samar" atau "longgar" benar-benar bukan masalah, karena istilah Enterprise selalu dimaksudkan untuk berarti "di seluruh perusahaan, terlepas dari jumlah situs yang perlu Anda layani" ... hanya Enterprise yang jelas-jelas tidak banyak bicara, dan sesuai dengan contoh yang terdaftar di OP, arti kata Enterprise tetap jelas.

S.Robins
sumber
Terima kasih atas jawaban Anda, ini banyak diklarifikasi - dan sejujurnya saya merasa saya memiliki pemahaman yang lebih baik tentang kata enterprise dalam konteks perangkat lunak. Namun, tampaknya menjadi jawaban umum bahwa perusahaan digunakan untuk menggambarkan perangkat lunak yang dimaksudkan untuk skalabilitas di seluruh perusahaan - tetapi tidak semua perangkat lunak pada dasarnya dirancang untuk dapat diskalakan? Kecuali kalau itu dirancang dengan buruk. Juga, silakan lihat edit.
SkonJeet
1
@SkonJeet Tidak harus. Skalabilitas adalah masalah banyak faktor, dan saya tidak akan menyebut perangkat lunak yang dirancang buruk jika tidak memenuhi persyaratan yang tidak pernah direncanakan atau dirancang untuk dipenuhi. Apakah perangkat lunak berfungsi didistribusikan di banyak server? Apakah ia memparalelkan beban kerjanya dengan baik? Apakah ini melokalkan teks sehingga dapat digunakan di banyak negara? Apakah ini akan membangun dan berjalan pada perangkat keras yang berbeda? Apakah ada banyak konsultan / programmer yang dapat menggunakan / memodifikasinya? Semua ini dan lebih banyak lagi merupakan faktor besar dalam seberapa berguna suatu perangkat lunak bagi suatu perusahaan, tergantung pada kebutuhan spesifik perusahaan itu.
CodexArcanum
6

Dalam pengalaman saya, kata "perusahaan" dalam pengaturan perangkat lunak paling sering merujuk pada perangkat lunak yang ditulis untuk perusahaan besar. Ini juga sering merujuk pada perangkat lunak internal, bukan perangkat lunak yang menghadap klien.

Ini mungkin tampak seperti garis arbitrer untuk menggambar (dan tentu saja, apa sebenarnya "besar"), tetapi memiliki perangkat lunak tertulis untuk berbagai jenis perusahaan, saya dapat memberi tahu Anda bahwa kebutuhan bisnis besar sangat berbeda dengan kebutuhan perusahaan kecil, yang sekali lagi sangat berbeda dengan kebutuhan individu.

Masalah yang seringkali tidak relevan (atau lebih tepatnya, tidak layak untuk diinvestasikan) bagi banyak perusahaan kecil termasuk:

  • Ketersediaan tinggi / failover mulus
  • Redundansi / pemulihan bencana
  • Privasi data pelanggan
  • Kepatuhan terhadap hukum dan peraturan
  • Pemantauan waktu-nyata, info jejak kaya untuk pemecahan masalah
  • Fokus pada pelaporan (biasanya memungkinkan untuk manajemen yang cerdas)

Saya akan menebak bahwa ini karena overhead dan keuntungan dari perusahaan besar berada pada skala yang sama sekali berbeda dengan perusahaan besar. Jika daftar gaji perusahaan kecil menjadi offline, Anda dapat membayar dengan tangan, atau meminta maaf kepada semua orang secara pribadi. Jika itu terjadi di perusahaan besar, ada pemberontakan. Saya pernah memiliki bank yang membuang beberapa juta dolar hilang per jam sampai bug ditemukan - itu menempatkan perspektif pada hal-hal. Keandalan adalah hal besar bagi sebagian besar perusahaan besar (well, setidaknya di atas kertas).

Daniel B
sumber
5

Penggunaannya agak kabur tetapi biasanya berarti perangkat lunak yang diharapkan berfungsi di organisasi besar - multinasional, misalnya.

Oded
sumber
Terima kasih atas jawaban Anda, tetapi sepertinya itu bukan satu-satunya penggunaan kata yang normal. Melihat pada tautan yang disediakan Roc (dalam komentar di OP) Anda dapat melihat ada banyak kegunaan yang berbeda untuk kata tersebut. Satu hal yang benar-benar mengganggu saya adalah bahwa pada tingkat junior - menyibak perkembangan dan teknologi cukup sulit tanpa kata-kata seperti ini terbang di sekitar industri untuk menimbulkan kebingungan.
SkonJeet
3
@SkonJeet - Persis mengapa saya menyatakan bahwa istilahnya tidak jelas.
Oded
Itulah sebabnya +1, dan mungkin akan ditandai sebagai jawaban. Seolah-olah di komunitas pemrograman (bahkan dapat dilihat di dalam SO) hampir ada semacam pretentiousness dengan kata-kata yang digunakan - dirancang oleh mereka yang berada di tingkat senior untuk menunjukkan pengetahuan mereka dan mengecualikan mereka yang tidak memilikinya.
SkonJeet
1
@SkonJeet - "Agile" adalah kata lain.
Oded
1
@ S.Robins - Dengan hormat saya tidak setuju. Penggunaan dalam konteks ini tidak jelas dan tergantung pada siapa yang berbicara. Sebagian besar istilah pemasaran dan tidak memiliki makna yang tepat.
Oded
2

Secara teori "solusi perusahaan" adalah segala jenis solusi yang cukup tepat untuk bisnis perusahaan skala besar. Namun dalam praktiknya itu berarti solusi yang dikembangkan dengan mentalitas "tidak ada yang dipecat karena merekrut IBM" .

Di sisi lain ada perusahaan seperti Google, Facebook, Amazon dll yang telah membangun bisnis mereka pada solusi yang tidak secara tradisional dianggap "tingkat perusahaan". Sebagai contoh, mereka awalnya menggunakan perangkat keras CotS yang murah . Perangkat lunak yang mereka gunakan adalah Open Source, dengan peran besar dimainkan oleh bahasa yang dinamis, yang juga secara tradisional tidak dianggap "perusahaan siap" (meskipun mereka banyak digunakan oleh perusahaan).

vartec
sumber
"itu cukup tepat untuk bisnis perusahaan skala besar" - solusi apa yang awalnya tidak dirancang untuk skalabilitas? Di sinilah kebingungan saya berada.
SkonJeet
1
Cukup banyak perangkat lunak yang dirancang untuk berfungsi pertama, skala kedua. Skalabilitas adalah YAGNI untuk banyak solusi.
Eoin Carroll
Mengapa Anda menggunakan akronim YAGNI? 9/10 orang mungkin tidak tahu apa artinya itu dan harus mencari di google.
SkonJeet
2
@ SkonJeet 9/10 bukan pengembang tidak tahu apa artinya YAGNI, tetapi sebagian besar pengembang melakukan (atau harus), itu adalah akronim yang cukup umum yang muncul banyak (bersama dengan KERING, SOLID, dll). Dan tidak ada yang salah dalam googling untuk akronim, Anda belajar sesuatu yang baru dengan melakukannya.
yannis
2

Definisi-definisi itu baik dan bagus. Dalam perangkat lunak ini sepertinya dilampirkan sebagai istilah pemasaran - kata kode yang mengatakan "beli ini untuk bisnis Anda, ini adalah perangkat lunak yang serius di mana Anda bisa mendapatkan dukungan." Benar atau tidaknya itu tergantung pada produk, tetapi itulah yang coba dikirim oleh pemasaran pesan. Bagian dukungan yang penting bagi banyak bisnis - mereka menginginkan seseorang di ujung telepon ketika mereka memanggil dengan masalah.

Dalam konteks ini, ini adalah istilah pemasaran.

segera
sumber
1

Perangkat lunak perusahaan biasanya adalah:

  • Menghadapi internal;
  • Baik misi kritis dan / atau digunakan oleh banyak orang di seluruh bisnis; dan
  • Terintegrasi dengan sistem internal dan / atau eksternal lainnya

Perangkat lunak perusahaan tidak harus diterapkan di perusahaan besar. Contohnya mungkin sistem rekam medis elektronik di kantor dokter kecil yang terintegrasi dengan sistem lab rumah sakit dan sistem pemrosesan klaim asuransi.

Jurang
sumber