Hal semacam ini sangat bervariasi dari satu tempat ke tempat lain. Di situs saya saat ini, garis antara pengembang dan DBA memang sangat kabur - kami (DBA) juga menulis PL / SQL, dan mereka (pengembang) membedah rencana permintaan. Kita semua melihat diri kita sebagai teman sebaya, hanya dengan keahlian dan tanggung jawab yang berbeda. Ini sangat lucu: baru-baru ini perusahaan telah ikut-ikutan DevOps . Komunitas basis data tidak memahami ini sama sekali; kami selalu bekerja seperti itu. Tidak perlu dikatakan kita sangat produktif bekerja seperti ini: tingkat basis data sejauh inibagian paling andal dari tumpukan teknologi perusahaan, mudah dioperasikan (karena kami memiliki keterampilan dalam tim DBA untuk memahami aplikasi pada tingkat yang dalam, dan pengembang memiliki paparan DBA untuk memahami operasi 24/7/365 dan bagaimana untuk menyusun aplikasi mereka untuk itu).
Tapi saya tahu apa yang Anda maksud ketika Anda berbicara tentang jenis pengembang yang "salah". Dia otodidak, yang dengan sendirinya adalah hal yang mulia, tetapi sepanjang jalan dia mengambil ketidakpercayaan terhadap segala macam instruksi formal. Dia tidak tahu apa yang tidak dia ketahui , dan dia membenci siapa pun yang mencoba mencerahkannya, dia melihatnya sebagai penghinaan terhadap keterampilan belajar mandiri. Dia telah mempelajari gaya pemrograman yang sangat penting, karena Anda dapat mempelajarinya tanpa teori apa pun yang selalu dikerjakan oleh tipe CS (well, bad; semua orang perlu tahu besar-Odan bit teori serupa). Dia juga belajar sedikit OO, hanya karena dia harus menggunakan Java. Tetapi profesional basis data yang baik - pengembang atau DBA - harus berpikir nyaman dalam gaya deklaratif, berpikir tentang teori himpunan, bentuk normal, bahkan mampu memahami aljabar dan kalkulus relasional. Sangat, sangat sulit untuk berkomunikasi dengan orang-orang ini, karena mereka secara aktif memusuhi apa pun yang mungkin menyentak mereka keluar dari zona nyaman mereka, yang pada umumnya terbatas pada cara memformat sesuatu di halaman web. Jika mereka berpikir tentang database sama sekali, mereka berpikir bahwa tabel seperti kelas dan baris seperti objek. Orang-orang ini benar-benar hanya akan melakukan SELECT * FROM TABLE
dan memfilter dan mengurutkan hasil dalam kode mereka sendiri. Mereka benar-benar tidak mengerti mengapa database lebih baik daripada file flat (dan mereka tidak begitu diam-diam berpikir siapa pun yang menggunakan database relasional adalah idiot).
Biarkan saya memberi Anda contoh nyata: baru-baru ini saya berbicara dengan salah satu dari jenis ini tentang masalah yang terlibat dalam memutar kembali rilis perangkat lunak kami setelah masuk ke produksi, jika masalah telah melewati QA. Saya menjelaskan bahwa sementara kita mungkin memutar kembali aplikasinya (salah satu dari banyak mengakses database), itu harus dapat beroperasi dengan database masih dikerahkan. Dia bertanya mengapa, dan saya berkata, yah, di tabel dan kolom baru itu, akan ada data pelanggan nyata. Dia kemudian berkata, jadi salin saja ke tabel sementara, apa masalahnya. Saya menatapnya dengan tak percaya: ketika seorang pelanggan menelepon dan mengatakan, uang saya telah hilang dari akun saya, apa yang kami katakan kepadanya, bahwa tidak apa-apa, itu ada di meja sementara? Dia sama sekali tidak mengerti bahwa ketika Anda berurusan dengan uang orang lain, Anda harus bertindak seperti orang dewasa yang bertanggung jawab. Sejauh yang saya tahu dia masih belum; dia tidak lagi bersama kita.
Camp MySQL seperti ini untuk waktu yang lama; mereka akan mengatakan Anda tidak perlu transaksi, kunci asing, dll, jika Anda pikir Anda melakukannya hanya karena Anda tidak tahu apa yang Anda lakukan, dll, dll (kemudian ketika mereka dewasa, mereka diam-diam menambahkannya). Ini adalah jenis ORM seperti ActiveRecord atau Hibernate yang dikembangkan untuk orang, sehingga mereka dapat menulis aplikasi basis data tanpa perlu menyentuh SQL. Penggunaan teknologi ini saya anggap sebagai bendera merah - ini bukan perusahaan yang menghargai keterampilan DBA. Apa yang sebenarnya mereka inginkan adalah pengasuh ...