Dalam lingkungan perusahaan, haruskah pengembang memiliki hak admin di komputer mereka? Mengapa?
Lingkungan teknologi:
- Windows 7
- Visual Studio 2008 & 2010
- SQL Server
Dalam lingkungan perusahaan, haruskah pengembang memiliki hak admin di komputer mereka? Mengapa?
Lingkungan teknologi:
Jawaban:
Haruskah mereka Terserah korporasi. Secara pribadi saya pikir tidak masalah selama ada beberapa aturan yang dipahami.
Biasanya saya akan mengatakan ya. Hal-hal seperti debugger memerlukan cukup tinggi jika bukan hak admin untuk bekerja dengan benar. Pengembang sering perlu menginstal perangkat lunak acak yang bisa memakan waktu berhari-hari atau berminggu-minggu untuk diinstal ketika melalui saluran. Selama waktu itu pengembang biasanya berhenti bekerja sehingga perusahaan hanya mengeluarkan uang, terutama jika pengembang itu konsultan.
Ada sains dan seni dalam pembangunan; itu tidak sesederhana "mengetahui" apa yang kita butuhkan. Jika kita sudah memiliki jawaban, setengah dari pekerjaan kita akan diperdebatkan; menemukan pendekatan yang tepat sering iteratif, dan mungkin melibatkan banyak alat dengan cara yang tidak terduga. Membutuhkan perantara untuk menginstal masing-masing (sering dengan latensi tinggi), hanya untuk menemukan (sekitar satu jam) bahwa untuk skenario Anda "addon alat super-uber" diperlukan sangat konyol.
Sementara VM ideal untuk ini, ada juga banyak alat pengembangan yang tidak dapat berjalan (dengan benar, atau bahkan sama sekali) di VM, karena mereka sendiri adalah VM - dan saya tidak bermaksud hal-hal seperti JVM; Maksud saya emus mesin penuh / vms, seperti toolkit perangkat. Kompatibilitas di sana membaik.
Selain itu, sebagian besar alat pengembangan memiliki jejak yang sangat besar - jauh lebih besar dari alat "biasa" (membuat VM hosting sedikit lebih menyakitkan daripada yang Anda duga), dan seringkali dengan sifat sebagai proses debugger memerlukan akses yang lebih tinggi. Belum lagi fakta bahwa mereka mungkin intensif GUI; mencoba menjalankan full-time pada VM GUI adalah ... sangat menyakitkan.
Kinerja sangat besar di sini; Menurut Anda apakah boleh bagi pengguna untuk menunggu 3 detik setelah setiap penekanan tombol di Word untuk kunci mereka untuk mendaftar? Saya tidak bercanda - alat pengembangan pada VM dll bisa jadi ini sial; untuk sebagian besar tujuan pengembangan Anda perlu responsif. Mengganggu aliran logika kompleks dari otak ke keyboard dapat membuatnya sangat tidak mungkin untuk menyelesaikan pekerjaan. Dan saya benci mengatakannya, tapi ya: waktu pengembangan itu mahal.
Dalam lingkungan Windows, dan terutama ketika menggunakan produk pengembang Microsoft, pengembang akan memerlukan hak admin pada mesin mereka. Jika Anda menolak hak-hak itu, kemampuan mereka untuk melakukan pekerjaan mereka akan dibatasi, jika tidak dicegah sama sekali.
Sebagai seorang pengembang, saya memberi kami tingkat hak istimewa di atas pengguna dasar, tetapi di bawah administrator sistem.
Saya mungkin, kadang-kadang, membutuhkan perpustakaan tambahan yang diinstal untuk mendapatkan aplikasi yang saya kembangkan untuk bekerja di lingkungan produksi, yang dikatakan, saya memiliki aturan ketat yang saya kembangkan dengan: "Untuk aplikasi apa pun yang membutuhkan perpustakaan pihak ketiga, perpustakaan harus dipasang di lingkungan kotak pasir sebelum penyebaran produksi dan, dalam beberapa kasus, sebelum pengembangan aplikasi. "
Sysadmin tempat saya bekerja dan saya setuju untuk ini, dan di antara kami berdua, kami akan secara aktif menegakkan aturan itu dan menunda penyebaran aplikasi yang belum melewati "pemeriksaan ketergantungan".
Untuk menjawab pertanyaan Anda, ya, pengembang harus diberikan akses penuh ke mesin mereka sendiri, tetapi mesin-mesin itu harus diisolasi dari lingkungan tempat aplikasi pada akhirnya akan digunakan. Dalam hal ini, bahkan penyebaran aplikasi harus di-sandbox sampai dianggap aman untuk digunakan di lingkungan produksi.
Penafian: Saya seorang pengembang.
Bagi saya, pertanyaan ini (dan jawabannya) tampaknya menyerang masalah dari pendekatan yang salah - yaitu, perdebatan berfokus pada apa yang diinginkan / dibutuhkan admin vs. apa yang diinginkan / dibutuhkan pengembang. Tetapi Anda menentukan bahwa kami berada dalam lingkungan perusahaan, jadi mari kita lihat seperti itu.
Jadi mari kita bayangkan kita sedang berdebat di depan direktur TI atau operasi, atau siapa pun yang mengendalikan anggaran kita , dan ajukan pertanyaan-pertanyaan ini.
Dengan pertanyaan-pertanyaan ini dijawab, Anda dapat membuat keputusan berdasarkan informasi dan bukan keputusan yang menggairahkan.
Untuk lingkungan spesifik Anda , ada beberapa hal yang memerlukan hak admin (lihat Hak Pengguna dan Visual Studio ) - jika mereka tidak melakukan hal-hal itu, maka Anda dapat menjawab pertanyaan 2 - 4.
Sebagai seorang konsultan, saya telah melihat kedua ekstrem dari kebijakan ini, dan walaupun saya selalu ingin memiliki akses admin ke mesin, dalam beberapa kasus itu tidak masuk akal. Dan saya tidak yakin apa yang menyebabkan dan apa efeknya, tetapi tanpa kecuali, setiap tempat yang saya lihat melakukan pengembangan windows di mana para pengembang memiliki akses admin juga memiliki produktivitas yang jauh lebih tinggi dari setiap pengembang daripada tempat-tempat di mana mereka dikunci.
Saya pikir Anda mengajukan pertanyaan yang salah, Anda seharusnya bertanya:
Akankah pengembang yang baik bekerja untuk majikan yang tidak memberinya hak admin di PC mereka?
Apa yang "dibutuhkan" oleh seseorang dan apa yang mereka harapkan sering kali bukan hal yang sama, lagipula Anda tidak perlu mengizinkan pengembang untuk minum kopi di jam kerja, tetapi jika Anda tidak ...
(Pastikan Anda membuat kebijakan Anda jelas pada tahap wawancara, jika tidak, Anda mungkin membuat orang mengambil pekerjaan yang kemudian membenci perusahaan Anda karena kurangnya hak admin - jangan berharap programmer berpikir secara logis tentang hal semacam ini! )
Sebenarnya itu lebih tergantung pada siapa yang Anda tanyakan tentang siapa yang sebenarnya membutuhkannya. Jika Anda bertanya kepada IT perusahaan dan kelompok manajemen risiko, mereka akan membanjiri Anda dengan cerita-cerita horor (dan jika mereka ingin memberikannya kepada Anda, mereka menuntut seekor kambing yang dikurbankan dalam ikatan janji suci bahwa mereka tidak akan bertanggung jawab), para pengembang di sisi lain menuntut hak admin sebagian besar karena pekerjaan itu membuat stres dan cukup menuntut tanpa harus meminta izin dari help desk untuk bocor. Keadaan yang menyedihkan adalah bahwa sekarang ini lebih banyak tentang perebutan kekuasaan dan mengerahkan kekuatan, kemudian tentang kebutuhan bisnis dan produktivitas (misalnya, bermuara pada siapa yang akan membuat pihak lain melompat melalui lingkaran)
IMHO, lingkungan kerja terbaik yang pernah saya lihat sampai hari ini adalah di mana kedua kelompok itu dipisahkan. Pengembang memiliki domain sendiri di hutan (di mana IT mengontrol apa yang domain ini dan penggunanya dapat lakukan di seluruh perusahaan) dan mereka semua adalah admin lokal dengan orang-orang berpengalaman dengan MCSE yang bertindak sebagai admin domain lokal, mereka memiliki lingkungan pengujian sendiri dan dapat melakukan hampir semua yang mereka inginkan dan butuhkan di LAN lokal mereka dengan satu kebijakan TI (tidak ada perangkat lunak bajakan). IT Korporat tidak bertanggung jawab dan tidak memberikan dukungan kepada devs dan hanya memberlakukan beberapa aturan korporat tingkat tinggi (tidak ada facebook, porno atau sejenisnya melalui firewall, devs tidak mengizinkan untuk mengacaukan dengan LAN korporat) dan mereka semua memiliki VPN berbasis RSA untuk bekerja dari rumah yang menempatkan mereka langsung di dalam LAN mereka. Rapi, bukan?
Saya akan mengatakan bahwa hak administratif penting untuk proses pembangunan. Mengingat relatif mudahnya menggunakan VM ke kotak pasir, tidak ada alasan mengapa Anda tidak bisa memasukkannya ke dalam VM dan menjaga keamanan.
Apa pun yang salah dan Anda dapat menghapus dan membangun kembali dalam hitungan menit.
Pastinya! Biasanya banyak perkembangan yang berlangsung mungkin atau mungkin tidak dalam lingkungan virtual. Hak admin membantu mengatasi banyak penggantian penanganan layanan, entri registri, dan IIS secara lokal. Di sisi lain, itu tergantung pada seberapa banyak kepercayaan yang Anda miliki pada pengembang Anda.
Sebagai pengembang, ini membuat frustrasi ketika sesuatu tidak berfungsi karena kami tidak memiliki akses.
Tergantung. Sebagai pengembang, seseorang harus selalu beroperasi dengan prinsip privilege paling rendah. Jika Anda bekerja sebagai kontraktor pemerintah, Anda mungkin diwajibkan secara kontrak untuk tidak memiliki akses admin, misalnya.
Sebagai pengembang Java, saya hampir tidak perlu memiliki hak admin di mesin saya secara berkelanjutan . Namun, ada kasus yang sah ketika Anda membutuhkan sesuai permintaan akses admin berdasarkan (. Yaitu. Anda perlu memindahkan laptop Anda ke domain yang terpisah secara fisik, dan Anda perlu mengubah NIC Anda sesuai dengan itu.) Itulah satu-satunya waktu saya benar-benar diperlukan akses admin permanen dan berkelanjutan ke mesin saya.
Kadang-kadang Anda memerlukan akses admin karena IT kekurangan staf (atau tidak kompeten atau terperangkap dalam birokrasi). Tetapi jika Anda bekerja dengan departemen TI yang kompeten, mereka dapat menginstal barang-barang tersebut untuk Anda bahkan dari jarak jauh (atau dengan menyediakan penginstal khusus yang akan "dijalankan sebagai "Admin dan instal barang-barang untuk Anda hanya dengan mengkliknya.)
Jadi jawabannya (lagi) adalah - itu tergantung. Apakah Anda memiliki staf TI responsif yang dapat memasang berbagai hal sesuai permintaan (atau dalam waktu yang wajar)? Apakah pengembang benar-benar membutuhkannya untuk tugas yang harus dibayar ?
Jika pengembang benar-benar dan secara sah membutuhkannya (seperti dalam "Saya benar-benar TIDAK AKAN dapat melakukan apa pun tanpanya" ) sebagai lawan dari kenyamanan (seperti dalam "Saya ingin menginstal apa pun yang saya inginkan" ), dan jika dukungan TI tidak cukup responsif (untuk alasan apa pun), maka ya, mereka harus memiliki akses admin ke mesin mereka.
Kalau tidak, tidak. Ingat prinsip hak istimewa , orang.
Ada pengembang dan ada Pengembang. Jika "pengembang" adalah beberapa orang java JBoss $ 40 / jam menulis aturan untuk mesin aturan maka tentu saja tidak. Jika "pengembang" adalah orang C / Majelis $ 350 / jam yang membuat perangkat lunak pengeditan video Anda berjalan secepat mungkin pada GPU, maka ya, tentu saja.
Untuk perusahaan yang khawatir tentang keamanan, mereka akan meminta orang keamanan mendikte dan berusaha untuk menegakkan kebijakan yang bekerja dengan model pengembangan dan sistem mereka. Di Windows Environment, kebanyakan orang akan memberi tahu Anda bahwa Anda harus memiliki hak administratif pada host yang mereka kembangkan untuk melakukan tugas mereka.
Ini belum tentu benar ...
Anda dapat membuat kebijakan khusus dan membuat semua program dan fungsi berfungsi dengan pengguna pengembangan di suatu sistem. Anda hanya perlu turun dan kotor dan masuk ke seluk-beluk dengan izin khusus pada direktori program / sistem dengan grup atau grup kustom tergantung pada desain yang diinginkan.
Sebagian besar perusahaan akan mengatakan sangat berbahaya bagi pengembang untuk memiliki sistem di jaringan terbuka karena peretas bisa mendapatkan kendali dan mulai mengkompilasi alat mereka sendiri sehingga menjalani tugas itu jauh lebih berisiko dibandingkan pendapat profesional saya.
Pengembang harus (idealnya) memiliki dua login domain.
Satu yang memiliki hak admin lokal (untuk pekerjaan pengembangan) dan satu yang memiliki hak yang sama dengan semua orang di perusahaan. Kemudian, mereka dapat menguji pekerjaan mereka pada set izin yang representatif.
Ini kemudian harus mengurangi kemungkinan ItWorksOnMyMachine-itis yang muncul sesekali .....
Saya harus (tampaknya) memberikan suara yang berbeda dan mengatakan tidak hanya tidak, tetapi "tidak ada". Saya tidak punya masalah memberikan hak admin devs pada VM sandboxed yang tidak memiliki akses jaringan. Zypher sudah hampir benar (koreksi dicetak tebal):
"1. Menjadi admin di kotak saya adalah hak istimewa BUKAN hak." Sistem ini adalah aset perusahaan yang menjadi tanggung jawab saya. Ketika Joe Developer menginstal salinan Microsoft Bob bajakannya ("karena saya perlu ") itu bukan dia yang harus menjelaskan bagaimana itu tidak ditemukan sebelum audit. Pengembang secara rutin berpikir bahwa entah bagaimana aturan perusahaan tidak berlaku bagi mereka. Dengan memberi mereka VM berpasir, mereka dapat mengikuti semua aturan yang harus diikuti semua orang (karena sekarang hanya TI yang dapat menyalin file ke dan dari sistem). Ajaibnya sistem permintaan digunakan oleh pengembang lagi, langit tidak lagi jatuh ketika Joe Developer membuat kotak pengembangannya - ia hanya meminta yang baru (atau mengembalikan jika ia meminta cadangan)
Tn. Denny menyebut pengembang membutuhkan biaya ketika mereka harus menunggu aplikasi diinstal, A. halo ... waktu saya biasanya sama berharganya dengan Joe Pengembang (biasanya lebih karena saya menjaga crapware yang ada tetap berjalan- dan apakah saya benar-benar harus menyebutkan semua waktu yang dihabiskan untuk membantu pengembang Joe men-debug karya terakhirnya), dan B. ketika dev overbudget karena mereka sedang menunggu aplikasi dan mencoba menyalahkan IT untuk itu saya akan mengatakan:
Kurangnya perencanaan untuk apa yang Anda butuhkan untuk menulis perangkat lunak bukan tanggung jawab saya, kami memiliki seperangkat alat standar dan jika kotak alat itu tidak memenuhi apa yang Anda butuhkan, Anda harus memiliki permintaan Anda untuk mendapatkan lebih banyak alat yang dipercepat daripada upaya untuk membuat saya melompat melalui lingkaran untuk mendapatkannya untuk Anda karena tenggat waktu Anda besok.
Setelah mengatakan semua ini, mengunci desktop pengembang bau, jika Anda bisa menyingkirkan pengembang jelek yang berpikir mereka berhak untuk menonton koleksi baywatch mereka dan marah mengetahui bahwa mereka tidak dapat menginstal pemain babewatch untuk melihatnya ("tapi itu open source ") Anda mungkin dapat melonggarkan. Tetapi untuk setiap pengembang hebat yang "mendapatkannya", ada 10 lagi yang akan disewa perusahaan Anda untuk aplikasi vertikal 200 juta dolar itu, dan itulah yang harus Anda perhatikan.
EDIT: Ini sangat mungkin bahwa pengembang saya telah terkena sangat membosankan (polling tanaman saat ini hanya 1 telah mendengar tentang stackoverflow, untuk memberikan beberapa tingkat patokan). Sudut pandang awal yang saya mulai adalah "apa yang Anda butuhkan untuk melakukan apa yang dibayar perusahaan untuk Anda lakukan". Jika Anda memerlukan hak admin, Anda mendapatkannya, tetapi Anda tidak boleh berbelit-belit dengan mereka dan jika saya bisa memberi Anda sebuah kotak yang terus terang saya tidak peduli apa yang Anda lakukan untuk itu dan itu berfungsi maka kita berdua baik untuk pergi.