Bagaimana cara terbaik untuk melibatkan pengembang junior dalam merancang aplikasi dari awal? [Tutup]

9

Kami adalah tim yang terdiri dari 3 pengembang (2 pengembang berpengalaman dan satu junior).

Kami baru saja memulai proyek baru. Kami telah merancang aplikasi, upaya terkonsentrasi pada pemilihan arsitektur yang tepat dan sekarang kami meletakkan baris pertama kode. Kami menulis inti dari itu, apa yang akan menjadi dasar dari seluruh aplikasi.

Ini bukan aplikasi yang mudah juga. Persyaratan kinerja keras, didistribusikan secara masif, model entitas yang kompleks, dll.

Kita semua berada di luar zona nyaman kita, terutama junior. Dia tidak memiliki pengalaman untuk membuat desain yang baik dimuka. Tapi itu bukan masalah karena aku dan dev yang lain ada di sana untuk membantu dan kami berdua percaya pada mentoring dan dalam membangun tim, tapi ... kami tidak tahu persis apa yang akan menjadi cara terbaik untuk melakukannya, sehingga ia mendapat pengalaman yang menyenangkan dan mempelajari jumlah keterampilan maksimum.

Kami berdua menyadari bahwa kami tidak memiliki junior di proyek-proyek baru, hanya pada yang sudah ada di mana lebih mudah di junior karena ia memiliki seluruh basis kode untuk belajar dan menginspirasi. Tetapi untuk aplikasi ini kami hampir tidak memiliki kode. Kami baru saja mulai.

Kami sedang memikirkan beberapa pendekatan:

  • minta dia mencoba sendiri selama beberapa hari kemudian campur tangan dan refactor kode bersama dengannya, arahkan dia ke arah yang benar kemudian ulangi => Mungkin bukan pengalaman yang menyenangkan baginya karena kita akan menunjukkan kesalahannya pada setiap refactor ;
  • minta dia memasangkan pemrograman dengan salah satu dari kita => dia mungkin hanya menjadi "pengamat" dan setuju dengan semua yang kita lakukan, tanpa benar-benar belajar banyak atau mencerna banyak informasi;
  • minta kami membuat kerangka setiap modul, dengan desain yang solid dan kemudian memberikan modul kepadanya untuk menambahkan bagian yang hilang => mungkin tidak menyenangkan untuk diambil setelah kami dan ada risiko bahwa dia hanya memperhatikan mengisi celah dan tidak untuk seluruh desain.

Bagaimana kita bisa melibatkannya dalam desain sehingga dia tidak merasa tertinggal di luar dari itu dan agar dia belajar banyak dari pengalaman dan mendapatkan cukup kepercayaan untuk mencobanya sendiri?

Meme
sumber
5
Pengalaman saya dengan anggota tim yunior (sangat) adalah bahwa beberapa hari antara ulasan terlalu lama. Mereka memukul dengan niat baik tanpa menemukan jalan ke depan. Sesi pagi dan sore pendek untuk bulan pertama atau lebih berfungsi lebih baik. Begitu mereka menemukan kaki mereka - dan, yang lebih penting, tahu kapan harus meminta bantuan - kami mengurangi frekuensi.
Michael Green

Jawaban:

12

Saya merekomendasikan pedoman berikut:

  • Libatkan pengembang junior dalam rapat desain Anda dan minta masukannya. Ini akan membuatnya berpikir tentang gambaran besar, bahkan jika dia tidak siap untuk melakukan desain tingkat tinggi sendiri.
  • Cobalah untuk mengisolasi dan dengan jelas mendefinisikan modul aplikasi untuk ditugaskan ke pengembang junior. Jelaskan secara tertulis apa input / output dan persyaratan lain dari modul. Hindari memberinya modul yang tidak dapat dengan mudah diuji atau yang hanya dapat diuji ketika diintegrasikan dengan modul lain yang belum ditulis.
  • Mungkin pengembang junior dapat membantu dengan cara selain mengkode aplikasi inti. Misalnya, dia bisa menulis kode tes. Jauh dari pekerjaan kasar, menulis skrip pengujian yang baik membuat kontribusi yang berharga untuk proyek dan juga memberikan pengembang junior pemahaman yang kuat tentang proyek.
Chris Merck
sumber
2
Pastikan mereka duduk dalam desain. Kemudian dia akan mengerti di mana kontribusinya cocok secara keseluruhan, dan nilai apa yang dia tambahkan. Dia mungkin tenggelam dalam kompleksitas tetapi setidaknya dia akan tahu di laut mana dia berada!
Michael Green
1

Saya pikir itu tergantung pada area mana yang Anda ingin agar pengembang junior untuk meningkatkan Ketika saya masih sangat junior, mereka biasa memberi saya API yang saya butuhkan untuk membangun satu hal terbatas, seperti:

  • fungsi ini memberikan N jumlah personel dari tabel Personil
  • fungsi ini menyediakan statistik personel mengingat id personel

->

Tugas: buat halaman dengan daftar personel yang menunjukkan statistiknya ketika catatan personel diklik. Berikut adalah contoh halaman sederhana yang dibuat sebelumnya dalam proyek.

Aspek yang paling penting dari tugas yang diberikan sedang dipecahkan hanya dengan sumber daya yang diberikan dan tidak memerlukan perubahan di dalamnya.

uylmz
sumber
0

Semua 3 cara terlihat bagus untuk saya. Sebenarnya mencoba 10 cara lincah yang berbeda pada saat yang sama akan memberi Anda hasil yang baik segera, setidaknya Anda akan tahu cara mana yang bekerja dan mana yang tidak (yang mana yang akan bekerja paling baik sangat tergantung pada kepribadian para pemain).

Masalah pemrograman pasangan tidak akan terjadi jika Anda tetap berpegang pada proses dengan pengetikan / pemikiran topi berganti setiap 10 menit (atau lebih), tidak terkecuali, mengikuti proses yang awalnya dijelaskan oleh Kent Beck (saya tidak ingat di mana)

Adapun melibatkan orang lain dalam desain - apa yang kami temukan yang membantu adalah jika selama fase desain beberapa dokumen desain (dengan beberapa model UML) dibuat. Orang-orang lain (junior Anda) kemudian dapat membuktikan membacanya, mengulasnya, memerankan pendukung iblis. Peran pihak ke-3 yang tidak murni dan independen ini sebenarnya bisa sangat bermanfaat, misalnya untuk pengujian eksplorasi - http://www.softwaretestinghelp.com/exploratory-testing-beyond-traditional-testing-boundaries

xmojmr
sumber