Sebagai seorang programmer, bagaimana saya bisa mempercepat adopsi dan pemahaman saya tentang aturan bisnis?

11

Saya telah menjadi pengembang untuk sementara waktu. Saya jauh dari yang terbaik di luar sana. (Ketika saya duduk sendirian di ruangan ini, saya bertanya-tanya apakah saya bahkan yang terbaik di sini.) Namun, saya mulai memahami alat saya, dan saya mulai percaya pada kemampuan saya untuk berpikir dan belajar.

Ketika memulai pekerjaan baru, saya selalu percaya bahwa saya dapat mempelajari basis kode jika itu adalah bahasa yang saya tahu. Jika itu bukan bahasa atau kerangka kerja yang saya tahu, saya percaya bahwa saya dapat memahami konsep cukup untuk mempelajarinya (dan hanya membaca dokumentasi). Ini adalah bagian dari skillet kami sebagai programmer dan saya bangga bahwa saya dapat memenuhi standar ini.

Namun, untuk semua ini - salah satu kelemahan utama saya adalah mempelajari dan menginternalisasi aturan bisnis untuk klien yang saya bekerja dengan cara cepat - apakah saya seorang karyawan yang dibayar atau seorang kontraktor. Saya baik-baik saja dengan basis kode, tetapi aturan dan proses bisnis untuk bisnis tertentu sepertinya selalu butuh waktu untuk saya mengerti sepenuhnya. (Sebagai contoh, ini bisa menjadi tripup ketika menulis ulang aplikasi perusahaan.)

Sebagai pengembang, apa cara terbaik untuk mengasimilasi aturan dan proses bisnis dengan cepat dan efisien? Apakah mungkin tanpa menjadi ahli materi pelajaran atau hanya memiliki pengalaman bertahun-tahun dengan klien, perusahaan, atau bisnis?

makan siangme317
sumber
3
Ini adalah pertanyaan yang sangat bagus untuk didiskusikan dengan programmer lain, tetapi sayangnya itu di luar topik untuk situs tanya jawab ini: keduanya terlalu luas (ada banyak hal untuk dikatakan tentang masalah ini) dan terutama berdasarkan pendapat (orang yang berbeda akan memberitahu Anda berbeda hal, pada dasarnya apa yang bekerja untuk mereka ... bagaimana Anda akan memilih jawaban "benar"?).
Andres F.

Jawaban:

4

Bagi saya, itu dengan membaca dan memahami basis kode.

Saya mengatakan itu karena dua alasan utama:

  1. Orang payah. Oh, tidak sengaja (biasanya), tetapi dalam bisnis saya menemukan bahwa orang sering memiliki pemahaman yang sedikit berbeda tentang aturan bisnis. Dan setiap orang memiliki model mental mereka sendiri yang pada gilirannya kehilangan kesetiaan saat mereka mencoba mengomunikasikannya kepada Anda. Tapi kodenya tidak bohong. Orang-orang dapat memikirkan apa yang mereka inginkan tentang bagaimana segala sesuatu seharusnya bekerja, tetapi kodenya benar.

  2. Bangun yayasan dulu. Jadi, jika setiap orang memiliki model mental mereka sendiri tentang apa persyaratan dan proses khusus bisnis ini, bagaimana Anda membangunnya? Bagi saya, dan saya berharap banyak programmer, saya membangun model mental saya yang terbaik dari kode. Kode memiliki pola. Kode memiliki abstraksi. Saya punya banyak pengalaman mengambil kode dan membangun model mental darinya. Begitu saya setidaknya memiliki bentuk yang tidak jelas tentang apa yang ada dan bagaimana mereka berhubungan, maka saya dapat berbicara dengan orang-orang bisnis. Lalu saya bisa mengajukan pertanyaan yang tepat dan lebih cocok memasukkan jawaban mereka ke dalam teka-teki.

Telastyn
sumber
2
Pendekatan Anda terdengar agak ayam dan telur.
Robert Harvey
@RobertHarvey Bisakah Anda menjelaskan apa yang Anda maksud dengan 'ayam dan telur'?
Falgantil
3
@ BjarkeSøgaard: Anda menulis kode untuk memahami aturan bisnis tanpa terlebih dahulu memahami aturan bisnis sehingga Anda dapat menulis kode yang sesuai. Lihat juga Chicken and the Egg jika Anda bertanya apa arti idiom itu.
Robert Harvey
Supaya jelas, saya fokus membaca kode dulu.
Telastyn
1
@ Telastyn Terkadang, kode tidak lengkap atau salah - atau tidak ada. Saya harus menulis kode untuk proses bisnis tanpa dokumen - baik sebagai fitur baru atau sebagai sistem baru. Lebih lanjut, seringkali, kode tidak mencakup semua ketika datang ke aturan bisnis - kode untuk sistem persediaan dapat menunjukkan kepada Anda bagaimana proses bekerja, tetapi tidak selalu mengapa proses didefinisikan seperti itu. Saya percaya bahwa mengetahui mengapa segala sesuatu bekerja dan mengapa itu dilakukan selalu mengarah pada solusi yang lebih baik.
lunchmeat317
3

Jangan terlalu keras pada diri sendiri. Kadang-kadang saya bertanya-tanya mengapa mereka bahkan repot-repot menyebut mereka bisnis "aturan" tetapi saya kira menyebut mereka "cara kita biasanya melakukan sesuatu kecuali ada hal lain yang berlaku maka kita melakukannya secara berbeda" mungkin akan menghina mereka. Bisnis berantakan. Mereka menyulap kebutuhan pelanggan, lembaga hukum, akuntansi, peraturan, vendor, karyawan, manajer dan pemerintah daerah. Mereka tidak selalu punya alasan.

Saya pikir cara terbaik adalah memastikan Anda menghabiskan waktu dengan sebanyak mungkin orang bisnis. Ini bisa sulit bagi sebagian orang di posisi teknis.

  1. Anggarkan waktu Anda dan hargai waktu mereka, tetapi dapatkan sebanyak yang Anda bisa.
  2. Anda harus mengajukan pertanyaan. Mereka tidak berpikir seperti programmer dan memecah segalanya dan memiliki pemahaman lengkap bagaimana informasi saling berhubungan.
  3. Jangan berpura-pura seperti yang Anda mengerti. Jika Anda tahu sebanyak orang-orang bisnis lain mereka akan membuat Anda melakukan kedua pekerjaan itu. Lihat # 2.
  4. Jangan berharap dokumentasi. Tawarkan banyak pujian jika Anda pernah mendapatkannya.
  5. Tunda kritik. Proses dan prosedur mungkin memiliki redundansi dan potensi penginapan potensial lainnya, tetapi mungkin ada alasan untuk itu. Pelajari alasannya, tetapi jangan kaget ketika mereka berkata, "Kami selalu melakukannya dengan cara itu."
  6. Bersikap sopan, baik hati dan berbagi makanan ringan Anda. Anda berurusan dengan orang-orang. Katakan halo. Tanyakan bagaimana keadaan mereka. Tanyakan mengapa mereka masuk ke industri ini, sudah berapa lama mereka bersama perusahaan.

Anda bukan batal disebut programmer, Anda seseorang. Biarkan mereka tahu Anda ada di sana untuk mempermudah pekerjaan mereka. Sayangnya, Anda bisa menjadi pahlawan atau kambing. Itu sifat bisnis kami.

JeffO
sumber
Saya benar-benar harus mengerjakan # 5 ..... Saya akan mencoba mengingat ini.
lunchmeat317
# 5 benar-benar besar. Saya bekerja di farmasi. Sebuah pertanyaan dapat muncul dengan "Saya tidak tahu komputer bisa melakukan itu" atau "Kecuali kita mengikuti ini secara khusus orang bisa mati ." Dalam nada itu, tidak pernah, pernah mengatakan "kenapa kamu tidak hanya " karena "hanya" akan sering menunjukkan ketidaktahuan Anda tentang kompleksitas interaksi yang diberikan.
Alan Shutko
3

Saya akan merekomendasikan membaca buku berjudul 5 Elemen Berpikir Efektif oleh Edward Burger dan Michael P. Starbird. Ini terkait dengan memahami konsep-konsep baru secara umum, tetapi saya pikir itu berlaku untuk situasi ini.

Inilah beberapa poin menarik dari buku ini:

Kuasai dasar-dasarnya

Jika Anda tidak tahu dasar-dasarnya, Anda akan membangun pemahaman Anda di atas fondasi yang goyah. Jadi, Anda perlu mengajukan pertanyaan-pertanyaan yang terdengar bodoh itu yang tidak ditanyakan orang lain.

Biarkan kesalahan menjadi panduan Anda

Terkadang membantu untuk mengajukan pertanyaan yang jelas salah sehingga Anda dapat mengungkap kurangnya pemahaman Anda. (Mis: Maksud Anda admin memiliki akses ke setiap dokumen? Oh. Kenapa?)

Ajarkan atau jelaskan kepada orang lain

Ketika Anda mencoba mengajarkannya kepada orang lain, Anda akan mulai mengungkap di mana Anda memiliki kesulitan untuk memahami.

Semoga itu bisa membantu!

Venkat D.
sumber
0

Sebagai pengembang saya menyadari bahwa saya langsung menerjemahkan bisnis ke dalam kode, struktur data, kelas yang mungkin, dll ... Saya beralih dari sesuatu yang abstrak dan sering, tidak terdefinisi ke sesuatu yang spesifik, sesuatu dengan "bentuk". Saya mulai kode dengan segera dan, kurangnya informasi , membawa saya ke refactor sering. Setiap refactor membuat saya berpikir bahwa ada terlalu banyak celah dalam pemahaman saya tentang bisnis .

Bagaimana saya mulai menyelesaikan ini?

Saya memaksakan diri saya untuk membaca semua dokumen yang dibuat selama analisis fungsional dan fase sebelumnya. Saya mencoba melakukannya karena saya adalah pelanggan atau pengguna akhir . Saya perlu memahami apa yang dicari pelanggan dengan aplikasi dan persyaratan tersebut. Tapi aku harus menjauh dari iblis.

Pekerjaan kami memberi kami keterampilan luar biasa yang tidak dimiliki pelanggan. Kami berpikir dalam struktur bersyarat pada cara yang orang lain tidak. Jadi saya mulai menghadapi persyaratan. Mencari kontradiksi atau inkoherensi . Sedikit otak menyerbu apa yang saya mengerti. Merumuskan skenario hipotetis.

Ini menuntun saya ke pertanyaan dan keraguan. Saya mengetik semua orang dari mereka dan akhirnya saya mengatur pertemuan dengan siapa pun yang bisa menyelesaikan keraguan saya.

Meringkas, saya mengubah sudut pandang saya. Saya mencoba melihat masalah dari sudut pandang lain. Tapi saya menempatkan beberapa keterampilan dev pada prosesnya. Apa yang berakhir dengan banyak pertanyaan dan keraguan yang harus dipecahkan. Setelah diselesaikan, pemahaman saya tentang bisnis lebih dalam.

Belajar> Keraguan> Pertanyaan> Jawaban> Memahami (ulangi siklus berulang-ulang)

Laiv
sumber