Haruskah pengembang memahami domain bisnis atau apakah spesifikasinya memadai?

52

Saya bekerja untuk perusahaan yang domainnya benar-benar sulit untuk dipahami karena merupakan teknologi tinggi dalam elektronik, tetapi ini berlaku untuk setiap pengembangan perangkat lunak dalam domain yang kompleks.

Aplikasi yang saya kerjakan menampilkan banyak informasi, bagan, dan metrik yang sulit dipahami tanpa pengalaman dalam domain. Pengembang menggunakan spesifikasi untuk menggambarkan apa yang harus dilakukan perangkat lunak, seperti menentukan bahwa bagan tertentu harus menampilkan metrik jenis ini dan metrik ini adalah rumus aritmatika berikut.

Dengan cara ini, pengembang tidak benar-benar memahami bisnis dan apa / mengapa dia melakukan tugas ini. Ini bisa baik-baik saja jika spesifikasi benar-benar terperinci tetapi ketika tidak atau ketika penulis lupa menggunakan case, ini cukup sulit bagi pengembang untuk menemukan solusinya.

Di sisi lain, melatih setiap pengembang untuk semua aspek bisnis bisa sangat lama dan sulit.

Haruskah kita lebih mementingkan spesifikasi terperinci (tetapi seperti yang kita ketahui, spesifikasi sempurna tidak ada) atau haruskah kita melatih semua pengembang untuk memahami domain bisnis?

EDIT: ingatlah dalam jawaban Anda bahwa perusahaan dapat menggunakan pengembang eksternal dan bahwa formasi untuk semua domain bisa sekitar 2 minggu

Jerome C.
sumber
Pengembang yang baik sebagian besar akan melatih diri mereka sendiri.
kevin cline
20
@kevincline: Tidak semua domain cocok untuk otodidak.
FrustratedWithFormsDesigner
Seberapa realistiskah memiliki spesifikasi terperinci yang tidak memiliki pengetahuan domain? Ada juga trade-off dalam mendapatkan lebih detail dalam spesifikasi bahwa ini bisa memakan waktu lebih lama dan dengan demikian tidak bermanfaat dalam beberapa kasus.
JB King
22
Saya pikir semakin kompleks domainnya, semakin kritis para pengembang memahaminya dan semakin kritis bukan untuk melakukan outsourcing pengembangan.
HLGEM
3
Catatan: s / pengembang / penguji / dalam pertanyaan ini dan masih relevan.
joshin4colours

Jawaban:

114

Spesifikasi ini hampir tidak pernah memadai. Pengembang yang tidak memiliki pengetahuan domain tidak dapat menunjukkan ketika spesifikasi salah (sering terjadi di sebagian besar tempat) dan membuat pilihan desain yang buruk.

HLGEM
sumber
52
+1 Karena saya telah melihat ini terjadi dalam kehidupan nyata. Pengembang Sr berulang kali meminta bisnis untuk memeriksa persyaratan, bisnis meyakinkan tim bahwa persyaratan itu benar, kemudian pengembangan terpaksa berebut sehari setelah peluncuran karena bisnis melanggar hukum negara di dua negara.
Joshua Drake
9
atau untuk melihatnya dengan cara lain, spesifikasi yang cukup rinci adalah kode sumber dan oleh karena itu memerlukan pengembang dengan pengetahuan domain untuk menulisnya
jk.
@ Yosua - bukankah itu kasus di mana ada sedikit gunanya memiliki pengetahuan domain? - pengembang diharapkan untuk mengimplementasikan spesifikasi terlepas (setidaknya hingga hari panik).
Steve314
3
@ Steve314 cukup adil. Dan untuk kepentingan kejujuran intelektual, pengembang terutama mengingat diskusi seputar penerapan fitur asli, dan bahkan memiliki komentar kode tentang tidak menghapus informasi itu, sejalan dengan jk. Saya telah menemukan bahwa pengetahuan domain sering membantu pengembang mengetahui di mana lubangnya, atau paling tidak kemungkinannya, dalam spesifikasi, memungkinkan kualitas yang lebih tinggi dan lebih cepat berbalik untuk memenuhi kebutuhan bisnis.
Joshua Drake
2
Seorang pemilik bisnis dapat menyewa seorang dev, tetapi pada akhirnya spesifikasinya adalah milik dev itu sendiri. Ketika Anda berdiri di hadapan badan legislatif negara bagian, Anda tidak bisa mengatakan "Tapi saya disuruh melakukannya" atau "ketabahan intelektual tidak nyaman". Ini tidak akan cukup. Ingat bahwa.
Ben DeMott
63

Dalam pengalaman saya, setelah bekerja di 3 industri yang sangat berbeda sekarang, Anda bisa mulai tidak tahu banyak tentang domain, tetapi Anda harus mempelajarinya pada akhirnya dan seseorang harus memahaminya secara lebih rinci.

Masalah mendasar adalah ke impedansi klien-pengembang: mereka menginginkan sesuatu tetapi hanya akan mengetahuinya ketika mereka melihatnya dan Anda ingin menyelesaikan masalah mereka tetapi tidak selalu bisa mendapatkan ide yang jelas tentang apa masalah itu. Semakin banyak pengetahuan domain dari industri (klien) mereka yang dapat Anda (pengembang) bawa, semakin mudah Anda menerjemahkan "keinginan" yang samar menjadi "masalah" konkret dan menyelesaikannya.

Sebagai contoh anekdotal, pekerjaan saya sebelumnya adalah di industri kimia yang melibatkan perangkat lunak manajemen pabrik. Saya mulai dengan nol pengetahuan domain secara efektif, tetapi mampu mengimplementasikan kode yang saya butuhkan untuk menyelesaikan sub-masalah yang disajikan kepada saya oleh pengembang senior dan klien. Seiring waktu, saya berusaha untuk mempelajari industri ini, sehingga saya dapat berkomunikasi lebih mudah di tingkat klien. Ketika saya memahami industri mereka, saya mulai memahami apa masalah sebenarnya. Ketika mereka mengatakan hal-hal seperti "kita perlu melacak semua nilai data pada modul ini" Saya dapat menerjemahkannya menjadi apa yang sebenarnya mereka maksudkan, yaitu "kita perlu menyimpan catatan historis dari setiap nilai yang dihasilkan oleh sensor ini, disimpan selama X hari retensi, tetapi selalu dievaluasi berdasarkan bacaan terbaru dari sensor itu. "

Jadi ya, seseorang membutuhkan pengetahuan domain, dan lebih disukai pengembang karena masalah domain bukan masalah kode dan menerjemahkan antara keduanya tidak sepele. Pada akhirnya, setiap pengembang yang layak disimpan di tim Anda harus mengambil domain, sehingga mereka dapat membuat pilihan lebih banyak informasi tentang nuansa kode mereka.

CodexArcanum
sumber
7
Aturan tersembunyi - Saya menemukan mereka adalah norma bukan pengecualian.
Preet Sangha
16

SESEORANG pada proyek perlu memiliki pengetahuan domain yang cukup lengkap. Orang itu mungkin atau mungkin bukan pengembang.

Dalam proyek Agile, pemilik proyek klien adalah orang itu, dan mereka bekerja secara kolaboratif dan erat dengan tim. Dalam proyek non-Agile, seseorang dalam tim perlu mendapatkan pengetahuan itu, tetapi biasanya tidak, yang merupakan salah satu alasan mengapa proyek non-Agile sangat rentan terhadap kegagalan.

Dan Ray
sumber
+1, Pengembang (seperti bukan arsitek sistem) seharusnya tidak memerlukan pengetahuan apa pun di bidang ini. Dalam organisasi yang sempurna pengkodean harus dibuat dalam jumlah yang cukup kecil yang tidak memerlukan pengetahuan tentang produk akhir. Sekarang, berapa banyak "organisasi sempurna" yang ada di dunia ... Biasanya itu adalah sesuatu seperti: Tambahkan fitur yang dijelaskan dengan satu baris yang mengandung frasa: Anda tahu, semacam, seperti di halaman web ini, ...
Juha
1
Saya tidak berpikir pemilik produk saja yang memiliki pengetahuan tentang domain adalah resep untuk sukses.
Casey
11

Ada banyak jawaban bagus. Saya menambahkan sendiri karena setelah membacanya dan mencari saya menemukan bahwa tidak ada yang menyebutkan masalah utama: bug .

Jika tim tidak dilengkapi dengan cukup banyak orang dengan otoritas dan keahlian domain yang cukup, cepat atau lambat bug akan merayap masuk. Diberi pengetahuan tentang domain, ada nilai-nilai / hasil / hubungan yang tidak masuk akal, atau tidak sensasional. Orang bisa berharap bahwa spesifikasi secara eksplisit menunjukkan mereka tetapi pada kenyataannya yang terbaik yang dapat Anda capai adalah dengan menghindari yang paling jelas (beri tahu saya jika suku bunga menjadi negatif, atau hal-hal seperti itu - ini bisa atau bisa bukan kesalahan tetapi cukup aneh untuk diperhatikan).

Ini sangat terkait dengan memahami alasan untuk pilihan, dan dalam kasus terbaik itu juga mengarah ke perangkat lunak yang lebih baik (karena jika seseorang benar-benar tahu alasan di balik permintaan, dapat memikirkannya, daripada harus menerimanya sebagai suatu pemberian ).

Ingat bahwa Einstein berkata, "Tetapi pemikiran dan gagasan, bukan formula, adalah awal dari setiap teori fisik." , Yaitu bahwa orang berpikir bukan dalam hal rumus abstrak tetapi gagasan ...

Francesco
sumber
1
Ya, dan banyak di antaranya adalah item (Seperti contoh minat negatif Anda) yang sangat mendasar untuk domain bisnis, tidak pernah terpikir oleh mereka untuk menetapkannya sebagai "semua orang" tahu itu.
HLGEM
10

Jika Anda menempatkan orang yang hanya tahu bahasa Inggris dan orang yang hanya tahu bahasa Jepang di sebuah ruangan, mereka tidak akan bisa menerjemahkan dari bahasa Jepang ke bahasa Inggris, terlepas dari menjadi ahli bahasa masing-masing. Untuk alasan yang sama, bahkan programmer ahli tanpa pengetahuan domain tidak berdaya dalam mencari tahu apa yang mereka butuhkan untuk membangun, bahkan ketika mereka memiliki akses 24x7 ke pakar domain terbaik yang tidak juga ahli dalam pengembangan perangkat lunak.

Spek adalah upaya menerjemahkan "bahasa Jepang" dari persyaratan domain ke "Bahasa Inggris" dari persyaratan pemrograman. Ketika Anda mendapatkan kualitas terjemahan yang sebanding dengan terjemahan Google, itu adalah hari keberuntungan Anda; sebagian besar waktu, kualitasnya tidak ada, sehingga Anda tidak memiliki jalan lain untuk mendapatkan setidaknya beberapa pengetahuan domain. Dengan ketekunan, itu membuat Anda menjadi "penerjemah" yang layak pada akhir proyek, sehingga nilai Anda untuk perusahaan Anda tumbuh secara signifikan. Sebagian besar waktu, Anda juga bersenang-senang dalam prosesnya, jadi ini adalah situasi yang saling menguntungkan.

dasblinkenlight
sumber
"Untuk alasan yang sama, bahkan programmer ahli tanpa pengetahuan domain tidak berdaya untuk mencari tahu apa yang mereka butuhkan untuk membangun, bahkan ketika mereka memiliki akses 24x7 ke pakar domain terbaik yang tidak juga ahli dalam pengembangan perangkat lunak." - Tidak. Programmer mendapatkan pengetahuan domain (sebagian) dengan mewawancarai pakar domain. Pakar domain dapat memberi tahu programmer apa yang dia inginkan. Programmer harus belajar cukup banyak tentang domain untuk dapat mendiskusikan fitur dengan pakar domain.
Marnen Laibow-Koser
@ MarnenLaibow-Koser Kebutuhan pengembang untuk mendapatkan pengetahuan domain adalah poin dari bagian kedua dari jawaban saya. "Pengetahuan" dapat berasal dari seorang ahli, dari sebuah buku, dari internet, dan sebagainya; memiliki akses ke seorang ahli sangat membantu, tetapi tidak bersifat instrumental.
dasblinkenlight
Itu bukan poin utama ketidaksepakatan saya. Perselisihan utama saya adalah klaim Anda bahwa akses ke pakar domain tidak akan membantu programmer mengetahui apa yang mereka butuhkan untuk membangun. Bahkan, justru akses inilah yang akan paling membantu programmer - dan saya tahu karena saya telah melakukan hal ini pada berbagai proyek.
Marnen Laibow-Koser
8

Tanpa beberapa aspek pengetahuan bisnis Anda berakhir dengan pengembang yang tidak mengajukan pertanyaan dan tanpa berpikir kode apa yang dikatakan spesifikasi. Saya percaya dibutuhkan "Pemikir" untuk membuat perangkat lunak yang bagus, bukan hanya orang yang dapat menggunakan keyboard. Memahami tidak hanya "Apa" yang Anda lakukan tetapi "Mengapa" dan bagaimana itu cocok dengan gambaran yang lebih besar membantu memberikan kepuasan yang lebih besar bagi tim pengembangan.

Michael Hayes
sumber
6

Saya pikir Anda harus mencoba untuk mendapatkan pengetahuan domain. Spesifikasi adalah daftar periksa yang mengatakan apa yang harus dilakukan produk akhir dan diperlukan untuk validasi produk Anda. Sebagai pengembang Anda harus selalu berusaha memahami apa masalah sebenarnya yang Anda coba selesaikan. Mendapatkan pengetahuan domain akan membantu Anda memahami hal itu.

Ini akan membantu Anda mendesain dan kode dengan mudah karena Anda akan mengerti apa yang mengubah bagian (katakanlah aturan ditetapkan) dan menempatkannya secara terpisah. Anda tidak perlu menjadi ahli dalam hal itu tetapi akan dapat berbicara dengan pengguna akhir dalam bahasa mereka .

Anda dapat mengendarai mobil dengan pengetahuan dasar tentangnya; tetapi jika Anda ingin menikmati perjalanan Anda perlu belajar lebih banyak tentang cara menggunakannya dengan tepat. Seperti halnya perdagangan lainnya, tidak wajib untuk memahami domain, tetapi menyenangkan ketika Anda melakukannya .

ManuPK
sumber
5

Saya pikir seorang pengembang yang mengetahui bisnis ini sepadan dengan emas.

Dalam skenario "tradisional" di mana bisnis memiliki beberapa persyaratan dan beberapa analis bisnis menerjemahkannya ke dalam persyaratan teknis maka pengembang bekerja dari mereka yang pasti memiliki dua hal yang dapat terjadi:

  1. Anda memiliki banyak titik kegagalan. Analis bisnis mungkin tidak mendapatkan semua persyaratan bisnis yang diterjemahkan dengan sempurna dan / atau pengembang mungkin tidak menerjemahkannya ke dalam spesifikasi teknis dengan sempurna. Varian pada skenario "rahasia di sekitar ruangan". Hanya urgensi komunikasi.

  2. Salah satu atau semua pemilik bisnis, analis bisnis atau pengembang cukup baru bagi organisasi untuk kehilangan item-item utama yang tidak akan mereka pikirkan secara normal. Pengembang berpengalaman yang mengenal bisnis dengan baik dapat membantu mendidik orang-orang dalam peran-peran lain untuk membuat produk lebih lengkap.

Jesse C. Slicer
sumber
Sepakat. Jika tidak ada yang lain, Bisnis jauh lebih mungkin untuk memanggil Pengembang itu lagi, hanya karena Pengembang "tahu seluk-beluk" dan Bisnis tidak perlu membuang waktu untuk melatih Programmer baru setiap kali departemen TI memilih untuk mengirim keluar Programmer terbaru, generik, kemana-mana, apa pun untuk mengerjakan set Persyaratan terbaru.
Phill W.
3

Hampir selalu ada trade-off yang dibuat antara nilai setiap fitur dalam spesifikasi, seberapa dekat spesifikasi harus diterapkan untuk bernilai, dan biaya pertemuan setiap kombinasi fitur spesifikasi. Seringkali pertukaran yang baik hanya dapat dilakukan ketika pengetahuan untuk melakukan semua hal di atas ada dalam satu orang, atau tim yang bekerja erat, termasuk arsitek dan / atau pembuat kode perangkat lunak yang sebenarnya.

Tanpa pengetahuan yang sangat terlokalisasi dan bahkan mungkin perasaan, hasilnya dapat dengan mudah berakhir sebagai produk yang sangat mahal dan hampir tidak berguna yang sangat dekat dengan spesifikasi tertulis.

Biaya membuat spek yang tidak memiliki masalah di atas sering kali lebih besar daripada melatih arsitek dan / atau pembuat kode untuk memiliki pengetahuan domain yang cukup untuk bekerja dengan spek yang kurang terperinci (dengan asumsi legalitas dan kontrak bisnis memungkinkan ini).

hotpaw2
sumber
2

Ya, pengembang perlu mengetahui bisnisnya sampai tingkat tertentu. Mereka tidak harus mengetahui detail setiap menit, tetapi mereka harus memiliki pemahaman dasar tentang apa yang digunakan untuk laporan X dan bagaimana laporan itu digunakan dalam proses bisnis. Semakin pengembang Anda memahami tentang bisnis, semakin baik solusi yang dapat mereka berikan.

Ryathal
sumber
2

Berdasarkan pengalaman saya *, satu individu dengan pengetahuan yang baik tentang domain masalah dan pengetahuan yang baik tentang pengembangan perangkat lunak lebih mungkin untuk menemukan solusi optimal untuk masalah daripada dua individu, satu dengan pengetahuan yang sangat baik tentang domain masalah dan satu dengan pengetahuan yang sangat baik pengembangan perangkat lunak, bekerja bersama.

Saya pikir sampai pada fakta sederhana bahwa komunikasi yang terjadi di otak seorang individu jauh lebih cepat dan lebih baik daripada komunikasi antar individu.

* Pengalaman utama yang saya gambar untuk menjawab pertanyaan ini adalah 10+ tahun dihabiskan untuk mengembangkan paket perangkat lunak akuntansi (dari awal hingga 'mode pemeliharaan'). Meskipun pengetahuan saya tentang pengembangan perangkat lunak cukup baik, dibandingkan dengan rekan-rekan saya, saya sering merasa terhalang oleh kurangnya pemahaman tentang domain masalah.

Daniel Pratt
sumber
Saya biasanya menemukan ketika seorang individu memecahkan masalah mereka sendiri tanpa berkonsultasi dengan orang lain itu mengarah ke churn kode yang paling. Anda tidak boleh lupa untuk memasukkan orang lain dalam arsitektur perangkat lunak Anda ... Anda mungkin tahu domain dengan baik, tetapi perangkat lunak bukan teka-teki Anda harus tata letak lebih dari beberapa kali.
visc
2

Saya ingin menjawab sebagai seseorang yang datang dari sisi bisnis, yang bekerja dengan pengembang yang menunjukkan sedikit minat dalam mempelajari dasar-dasar perdagangan, kadang-kadang bahkan tampaknya bangga tidak harus tahu tentang dasar-dasar itu: Masalahnya adalah bahwa pengembang tidak akan dapat melihat kesalahan dalam hasil pada pandangan pertama (hasil tidak masuk akal, tanda-tanda yang salah dan sebagainya), yang membutuhkan kasus uji rinci (yang kami tidak kembangkan sampai saat ini), atau pengawasan terus-menerus terhadap hasilnya. Sejauh saya bersedia mempelajari dasar-dasar pengembangan perangkat lunak untuk memudahkan komunikasi, saya ingin mendorong pengembang untuk melakukan hal yang sama.

Owe Jessen
sumber
2

Anda tidak harus melakukannya, tetapi mengapa Anda tidak mau?

Saya akan khawatir tentang setiap programmer yang enggan dan terutama tidak dapat mempelajari domain sampai tingkat tertentu. Sangat penting untuk keluar dari "menara kode gading" sesekali.

Menulis kode tanpa tahu bagaimana menggunakannya dan untuk tujuan apa kedengarannya seperti pekerjaan yang mengerikan. Siapa yang mau menghancurkan batu bata saat Anda bisa membangun katedral?

JeffO
sumber
2

Semakin terlibat pengembang dan semakin senior dalam bisnis, semakin penting memiliki setidaknya pengetahuan domain tingkat menengah atau area yang lebih bernuansa industri yang mungkin kritis tidak akan dipahami oleh tim pengembang.

Namun spesifikasi harus memadai untuk tugas-tugas tingkat bawah. Singkatnya, yang terbaik adalah melatih tenaga kerja Anda ke tingkat yang lebih rendah. Mereka mungkin menjadi programmer polyglot terbaik di dunia, tetapi jika mereka tidak dapat memahami masalah ini dengan cukup dalam, mereka selalu mengalami kegagalan atau pemrograman pawai kematian.

krystan honor
sumber
++ 1 "pemrograman pawai kematian". Itu seperti di AS kisah bayi tar .
Mike Dunlavey
1

Seharusnya selalu ada beberapa spesifikasi - Anda tidak dapat mengharapkan semua pengembang menjadi pakar domain. Pada saat yang sama, jika pengembang secara membabi buta mengikuti spesifikasi tanpa benar-benar memahami untuk apa itu, hasilnya mungkin tidak benar-benar seperti yang diinginkan klien. Sering terjadi bahwa ketika pengembang bahkan memiliki tingkat pemahaman yang agak baik (tetapi tidak ahli), mereka dapat menangkap kesalahan dan kelalaian dalam spesifikasi. Mereka juga dapat berkontribusi dan memberikan umpan balik kepada proses yang dapat membuat produk akhir jauh lebih baik.

Mungkin layak mempekerjakan beberapa ahli domain yang tugasnya adalah untuk menjalin hubungan antara klien dan pengembang untuk membantu memberikan pengembang pemahaman yang lebih baik dan juga untuk membantu menulis spesifikasi.

FrustratedWithFormsDesigner
sumber
1

Saya pikir ini sulit untuk memberikan jawaban.

Sulit untuk melihat bagaimana, katakanlah, seorang pengembang lepas dapat memahami bisnis (atau ilmu) di balik setiap aplikasi yang mereka kembangkan. Dalam situasi ini, saya pikir lebih penting bahwa pengembang tahu untuk mengajukan pertanyaan yang tepat tentang spesifikasi atau model bisnis daripada benar-benar memahami bisnis itu sendiri.

Sebaliknya, seorang pengembang perusahaan, dengan asumsi mereka telah berada dalam bisnis yang sama untuk waktu yang sama, harus benar-benar belajar bagaimana bisnis berjalan setelah beberapa bulan (atau mungkin bertahun-tahun). Dalam tim besar, Anda mungkin juga memiliki arsitek yang memahami bisnis lebih jelas daripada pengembang.

Dalam UKM dengan pengembang tunggal, penting bahwa pengembang sering berdiskusi dengan pemilik / manajer untuk menghindari pergi dan menerapkan hal yang salah.

Jadi ada banyak cara berpikir yang mungkin tentang hal ini, tetapi kuncinya adalah sama dalam semua kasus: komunikasi .

ZweiBlumen
sumber
1
Sebagai seorang freelancer, saya meyakinkan Anda bahwa saya harus memahami bisnis klien saya setidaknya cukup baik untuk berbicara dengan mereka secara cerdas tentang fitur yang mereka inginkan. Gagasan bahwa Anda dapat menulis spec tanpa memahami bisnis adalah mimpi pipa. Jadi adalah ide bahwa Anda dapat menulis spek yang sempurna dan melemparkannya "ke dinding" ke pengembang.
Marnen Laibow-Koser
1

Pengembangan perangkat lunak adalah satu-satunya profesi yang saya tahu yang mengharuskan Anda untuk tidak hanya menjadi mahir dalam profesi Anda sendiri tetapi memiliki pemahaman dasar tentang profesi yang sedang Anda tangani. Penting untuk memiliki pemahaman yang cukup tentang domain untuk berkomunikasi dengan klien dan pengembang lain dalam bahasa klien. Sebagai pengembang, Anda tidak selalu bisa mengandalkan orang lain untuk melatih Anda. Kadang-kadang Anda harus meningkatkan diri sendiri dengan penelitian pribadi, sering kali di luar jam kerja biasa.

John Ruf
sumber
3
Insinyur industri membutuhkan pengetahuan ganda ini seperti halnya semua analis. Ini tidak terbatas pada pengembangan perangkat lunak saja.
HLGEM
4
Seorang penulis teknis memiliki situasi yang sama.
Jennifer S
1

Saya benar-benar mengerti apa yang Anda maksudkan di sini karena kami, sebagai perusahaan dalam industri pariwisata, menghadapi masalah yang sama. Ketika saya adalah pengembang junior, saya juga belajar pariwisata di sebuah perguruan tinggi. Jadi, Anda bisa menebak bahwa saya tidak berasal dari latar belakang ilmu komputer tetapi pengetahuan pariwisata saya tinggi.

Kami membangun produk dalam kaitannya dengan perusahaan perangkat lunak lain saat itu, tetapi pengetahuan khusus domain masih kurang. Seperti yang Anda jelaskan, sangat sulit untuk memperbaikinya jika Anda membangun produk di industri pariwisata karena ada banyak masalah lintas sektoral, dll.

Jadi, gerakan ini memberi banyak hasil buruk dalam jangka panjang. Kemudian, kami mengambil langkah besar ke depan, dan saya mulai fokus hanya pada pengembangan daripada bagian bisnis proyek. Karena saya memiliki pengetahuan industri dan pengetahuan pemrograman, proyek tumbuh lebih efisien dari sebelumnya. Belum lagi, kita kemudian dapat membuat keputusan lebih cepat karena saya memiliki pengalaman di kedua sisi mata uang.

Sebagai jawaban konkret untuk pertanyaan Anda, sudah pasti ya menurut pendapat pribadi saya. Jika proyek yang sedang dikerjakan oleh tim Anda adalah proyek jangka panjang, maka ambil jalan yang sulit dan latih staf Anda tentang dasar-dasar dan perincian spesifik domain.

tugberk
sumber
1

Jika pengembang tetap di perusahaan / industri dalam jangka waktu yang lama, mereka akan perlahan-lahan tetapi pasti akan belajar "bisnis".

Beberapa perusahaan mengakui dan memberikan pelatihan dalam "bisnis". Perusahaan keuangan adalah contoh yang baik untuk ini.

Semakin banyak Anda mempelajari bisnis, semakin mudah untuk berbicara dengan pengguna Anda. Mereka akan merasa lebih percaya diri pada Anda. Anda akan lebih mudah memahami keanehan di mana suatu sistem mungkin salah jika itu tidak cukup seperti yang diharapkan bagi pengguna.

Untuk menjawab pertanyaan Anda, spesifikasinya tidak pernah memadai dalam pengalaman saya. Masalah umum adalah mereka sering tidak mengandung informasi yang cukup, dan keluar dari tanggal dengan cepat.

Pengalaman domain bisnis dapat menjadi kewajiban bagi beberapa perusahaan. Mereka mencari pengembang dengan pengalaman di domain saat merekrut. Beberapa perusahaan bahkan menempatkan ini lebih tinggi daripada keterampilan teknologi yang sebenarnya. (Tidak ada pengalaman finansial, tidak ada wawancara yang sangat umum, tentunya di Inggris).

Ozz
sumber
Paragraf terakhir terutama benar dalam domain bisnis di mana Anda dapat mengalami masalah hukum jika sistem tidak dibangun dengan benar.
HLGEM
Saya tidak setuju: Tidak ada jaminan pengembang jangka panjang yang kompeten dapat mempelajari "bisnis". Masih membutuhkan organisasi perusahaan tertentu, dan ini sangat buruk dengan tim satelit.
Darien
0

Dari pengalaman pribadi, spesifikasinya cukup selama Anda memiliki seseorang di tim yang bekerja dengan Anda yang memiliki pengetahuan domain.

Saya bekerja di industri yang sangat terspesialisasi: kami membuat perangkat lunak untuk media penyiaran. Saya hampir tidak tahu apa-apa tentang penyiaran, tapi saya tahu kode dan saya tahu data, dan saya punya orang-orang baik di tim manajemen proyek yang mengerti penyiaran. Formula itu sudah cukup baik selama beberapa tahun terakhir bagi saya untuk menghasilkan fungsionalitas yang baik yang disukai klien.

Mason Wheeler
sumber