Saya penggemar daftar periksa. Ada Travel Checklist , Moving Checklist, dan bahkan Scrum Checklist .
Konteks : Anda telah direkrut oleh perusahaan besar dan diberi misi untuk mengatur seluruh lingkungan pengembangan perangkat lunak, proses, tim, dll. Anda memiliki "carte blanche". Anda akan bertanggung jawab atas pembuatan penambahan perangkat lunak yang berfungsi. Ukuran proyek: 2000 orang / hari.
Item apa yang akan Anda tambahkan ke daftar centang berikut (sengaja kecil dan tidak lengkap):
- Instal Server Integrasi Berkelanjutan
- Tulis DoD
- Tulis pedoman pengkodean satu halaman
- Buat jaminan produk
- Instal Sistem Pelacakan Bug
- Jadwalkan Waktu Wajah Biasa
sumber
sumber
Ulasan Postmortem - Karena Anda sedang mengerjakan berbagai hal dalam blok, saya akan menjadwalkan review satu hingga dua jam (tergantung pada ukuran tim) untuk mengadakan pertemuan tatap muka (jika mungkin) di mana semua orang berkeliling dan mengatakan apa yang dilakukan dengan benar, apa bisa dilakukan lebih baik, dan apa yang tidak diperlukan. Mampu belajar dari kesalahan Anda dalam proses pengembangan awal berarti Anda dapat menghindari melakukannya nanti ketika Anda tidak punya banyak waktu untuk bekerja.
sumber
Mari kita mulai dengan merekrut tim profesional profesional yang tepat untuk proyek Anda. Dalam aplikasi bisnis biasa, Anda perlu merekrut pengembang basis data dan dba, orang QA, admin sistem, analis bisnis, pengembang aplikasi, spesialis UI, dan arahan tim minimal. DBA, System Admin, analis bisnis, dan QA harus berada dalam rantai pelaporan terpisah dari tim pengembangan. Spesialis basis data pengembangan harus melapor ke pimpinan teknis yang sama dengan pengembang aplikasi dan spesialis UI.
Siapkan ruang kantor. Kantor pribadi sangat bagus jika Anda bisa mendapatkannya (saya berharap Anda beruntung dengan ini), tetapi di minumum Anda memerlukan meja, telepon, komputer, papan tulis dan beberapa ruang konferensi khusus. Pastikan ada tempat untuk istirahat makan siang, lemari es, minuman ringan, makanan ringan, dan kopi tersedia. Minuman ringan dan kopi gratis bahkan lebih baik.
Menyiapkan dev / qa / staging dan mendorong server untuk aplikasi dan database. Database tidak boleh berada di server yang sama dengan aplikasi. Bergantung pada ukuran dan ruang lingkup proyek, Anda mungkin perlu beberapa server atau SAN, dll untuk setiap lingkungan.
Segera setelah server diatur, jadwalkan pencadangan dari sistem file, basis data dan log transaksi basis data. Lakukan ini pada hari pertama semuanya diatur. Menyewa perusahaan seperti Iron Mountain untuk mengambil cadangan di luar situs setiap minggu.
Menyiapkan sistem kontrol sumber dan membuat dokumen yang menjelaskan bagaimana itu akan digunakan. Jangan lupa untuk bersikeras bahwa SEMUA perubahan struktural basis data dan sisipan data untuk tabel jenis pencarian harus dalam skrip dalam kontrol sumber. Ini akan membuat penyebaran lebih mudah.
Beli perangkat lunak komersial atau unduh perangkat lunak open source untuk toolset yang Anda putuskan untuk digunakan dengan lisensi untuk semua pengguna terkait.
Beli mesin pengembang yang berteriak cepat dan memiliki dua monitor. Beli setidaknya satu mesin uji pengguna yang mengerang lambat dan khas apa yang akan dimiliki pengguna di desktop mereka.
Latih pengembang baru Anda tentang bagaimana Anda ingin segala sesuatunya selesai. Jika Anda memiliki tim yang cukup besar untuk memiliki beberapa pengembang junior, maka jadwalkan pelatihan tambahan untuk mereka dan sertakan waktu dalam perencanaan proyek Anda. Pantau juniornya dengan sangat erat selama setidaknya tiga bulan. Pantau semua karyawan baru dengan cermat untuk bulan pertama. Singkirkan pengembang kayu mati dan nakal sesegera mungkin.
Tentukan apa yang perlu dilakukan dalam urutan apa (jalur kritis). Jangan tetapkan tugas di ujung jalur kritis sampai tugas yang menjadi sandarannya selesai.
Buat rencana dan persyaratan pengujian.
Atur pertemuan kemajuan terjadwal secara teratur dengan klien. Mereka layak tahu apa yang Anda lakukan dan apa hambatannya. Jangan gagal memberi tahu mereka kapan akan terlambat. Jika Anda tiga minggu lagi dari tenggat waktu dan Anda sudah tahu Anda akan melewatkannya, defisit itu tidak akan hilang secara ajaib sebelum Anda harus memberi tahu klien. Pastikan bahwa klien tahu bahwa persyaratan tambahan berarti biaya tambahan dan waktu dan bahwa setiap persyaratan tambahan harus memiliki tugas lain yang dibatalkan atau batas waktu akan berubah dengan jumlah jam dalam tugas-tugas baru. Menjelaskan hal ini sejak awal akan menghemat banyak rasa sakit dan jam lembur dan kelebihan biaya yang diserap oleh kelompok Anda dan bukan klien.
Siapkan lingkungan untuk pengujian kinerja, bukan hanya kecepatan satu pengguna, tetapi juga lingkungan tempat Anda dapat menguji jumlah pengguna simultan yang diharapkan. Jangan menunggu untuk melakukan pengujian ini sampai sehari sebelum Anda ditayangkan.
Dalam perencanaan proyek, anggap QA akan menemukan bug dan mereka akan membutuhkan waktu untuk memperbaikinya. Jangan menjadwalkan QA hanya satu hari di akhir.
Buat data uji yang kira-kira ukuran yang Anda pikir akan menjadi basis data. Buat semua pengembang menguji kode mereka terhadap database ukuran ini. Jangan izinkan pengembang hanya mengembangkan terhadap basis data kecil di mesin pribadi mereka. Ini adalah penyebab sering kode yang berfungsi dengan baik hingga mencapai produksi.
Rencanakan imbalan ke dalam anggaran. Ini mendemotivasi orang ketika mereka bekerja selama berbulan-bulan dan hanya manajer yang mendapat bonus. Juga ucapkan terima kasih sering dan secara tertulis.
Anda mungkin memerlukan sistem manajemen proyek atau setidaknya mengatur spreadsheet untuk melacak apa yang perlu Anda lacak. Saat melakukan perencanaan proyek, anggap tidak lebih dari enam jam sehari dalam rencana Anda. Ini membantu memperhitungkan waktu yang akan dihabiskan bukan untuk proyek, seperti liburan, waktu sakit, liburan, pertemuan SDM, ulasan kinerja, dll. Jika Anda tahu proyek ini dalam periode ketidaktersediaan yang tinggi (katakanlah proyek yang berjalan dari Nov1 - 1 Jan di AS), Anda mungkin perlu membuat tunjangan tambahan untuk lebih banyak waktu cuti dan liburan. Tidak adil untuk mengharapkan bahwa pengembang akan memberikan cuti dan liburan mereka dan tidak ada yang bisa memprediksi kapan hal-hal seperti waktu sakit, tugas juri, waktu berkabung dll akan terjadi. Asumsikan mereka akan terjadi pada tim Anda di proyek ini.
sumber
Beberapa hal yang tidak saya lihat dalam pertanyaan dan jawaban berikutnya:
Rencana Pemulihan Bencana. Bagaimana Anda mencadangkan kotak dev, pementasan, pengujian dll? Apakah setiap pengembang memiliki apa yang mereka butuhkan untuk bekerja dari rumah di hari salju sesekali? Dll
Rencana Pelatihan. Berapa minggu pelatihan yang harus dilakukan devs Anda agar tetap tajam? Adakah yang melacaknya? (Lembar kerja dapat mencukupi untuk sebagian besar tim.) Memiliki mekanisme bagi mereka untuk melaporkan (mengirim seseorang email yang mengatakan bahwa mereka menonton 2 jam siaran web tentang "apa pun" mungkin cukup) dan bagi manajemen untuk merencanakan - misalnya siapa yang harus kita kirim ke apa konferensi tahun ini.
Posisi Alat. Apakah ini "kami memberi Anda semua langganan MSDN; tolong jangan instal apa pun di mesin kerja Anda" jenis tempat atau "kami menginginkan kode Anda, tetapi kami tidak peduli apa yang Anda gunakan untuk mengedit, menyusun dan mengujinya "semacam tempat. Buat dan catat keputusannya.
sebanyak ALM terintegrasi yang Anda bisa berdiri atau mampu. Biasanya alasan untuk "ketidakcocokan impedansi", entri ganda, tumpang tindih alat, dan integrasi aplikasi kursi putar adalah bahwa sistem tumbuh sedikit demi sedikit. Mulai dari awal, Anda ingin menunjukkan bahwa orang-orang Anda dapat tetap menggunakan satu alat selama siklus. Tidak mengetik kode dalam X, mengkompilasi dengan Y, menguji dengan Z, mengubah status item pekerjaan / tugas dengan A, melaporkan waktu mereka dihabiskan dengan B, memberi tahu orang yang sedang menunggu bahwa mereka sekarang dapat melanjutkan dengan C, mencoba mencari angka apa yang harus dilakukan selanjutnya dengan D, kemajuan keseluruhan guaug dengan E, dll.
sumber
Negosiasikan lebih banyak hari kerja.
Ini adalah peristiwa langka ketika orang mengalokasikan cukup pada awalnya.
[Kemudian ... negosiasi ulang lebih lanjut ...]
sumber
Melihat bahwa saya memiliki masalah paling besar dengan perpustakaan pihak ke-3 dan penggunaannya:
Mengapa? Saya tidak dapat memberi tahu Anda berapa kali perpustakaan pihak ke-3 (milik) memiliki bug henious yang mengirim kami kembali minggu waktu pengembangan karena kami tidak memiliki proses untuk bergerak naik atau mundur. Atau berurusan dengan pengembang yang mengatakan "versi mana yang Anda gunakan? Mengapa Anda menggunakan fungsi yang ditandai usang?"
sumber
Biaya besar bagi organisasi tidak menetapkan anggaran untuk keamanan selama siklus hidup pengembangan, ini berarti keamanan biasanya berakhir setelah fakta yang tidak efektif, serangkaian kegiatan atau kontrol yang mahal dilakukan terlambat untuk melakukan banyak hal baik.
Dapatkan keamanan yang dibangun dari rencana proyek awal, dengan tonggak penting, sama seperti yang Anda lakukan dengan semua aspek pembangunan lainnya, dan gunakan proses berulang-ulang untuk menjaga agar panduan keamanan tetap mutakhir. Pengunduran diri terakhir dari keamanan harus sepuluh menjadi pemeriksaan yang tidak mengejutkan bahwa semua kontrol keamanan dilaksanakan sesuai desain.
Kalau tidak, Anda akan berakhir menjalankan keamanan setelah implementasi - yang biayanya 8 - 10 kali lipat (angka dari Gartner, IBM, dan lainnya), akan membuat orang kesal karena fungsionalitas kemungkinan akan terpengaruh dan mungkin sudah terlambat untuk mencegah eksploitasi dan kerusakan.
sumber
1. Bawa ke tim
Tanyakan kepada programmer! Sungguh, itu hal yang paling penting. Anda akan menemui banyak perlawanan jika para devs tidak terlibat langsung dalam perubahan ini. Bagaimanapun, ini tentang bagaimana mereka bekerja, bukan kamu. Tak usah dikatakan, tetapi mencoba untuk memaksa metode dan alat pada orang biasanya menjadi bumerang mengerikan.
2. Memeriksa dan beradaptasi
Mintalah tim mencari cara terbaik untuk bekerja, menggunakan pengalaman Anda untuk dengan lembut membantu mereka mencapai jalur yang dipilih. Kemudian, secara teratur dan kolaboratif, lihat kembali bagaimana Anda (mereka) melakukan dan menyesuaikan proses untuk membuatnya lebih baik.
sumber