Metodologi Siklus Hidup Perangkat Lunak untuk Tim One Man [ditutup]

15

Saya sedang membangun sistem perangkat lunak untuk proyek master saya dan sedang mencari saran tentang metodologi tertentu yang sesuai dengan "tim satu orang" ...

pengguna23871
sumber
1
Saya senang Anda mengajukan pertanyaan ini, saya dalam situasi seperti ini pada saat ini. Saya telah mengambil alih tim dua orang tanpa proses dan menanamkan kontrol sumber, integrasi berkelanjutan, pengembangan yang digerakkan oleh tes, dan berbagai lainnya. Saya sendiri bertanya-tanya tentang apa yang dapat saya lakukan untuk meningkatkan efisiensi dan bagaimana menjadi yang terbaik ketika akhirnya saya diizinkan untuk mempekerjakan orang di bawah saya.
maple_shaft

Jawaban:

11

Saya mencari nafkah sebagai "senjata perangkat lunak untuk disewa" satu orang yang kebanyakan bekerja dari rumah, jadi saya ingin sekali mendengar apa yang orang lain katakan tentang ini.

Berikut adalah beberapa hal yang menurut saya penting:

  • Seperti kata Denis, kontrol sumber sangat penting - tetapi SVN bukan satu-satunya pilihan. Saya kebanyakan menggunakan Perforce, dan git adalah alternatif yang bagus. Saya suka model pengembangan "arus utama"; yang memungkinkan saya melakukan percobaan di cabang kode, menggabungkannya ke jalur utama saat mereka bekerja, dan membuangnya jika tidak.
  • Saya menggunakan buku catatan untuk catatan dan program untuk melacak tugas. Saat ini saya menggunakan Redmine untuk yang terakhir; sebelum itu, saya menggunakan Fogbugz. Saya juga suka Redmine karena memiliki wiki bawaan yang sangat bagus, yang dapat saya gunakan untuk catatan dan tautan persisten ke situs-situs penting.
  • Ini juga penting untuk melacak apa yang saya lakukan, dan mengatur diri saya semacam batasan yang masuk akal sehingga saya menyelesaikan cukup tanpa kehabisan tenaga - lihat di bawah.

Teknik saya yang lain telah berkembang selama bertahun-tahun, dan saya men-tweak mereka tergantung pada proyek dan klien. Orang-orang membayar saya untuk kode kerja, tidak bermain-main dengan proses, jadi saya mencoba untuk menjaga proses tetap ringan, dan keluar dari wajah klien saya. Tetapi saya menemukan beberapa teknik Agile bekerja sangat baik untuk saya:

  • Salah satu klien saya saat ini cenderung menjatuhkan fitur besar pada saya untuk diimplementasikan, dan tidak mengganggu saya sampai selesai. Jadi saya menemukan bekerja pada orang-orang di sprint Scrum sangat bagus. Dugaan saya adalah itu dapat bekerja untuk proyek master kecuali penasihat riset Anda adalah orang yang suka mengendalikan.
  • Klien saya saat ini lainnya cenderung memiliki lebih banyak kedaruratan dari jenis "berhenti bekerja pada ini dan memperbaikinya". Saya mencoba melakukan itu dengan Scrum dan menyerah setelah satu sprint. Jadi saya melakukan itu menggunakan Kanban, dan itu bekerja jauh lebih baik.

Cara lain untuk bekerja sendiri adalah Anda tidak memiliki siapa pun untuk memberi tahu Anda apa yang harus dilakukan atau kapan, atau jika Anda sudah cukup selesai, atau kapan harus berhenti bekerja karena Anda sudah melakukan cukup - sehingga Anda harus melakukan itu untuk dirimu sendiri. Saya pribadi lebih suka Scrum karena saya dapat melacak bagaimana saya melakukan vis-a-vis tujuan sprint saya. Untuk proyek Kanban, saya bisa melacak berapa banyak waktu yang saya habiskan, tetapi saya tidak suka itu dan juga sesuatu yang lebih berbasis tujuan.

Beberapa teman saya bersumpah oleh Pomodoro sebagai cara untuk membuat mereka tetap fokus pada tugas dan melacak efisiensi pribadi, dan saya berpikir untuk mencobanya.

Saya juga memiliki proses formal untuk merilis kode ke klien saya untuk memastikan apa yang mereka dapatkan "benar", tetapi itu mungkin di luar ruang lingkup dari apa yang Anda tanyakan.

Bob Murphy
sumber
3

Gunakan SVN di atas yang lain, versi semuanya. Untuk pelacakan, notebook akan digunakan untuk proyek yang lebih sederhana, jika perlu Anda memiliki banyak aplikasi pelacakan tugas / bug gratis (Redmine keren). Agile / XP / Continuous Integration / others akan sedikit berlebihan menurut saya.

Denis Biondic
sumber
3

Selain Proses Perangkat Lunak Pribadi , saya belum menemukan banyak tentang model proses formal yang dirancang untuk digunakan oleh satu pengembang. PSP cukup berat dalam hal dokumentasi dan dokumen (dalam bentuk mentahnya), tanpa banyak bicara tentang teknik tertentu dalam melakukan pekerjaan (sebaliknya, PSP berfokus pada pengumpulan data untuk menemukan area untuk perbaikan), tetapi ini merupakan permulaan poin untuk mengembangkan proses pribadi yang dapat Anda gunakan pada proyek-proyek kecil hingga menengah.

Saya pikir tindakan terbaik adalah mengikuti beberapa praktik terbaik yang dipilih (berdasarkan kebutuhan dan proyek Anda) yang diterima secara luas dari sejumlah model proses. Lihatlah metode untuk melacak pekerjaan yang dilakukan / pekerjaan yang tersisa, mengelola persyaratan, kontrol versi, pengujian (khususnya pengujian unit dan penerimaan), integrasi berkelanjutan, standar pengkodean, Anda Tidak Akan Perlu, dan sebagainya. Jika belum, saya sarankan membaca Code Complete dan The Pragmatic Programmer dan mempraktikkan tips mereka.

Hal terbesar tentang bekerja secara individu adalah bahwa, selain dari segala pembatasan yang dilakukan pada Anda oleh pasukan luar, semuanya terserah Anda. Anda tidak perlu mengakomodasi orang lain yang bekerja bersama Anda, jadi lebih mudah untuk memilih teknik yang memungkinkan Anda untuk bekerja dengan cara seefisien mungkin. Selama bertahun-tahun, Anda mungkin telah menemukan cara terbaik untuk bekerja, sehingga itu akan menjadi titik awal yang baik. Kemudian terapkan "praktik terbaik" yang dikenal di atas itu untuk meningkatkan kemampuan dan teknik Anda.

Thomas Owens
sumber
1

Pria itu bertanya tentang metodologi tertentu dan orang-orang menjawab "gunakan perangkat lunak X / Y". BUKAN masalah alat, sebenarnya ada banyak metodologi dan sepertinya belum ada laporan validasi untuk mereka: Agile, Iterative, Spiral, Waterfall, XP, V-Model, TDD.

pengguna27614
sumber
Masalahnya adalah bahwa sebagian besar penelitian telah dilakukan untuk bekerja dengan tim. Sepengetahuan saya, hanya PSP yang dirancang untuk digunakan oleh seorang insinyur tunggal. Dan bahkan di dalamnya, PSP berfokus pada menentukan cara melacak data untuk mengidentifikasi area untuk peningkatan dan hanya menyediakan beberapa tugas tingkat tinggi yang dapat membantu meningkatkan kualitas perangkat lunak, tanpa spesifik tentang bagaimana melakukan tugas-tugas tersebut.
Thomas Owens