Bagaimana cara mendapatkan praktik pribadi di metodologi pengembangan kelas berat?

9

Saya berada di pekerjaan baru di mana proyek ini harus memenuhi standar kualitas yang ketat, didokumentasikan dengan teliti, dikelola dengan sangat rinci, diagram UML, dan semua hal yang bertolak belakang dengan "koboi pengkodean" di mana sebagian besar pengalaman kerja masa lalu saya telah . Pikirkan cara aerospace skala besar atau perangkat lunak perangkat medis dikembangkan.

Saya senang meninggalkan kekacauan pengkodean koboi dan saya penasaran melihat seberapa baik metode rekayasa kelas berat berjalan. Tetapi bagaimana seseorang dapat dengan cepat mendapatkan pengalaman dengan metode yang berat?

Selain hanya berada di pekerjaan selama beberapa bulan / tahun, yaitu.

Dengan bahasa belaka, atau API baru, seseorang dapat meretas program uji mainan, membaca, sengaja membuat kesalahan untuk melihat apa yang terjadi, dll. Seperti menjadi pandai bersepeda atau bermain alat musik, latihan sangat penting. Sangat mudah untuk mengambil seruling dan menghabiskan setengah jam setiap hari; tidak perlu bergabung dengan orkestra atau menjadi konsultan seruling penuh waktu. Tetapi bagaimana mempraktekkan kegiatan rekayasa perangkat lunak yang besar, kompleks, melibatkan tim, dan sebagian besar tentang komunikasi dan perencanaan, dan menghindari miskomunikasi dan melampaui jadwal dan batas anggaran?

Tampaknya ini tidak mungkin dilakukan solo. Apakah ada cara sejumlah kecil orang dapat mensimulasikan rekayasa proyek besar secara keseluruhan dalam skala kecil dalam waktu singkat (satu hari)?

DarW
sumber

Jawaban:

1

Apakah ada cara sejumlah kecil orang dapat mensimulasikan rekayasa proyek besar secara keseluruhan dalam skala kecil dalam waktu singkat (satu hari)?

Ya, ini mungkin sampai tingkat tertentu. Sekitar 10 tahun yang lalu saya mengambil bagian dalam lokakarya di konferensi OOP di Munich di mana 16 orang diberi tugas untuk membuat analisis kasar dan desain untuk perangkat lunak bisnis kecil. Paruh pertama hari itu terutama tentang menemukan struktur tim untuk menyelesaikan tugas dengan 16 orang, dan paruh kedua hari itu berfokus pada penyelesaian tugas dengan tim ini.

Selama bagian pertama kami dipandu untuk membagi 16 orang menjadi kelompok empat. Setiap empat orang-tim harus menyusun saran untuk struktur tim (di bawah tekanan waktu), setelah itu proses tembak-menembak diterapkan untuk membuat keputusan mana struktur tim yang mungkin yang terbaik dan harus digunakan untuk bagian kedua dari lokakarya. .

Sayangnya, sementara bagian pertama, kami membuat kesalahan untuk mencoba memberikan masing-masing dari 16 orang pekerjaan dalam struktur tim yang dimaksud. Kesalahan itu menyebabkan kekacauan di babak kedua - karena 16 orang terlalu banyak untuk menyelesaikan tugas seperti itu. Solusi kerja mungkin adalah untuk membagi 16 orang lagi ke tim yang lebih kecil, atau memilih 3 atau 4 orang untuk melakukan pekerjaan utama, tetapi dalam panasnya saat kami melewatkan untuk melihat ini.

Saya masih mendapat kesan bahwa saya belajar banyak tentang masalah-masalah khas yang mungkin dihadapi seseorang di organisasi proyek yang lebih besar hari itu. Saya tidak tahu di mana Anda dapat mengunjungi bengkel semacam itu di dekat Anda, atau yang menawarkan hal seperti itu saat ini, tetapi jika Anda memiliki kesempatan, saya akan sangat menyarankan untuk hadir.

Doc Brown
sumber
2

Mulailah dengan daftar periksa . (Anda tahu itu adalah langkah pertama, bukan?)
Pastikan daftar periksa mencantumkan semua dokumentasi standar untuk proyek Anda saat ini. yaitu. UML Diagram, spek fungsional, desain level tinggi dan level rendah, dll ... Insinyur sistem dalam diri saya akan menyarankan menggunakan RTVM (persyaratan matriks verifikasi penelusuran)

Pilih contoh program untuk dikerjakan. Jika Anda tidak dapat memunculkannya, google "code katas" atau periksa arsip tantangan codejam Google. Atau hanya membangun kalkulator. :-)

Buat spesifikasi fungsional untuk program sampel Anda. Kemudian pindah ke desain tingkat tinggi, diagram UML, dll ... Buat sesuai spesifikasi. Menguji. Setiap kali Anda menemukan cacat yang signifikan dalam spesifikasi Anda (seperti yang didefinisikan oleh praktik kerja Anda saat ini), maka Anda perlu melangkah kembali ke tahap SDLC dan merevisinya sebelum bergerak maju lagi.

Untuk putaran pertama Anda, silakan dan tetap kecil. Bersepeda melalui proses lebih penting daripada berlebihan dalam tahap tertentu. Untuk putaran selanjutnya, tambahkan fitur yang Anda tinggalkan. Menelusuri, mencatat, analisis kinerja, scaffold pengujian, dll. Apa yang ingin Anda tambahkan akan tergantung pada apa yang diharapkan majikan Anda untuk pekerjaan Anda yang sebenarnya.

Setelah Anda mengulangi siklus desain / build / uji / ulangi beberapa kali, Anda akan memiliki keterampilan dan pengalaman dalam komponen "kelas berat" yang membuat Anda khawatir sekarang. Iterasi juga akan menunjukkan kepada Anda interkoneksi antara berbagai tahapan dan dokumentasi yang dihasilkan. Pelajaran berharga di sana menunjukkan bagaimana perubahan kode 5 menit dapat memiliki efek riak multi-jam di tempat lain karena pembaruan dokumen dan persyaratan pengujian.

agas
sumber
1
@gnat - alat peraga untuk tautan pada daftar periksa. Tambahan yang bagus
-1

Pengalaman dengan latihan "kelas berat" hanya berasal dari melakukan hal yang nyata. Tidak ada cara untuk secara efektif mempraktikkannya secara terpisah. Namun, Anda dapat mempelajarinya. Ada banyak studi kasus dan sumber yang dapat Anda pelajari dan renungkan.

Namun, tidak semua praktik yang Anda lihat atau pelajari selalu positif. Pengembangan perangkat lunak adalah hal yang cair, dan apa yang kelihatannya keras dan ketat hari ini mungkin tampak konyol dan berlebihan besok. Ini terjadi baik melalui alat-alat baru dan pengalaman eksperimental yang meluap dari startup hingga organisasi yang lebih konservatif.

Pada dasarnya, perubahan dan manajemen risiko tampaknya memiliki bentuk yang unik untuk setiap organisasi. Taruhan terbaik Anda adalah tetap berpikiran terbuka, tetapi jangan membawa terlalu banyak asumsi dari tim ke tim.

Kevin Hsu
sumber