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.
sumber
Jawaban:
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.
sumber
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:
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber