Situasi: DBA adalah kontraktor luar kantor yang membuat seluruh kode DAL diperiksa di TFS. Akan lebih baik sebagai pengembang ujung depan untuk dapat menambahkan kolom, dan men-tweak procs dan yang lainnya, tanpa harus bergantung pada menunggu pria ini untuk menanggapi email Anda untuk melakukan pekerjaan.
Pertanyaan: Apa solusi / proses yang direkomendasikan yang memungkinkan pengembangan lebih cepat / gesit, sambil mempertahankan integritas data serta cinta damai dan kebahagiaan di antara tim?
asp.net
teamwork
team-foundation-server
team-building
configuration
spaghetticowboy
sumber
sumber
Jawaban:
Martin Fowler dan Pramod Sadalage telah menulis artikel yang sangat bagus tentang hal ini.
Setiap pengembang memiliki databasenya sendiri tempat perubahan dapat dilakukan. Perubahan ini kemudian dikomunikasikan kembali (sebagai perubahan) ke DBA yang mengimplementasikannya dalam database master, jadi dia masih terlibat dalam proses, dia mungkin tahu yang terbaik tentang struktur dan kebutuhan database. Saya pikir itu pendekatan terbaik karena memuaskan bagi semua orang yang terlibat dalam proses dan juga sangat gesit.
Anda dapat mengubah DAL dengan cara yang serupa. Cukup buat perubahan Anda dan berikan set perubahan untuk DBA saat Anda merasa sudah selesai, sehingga dia bisa memeriksanya dan menggabungkannya ke masternya.
sumber
Nah, ketika saya melakukan hal DBA, saya telah dikenal untuk mengunci semuanya sehingga programmer kotor tidak bisa mendapatkan mits mereka di atasnya. Semua orang berpikir mereka tahu bagaimana melakukannya dengan lebih baik, dan mereka "mengubah" hal-hal untuk membuat mereka lebih mudah bagi diri mereka sendiri, dan itu menyebabkan kekacauan yang tidak suci.
Alternatif lain adalah dengan melemparkannya terbuka lebar, dan biarkan programmer melee di atasnya untuk sementara waktu, kemudian melompat masuk dan memberlakukan ketertiban ketika segalanya mulai berakhir ... Ini tentu saja lebih "gesit", tetapi bisa jadi mimpi buruk nyata tergantung pada apa yang harus dipotong atau diubah ... DBA sering memiliki pemahaman yang lebih baik tentang proyek secara keseluruhan, dan beberapa perubahan yang tampaknya tidak berbahaya dapat menjadi masalah.
Jika dia akan menjadi satu-satunya penjaga gerbang, dia harus memiliki spec tertentu, atau dapat "menjual" visinya kepada para devs lainnya.
sumber
Ada masalah besar yang menggantikan masalah lain:
Kenapa dia diizinkan melakukan ini? Tidak seorang pun harus memeriksa file kecuali mereka secara aktif melakukan pengeditan. Seharusnya ada kebijakan tim tentang checkout.
Kontraktor (suka atau tidak suka) bekerja sebagai bagian dari tim, dan kadang-kadang anggota tim lainnya mungkin perlu melakukan perubahan. Ini adalah masalah komunikasi. Sayangnya, tidak ada cara otomatis untuk memperbaiki masalah komunikasi ini.
sumber
Alih-alih lapisan horizontal, saya lebih suka bekerja di lapisan lintas silo.
Dengan begitu, tidak ada 1 orang / tim yang dapat memblokir dengan cara ini.
Ini juga berarti Anda adalah pengembang yang memiliki banyak keterampilan dan dapat berpindah-pindah fitur lebih mudah.
Tentu saja, ada bagian (desain UI, dan desain DB) yang mungkin membutuhkan lebih banyak pekerjaan khusus, tetapi Anda mendapatkan idenya.
sumber
Sederhana, Jika Anda belum melakukannya, Anda harus memiliki 3 Lingkungan:
Lingkungan develoment harus dikelola oleh pengembang Anda.
Anda mungkin juga ingin menambahkan lingkungan RC.
Jawaban lain, Jika beberapa lingkungan tidak memungkinkan, Anda dapat mengembangkan terhadap repositori yang diolok-olok ... Dengan cara ini Anda membangun model Anda dan kemudian kontraktor Anda bertanggung jawab untuk membuat model Anda cocok dengan DB. Di satu sisi ini lebih baik karena membebaskan pengembang Anda dari khawatir tentang database.
sumber
Masalah Anda bagi saya tampaknya salah satu dari tenaga kerja. Adalah pantas dan perlu untuk semua perubahan daatbase potensial untuk disetujui oleh spesialis basis data. Jika orang saat ini tidak dapat mengikuti pekerjaan pada waktu yang tepat, Anda memerlukan lebih banyak spesialis basis data.
sumber
Ini adalah masalah manajemen dan juga masalah teknis.
Tentu saja ada alasan yang sah untuk DBA (terlepas dari apakah di tempat atau di luar, kontraktor atau karyawan) untuk menjauhkan pengembang dari membuat segala jenis perubahan basis data.
Namun masalah utama yang Anda tetapkan adalah salah satu ketersediaan. Apakah manajer Anda tahu bahwa waktu / uang terbuang sia-sia untuk menunggu orang ini? Jika tidak, Anda mungkin ingin membahas bagaimana semua orang duduk.
sumber