Haruskah analisis menjadi agnostik teknologi? [Tutup]

11

Saya bertengkar kemarin dengan salah satu kolega saya. Dia (seorang analis bisnis, sebelumnya seorang programmer) berpikir bahwa dia harus menyadari teknologi yang digunakan untuk mengimplementasikan sistem, sehingga dia dapat mengambil keputusan desain yang lebih baik. Menurut pendapat saya (saya seorang programmer), analisis tidak boleh digabungkan dengan teknologi apa pun dan saya percaya bahwa analis yang baik dapat membuat desain yang hebat tanpa khawatir tentang detail implementasi.

Apakah saya benar berpikir seperti itu? Adakah alasan mengapa analis bisnis perlu mengetahui teknologi yang digunakan untuk mengimplementasikan sistem?

EDIT: Saya percaya bahwa saya menggunakan istilah yang salah ketika mengatakan business analyst. Mungkin yang saya maksud adalah arsitek, atau analis sistem. Saya tidak terbiasa dengan istilah-istilah ini. Saya maksudkan sesuatu seperti arsitek atau analis sistem jika Anda mau.

Terima kasih semuanya atas jawaban Anda yang luar biasa! Saya belum berpengalaman dan saya senang Anda membuka mata saya tentang ini.

marco-fiset
sumber
8
Apakah Anda bertanya kepadanya tentang kapan itu akan membuat perbedaan?
Karl Bielefeldt
Dia tidak memberi saya contoh, tetapi kami menggunakan berbagai teknologi mulai dari sistem AS / 400 lama, beberapa Delphi dan kemudian. Net untuk sesuatu yang baru. Tetapi saya masih berpikir bahwa jika Anda merancang sesuatu yang akan diterapkan dalam RPG, Anda akan mendesainnya dengan cara yang sama dalam C # menggunakan pemisahan masalah, dan lapisan yang tepat untuk logika bisnis, dll
marco-fiset
Dia perlu tahu sebanyak pengguna. AS / 400 vs aplikasi web adalah detail yang ia butuhkan.
coder
2
Perbedaannya ada di bagian "maka Anda harus menyajikan sesuatu kepada pengguna". Analis bisnis perlu mengetahui jenis antarmuka pengguna apa yang digunakan dan opsi apa yang tersedia. Ada alat di luar sana yang dapat digunakan analis bisnis yang pada dasarnya membiarkan mereka menentukan apa yang seharusnya terjadi secara fungsional ketika pengguna melakukan x (seperti mengklik tombol). Jika platform tidak memiliki tombol (layar hijau) maka itu adalah informasi yang berguna.
coder
1
@marcof: Antarmuka pengguna yang ideal adalah tempat pengguna memikirkan suatu pemikiran, dan apa yang ingin mereka lakukan hanya dilakukan. Apa pun yang kekurangan itu dilumpuhkan oleh keterbatasan teknologi yang kami miliki, jadi tentu saja BA perlu memahami konteks apa mereka dapat merancang sistem.
gahooa

Jawaban:

18

Tentu saja ada kasus di mana masuk akal bagi analis bisnis untuk memahami teknologi setidaknya cukup baik untuk memahami di mana masuk akal untuk mempertanyakan pengguna bisnis tentang seberapa penting fitur tertentu. Misalnya, jika bisnis terbiasa dengan perilaku aplikasi klien gemuk sementara aplikasi baru akan berbasis web, kemungkinan akan ada banyak "persyaratan" yang akan sepele dalam klien gemuk tetapi relatif sulit. dengan aplikasi berbasis web. Jika analis bisnis memahami apakah permintaan dari bisnis akan sepele untuk tim pengembangan atau apakah akan melibatkan 20 jam pengembangan AJAX,

Untuk setiap proyek tertentu, kemungkinan ada sejumlah besar persyaratan yang pada kenyataannya akan memuaskan bisnis dengan melakukan berbagai jenis trade-off. Semakin memahami analis bisnis tentang trade-off apa yang mereka lakukan, semakin besar kemungkinan mereka akan memberikan serangkaian persyaratan yang memaksimalkan manfaat bagi bisnis sambil meminimalkan biaya.

Gua Justin
sumber
4
+1 untuk "memaksimalkan manfaat bagi bisnis sambil meminimalkan biaya". Itu tidak bisa dilakukan tanpa BA memahami teknologi. Tugas BA untuk memahami lebih banyak teknologi daripada programmer, pada tingkat yang lebih tinggi.
mattnz
Sebagai tambahan, bukan persyaratan yang harus diubah, tetapi kendala yang mempengaruhi implementasi persyaratan tersebut. Hanya karena bisnis tidak dapat memperoleh apa yang mereka inginkan bukan berarti mereka harus berhenti menginginkannya, meskipun itu memaksa mereka untuk merasionalisasi apa yang dapat mereka miliki sekarang . mis. Memiliki pekerjaan yang buruk sekarang tidak menghentikan saya menginginkan yang lebih baik, itu hanya tidak dapat dicapai dengan kendala saat ini. Yang penting itu membuka peluang bahwa jika kendala dihapus, persyaratan sekarang dapat dipenuhi. Jika Anda mengubah persyaratan untuk saat ini, Anda kehilangannya selamanya
BiGXERO
8

Setelah menangani kedua sisi masalah ini, saya harus setuju dengan Analis. Saya telah melihat beberapa desain yang sangat buruk yang dihasilkan dari kurangnya pemahaman tentang kemampuan teknologi. Dalam beberapa kasus, itu adalah hasil dari mengambil sensasi pemasaran sebagai kebenaran. Secara umum, masalahnya adalah menghasilkan spesifikasi yang tidak sesuai dengan kemampuan teknis.

Analis harus menentukan Apa yang perlu dilakukan, Kapan, dan oleh Siapa. Mereka harus tahu mengapa itu dilakukan. Prioritas pembangunan harus lebih tergantung pada Mengapa daripada faktor-faktor lain. Tim desain dan pengembangan perlu menangani Bagaimana. Untuk mengembangkan sistem yang hemat biaya, analis perlu menentukan apa yang perlu dilakukan dalam hal yang tidak mendorong batas-batas teknologi yang tersedia.

Mendorong batas dapat meningkatkan biaya dalam beberapa cara, tetapi dalam beberapa kasus mungkin memiliki pengembalian yang signifikan. Beberapa faktor biaya adalah:

  • Eksperimen mungkin diperlukan untuk mengembangkan solusi kerja;
  • Karyawan baru atau konsultan dengan pengetahuan khusus mungkin perlu diperoleh;
  • Pelatihan tentang teknologi baru mungkin diperlukan;
  • Pengembangan cenderung lebih lambat dan tingkat bug lebih tinggi; dan
  • Upaya ekstra dapat menunda solusi sederhana yang memiliki nilai lebih langsung.
BillThor
sumber
6

Jika teknologi yang akan digunakan diketahui itu harus dipertimbangkan oleh analis saat membuat desain. Teknologi yang berbeda melakukan berbagai hal secara berbeda dan desain yang tidak memperhitungkan perbedaan itu akan mengalami masalah.

Namun, analis bisnis tidak boleh peduli tentang teknologi apa yang digunakan, tugas mereka adalah untuk mengumpulkan aturan bisnis dan membuatnya dimengerti oleh tim teknis. Analis / arsitek / desainer sistem atau nama lain yang mungkin diberikan kepada mereka harus mengetahui teknologi yang digunakan dan mendesain di sekitarnya karena mereka yang seharusnya melakukan desain yang sebenarnya, bukan analis bisnis.

Ryathal
sumber
6

Saya percaya ada titik di antara dua garis pemikiran yang mungkin lebih realistis. Sementara desain tingkat tinggi mungkin yang terbaik ketika mempertahankan teknologi agnostik, harus ada pertimbangan kendala dan persyaratan dunia nyata yang diketahui yang harus dimasukkan ke dalam desain. Apa level desain ini? Apakah Anda memiliki persyaratan yang cukup? Seberapa fleksibel lingkungannya? Apakah manajemen diinvestasikan ke arah teknis tertentu?

Apakah tidak ada parameter operasional yang mengarahkan Anda ke arah tertentu? Apakah Anda memiliki beragam sumber daya yang mampu menerapkan solusi dalam tumpukan teknologi apa pun? Apakah ada masalah interoperabilitas yang membutuhkan akses ke sistem lain?

Jawaban untuk pertanyaan-pertanyaan ini diperlukan sebelum Anda dapat secara definitif mengatakan apakah teknologi harus menjadi bagian dari persamaan atau apakah desain harus mendorong pemilihan teknologi.

Karena tidak ada kendala dan menjadi desain tingkat tinggi, saya mungkin setuju dengan pemikiran Anda bahwa desainnya benar-benar agnostik. Namun, dalam 20+ tahun pengalaman saya, saya jarang berada dalam situasi di mana tidak ada kendala yang membatasi pilihan saya - dan yang mendorong desain saya ke arah teknologi atau keluarga teknologi tertentu.

Larry Hector
sumber
3

The yang ideal antarmuka pengguna akan di mana pengguna berpikir pikiran, dan apa yang mereka inginkan dilakukan hanya dilakukan. Apa pun yang kekurangan itu dilumpuhkan oleh keterbatasan teknologi yang kita miliki, jadi tentu saja BA perlu memahami konteks apa mereka dapat merancang sistem.

gahooa
sumber
2

Teknologi yang berbeda dapat memiliki struktur biaya dan efisiensi yang sangat berbeda untuk menyelesaikan masalah yang diberikan. Biaya-biaya ini dapat mencakup hal-hal seperti biaya perekrutan di area lokal, biaya energi dan pendinginan untuk sistem tertentu, kode yang ada dan kemungkinan penggunaan kembali peralatan yang ada, dll., Dll. Jadi, ya, mungkin orang dapat mengabaikan kendala ini dan perincian teknologi spesifik jika seseorang bekerja pada proyek di mana biaya dan efisiensi tidak berada di dekat sama pentingnya dengan pertimbangan lain (seperti dalam keselamatan penerbangan, kontrol pembangkit nuklir, implan medis, dll). Tetapi untuk sebagian besar situasi bisnis, manajemen mungkin peduli tentang struktur biaya dari solusi potensial versus manfaat dari implementasi sistem.

hotpaw2
sumber
1

Analis bisnis harus tahu seperti apa aplikasi yang kita kembangkan seperti * Aplikasi Web / Aplikasi Konsol / Aplikasi Seluler / Aplikasi Pelaporan dll * sehingga dia bisa lebih baik dengan seperangkat fitur yang bagus untuk aplikasi tersebut atau mendorong kembali pada pengguna pada harapan yang tidak mungkin seperti drag and drop bersarang tingkat 3 (misalnya)

Dia tidak perlu mengetahui teknologi seperti Java / C # / Python / SQL dll.

java_mouse
sumber
1

Proses analisis itu sendiri harus sepenuhnya teknologi-agnostik. Ketika Anda meneliti klien dan kebutuhannya, Anda harus melakukannya dengan pikiran terbuka sepenuhnya. Sisi lain dari koin, bagaimanapun, adalah bahwa analis sering diminta untuk memberikan rekomendasi dan mungkin juga diperlukan untuk menangani arsitektur sistem juga. Ini adalah aspek yang sama sekali berbeda dari peran di mana pemahaman yang lebih luas tentang teknologi yang tersedia sangat penting, karena dapat membuat perbedaan besar bagi pelanggan tidak hanya dalam hal kemampuan untuk mendapatkan proyek dari tanah, tetapi juga dalam hal dari kebutuhan jangka panjang pelanggan, dan keberlanjutan proyek itu sendiri.

Meskipun benar bahwa bagian besar dari perancangan perangkat lunak pada dasarnya sama terlepas dari teknologi yang digunakan, selalu ada area di mana desain akan dipengaruhi oleh pilihan teknologi. Pilihan platform dapat memengaruhi pilihan bahasa dan API, sementara ketersediaan keahlian, dukungan, dan bahkan biaya juga akan berdampak pada pilihan yang dibuat. Jadi dari satu perspektif, bagian dari posisi Anda dibenarkan karena analisis yang sebenarnya harus dilakukan tanpa pengaruh teknologi spesifik, namun menggunakan analisis untuk menentukan desain akan selalu membutuhkan pengetahuan teknologi yang lebih luas, sehingga analis dapat membuat rekomendasi yang akan memungkinkan penerapan desain yang dimaksudkan untuk memenuhi kebutuhan pelanggan.

S.Robins
sumber
0

Setiap teknologi memiliki batasan dan kendala, oleh karena itu masuk akal bagi analis untuk mempertimbangkan batasan tersebut. Di sisi lain, seorang analis yang mengenal .net dengan baik, tetapi belum melihat Java sejak akhir tahun sembilan puluhan, kemungkinan besar akan merancang solusi .net - menggunakan terminologi .net dan pola desain - bahkan jika Java (atau RoR dll.) akan lebih cocok dengan masalahnya. Relatif sulit untuk mengimplementasikan desain seperti itu di teknologi lain nanti.

Oleh karena itu, saya pikir seorang analis harus agnostik ketika teknologi belum dipilih, tetapi berpengalaman dalam kasus-kasus di mana pilihan telah dibuat.

pengguna281377
sumber
Bukankah pola desain agnostik bahasa?
marco-fiset
2
Mereka biasanya tidak terikat pada bahasa tertentu, tetapi beberapa tumpukan teknologi mungkin membuatnya lebih mudah diimplementasikan daripada yang lain. Sebuah desain yang dibuat dengan ASP.net MVC dalam pikiran mungkin rumit untuk diimplementasikan dalam PHP atau Oracle Application Express.
user281377