Trong môi trường doanh nghiệp, các nhà phát triển có quyền quản trị viên trên máy tính của họ không? Tại sao?
Môi trường công nghệ:
- Windows 7
- Visual Studio 2008 & 2010
- Máy chủ SQL
Trong môi trường doanh nghiệp, các nhà phát triển có quyền quản trị viên trên máy tính của họ không? Tại sao?
Môi trường công nghệ:
Câu trả lời:
Họ nên? Đó là tùy thuộc vào công ty. Cá nhân tôi nghĩ rằng nó tốt miễn là có một số quy tắc được hiểu.
Điển hình tôi sẽ nói có. Những thứ như trình gỡ lỗi yêu cầu khá cao nếu không quyền quản trị để hoạt động chính xác. Các nhà phát triển thường cần cài đặt phần mềm ngẫu nhiên, có thể mất vài ngày hoặc vài tuần để được cài đặt khi đi qua các kênh. Trong thời gian đó, nhà phát triển thường ngừng làm việc khiến công ty không mất gì ngoài tiền, đặc biệt nếu nhà phát triển là nhà tư vấn.
Có cả khoa học và nghệ thuật trong sự phát triển; nó không đơn giản như "biết" những gì chúng ta cần. Nếu chúng ta đã có câu trả lời, một nửa công việc của chúng ta sẽ là tranh luận; việc tìm ra cách tiếp cận đúng thường lặp đi lặp lại và có thể liên quan đến nhiều công cụ theo những cách không thể đoán trước. Yêu cầu một trung gian để cài đặt từng trong số này (thường có độ trễ cao), chỉ để tìm thấy (khoảng một giờ) mà đối với kịch bản của bạn, "addon công cụ siêu uber" là cần thiết.
Mặc dù VM là lý tưởng cho việc này, nhưng cũng có rất nhiều công cụ phát triển không thể chạy (đúng, hoặc thậm chí cả) trong VM, vì bản thân chúng là VM - và tôi không có ý gì như JVM; Ý tôi là emus / vms máy đầy đủ, chẳng hạn như bộ công cụ thiết bị. Khả năng tương thích đang được cải thiện.
Ngoài ra, hầu hết các công cụ phát triển đều có dung lượng rất lớn - lớn hơn nhiều so với các công cụ "thông thường" (khiến VM lưu trữ hơi đau hơn bạn mong đợi) và thường là do trình gỡ lỗi quy trình yêu cầu quyền truy cập nâng cao. Không đề cập đến thực tế là họ có thể chuyên sâu về GUI; cố gắng chạy toàn thời gian trên GUI VM là ... cực kỳ đau đớn.
Hiệu suất là rất lớn đang ở đây; Bạn có nghĩ rằng người dùng sẽ đợi 3 giây sau mỗi lần nhấn phím trong Word để đăng ký khóa không? Tôi không đùa đâu - các công cụ phát triển trên máy ảo v.v ... có thể là điều may mắn này; cho hầu hết các mục đích phát triển, bạn cần đáp ứng. Làm gián đoạn dòng logic phức tạp từ não đến bàn phím có thể khiến cho công việc không thể hoàn thành được. Và tôi ghét phải nói điều đó, nhưng đúng vậy: thời gian phát triển rất tốn kém.
Trong môi trường Windows và đặc biệt là khi sử dụng các sản phẩm dành cho nhà phát triển của Microsoft, nhà phát triển sẽ yêu cầu quyền quản trị trên máy của họ. Nếu bạn từ chối họ những quyền đó thì khả năng thực hiện công việc của họ sẽ bị hạn chế, nếu không được ngăn chặn hoàn toàn.
Khi trở thành nhà phát triển, tôi xếp hạng cho chúng tôi một mức độ đặc quyền trên người dùng cơ bản, nhưng dưới (các) quản trị viên hệ thống.
Đôi khi, tôi có thể cần một thư viện bổ sung được cài đặt để ứng dụng tôi đang phát triển hoạt động trong môi trường sản xuất, như đã nói, tôi có một quy tắc nghiêm ngặt tôi phát triển bằng cách: "Đối với bất kỳ ứng dụng nào yêu cầu thư viện của bên thứ ba, các thư viện nên được cài đặt trong môi trường hộp cát trước khi triển khai sản xuất và, trong một số trường hợp, trước khi phát triển ứng dụng. "
Sysadmin tôi làm việc cùng và tôi đồng ý với điều này, và giữa hai chúng tôi, chúng tôi sẽ chủ động thực thi quy tắc đó và trì hoãn bất kỳ triển khai ứng dụng nào không vượt qua "kiểm tra phụ thuộc".
Để trả lời câu hỏi của bạn, vâng, các nhà phát triển nên được cấp quyền truy cập đầy đủ vào các máy của họ, nhưng những máy đó nên được cách ly khỏi môi trường mà ứng dụng cuối cùng sẽ được triển khai. Trong trường hợp đó, ngay cả việc triển khai ứng dụng cũng phải được đóng hộp cát cho đến khi thấy an toàn để triển khai trong môi trường sản xuất.
Tuyên bố miễn trừ trách nhiệm: Tôi là nhà phát triển.
Đối với tôi, câu hỏi này (và câu trả lời) dường như đang tấn công vấn đề từ cách tiếp cận sai - đó là cuộc tranh luận đang tập trung vào những gì quản trị viên muốn / cần so với những gì nhà phát triển muốn / cần. Nhưng bạn đã chỉ định chúng tôi đang ở trong một môi trường doanh nghiệp, vì vậy hãy xem xét theo cách đó.
Vì vậy, hãy tưởng tượng chúng ta đang tranh luận điều này trước giám đốc CNTT hoặc hoạt động, hoặc bất kỳ ai kiểm soát ngân sách của chúng tôi và hỏi những câu hỏi này.
Với những câu hỏi được trả lời, bạn có thể đưa ra quyết định sáng suốt hơn là đam mê.
Đối với môi trường cụ thể của bạn , có một số điều yêu cầu quyền quản trị viên (xem Quyền người dùng và Visual Studio ) - nếu họ không làm những việc đó, thì bạn có thể trả lời câu hỏi 2 - 4.
Là một nhà tư vấn, tôi đã thấy cả hai thái cực của chính sách này và trong khi tôi luôn muốn có quyền truy cập của quản trị viên vào một máy, trong một số trường hợp, điều đó không có ý nghĩa gì. Và tôi không chắc nguyên nhân và tác dụng là gì, nhưng không có ngoại lệ, mọi nơi tôi từng thấy khi phát triển windows nơi các nhà phát triển có quyền truy cập quản trị cũng có năng suất cao hơn từ mọi nhà phát triển so với những nơi họ bị khóa.
Tôi nghĩ bạn đang hỏi sai câu hỏi, bạn nên hỏi:
Một nhà phát triển giỏi sẽ làm việc cho một chủ nhân không cung cấp quyền quản trị cho anh ta / cô ta trên PC của họ chứ?
Những gì mà một người nào đó cần đến và những gì họ mong đợi thường không giống nhau, sau tất cả, bạn không cần cho phép nhà phát triển uống cà phê trong giờ làm việc, nhưng nếu bạn không
. )
Nó phụ thuộc thực sự nhiều hơn vào người bạn hỏi sau đó về người thực sự cần nó. Nếu bạn hỏi các nhóm quản lý rủi ro và CNTT của công ty, họ sẽ liên lạc với bạn bằng những câu chuyện kinh dị (và nếu họ muốn đưa nó cho bạn, họ yêu cầu một con dê hy sinh trong một cam kết thiêng liêng rằng họ sẽ không chịu trách nhiệm), các nhà phát triển mặt khác đòi hỏi quyền quản trị viên chủ yếu là vì công việc rất căng thẳng và đòi hỏi đủ mà không cần phải xin phép bàn trợ giúp để bị rò rỉ. Tình trạng đáng buồn là bây giờ nó tập trung nhiều hơn vào cuộc đấu tranh quyền lực và phát huy sức mạnh, sau đó là về nhu cầu kinh doanh và năng suất (ví dụ, nó tập trung vào việc ai sẽ khiến người khác nhảy qua vòng)
IMHO, môi trường làm việc tốt nhất tôi thấy cho đến ngày nay là nơi hai nhóm đang bị tách biệt. Các nhà phát triển có tên miền riêng trong rừng (nhờ đó CNTT kiểm soát miền này và người dùng có thể làm gì trong phần còn lại của công ty) và họ đều là quản trị viên địa phương với những người có kinh nghiệm với MCSE đóng vai trò quản trị viên tên miền địa phương, họ có môi trường thử nghiệm riêng và có thể thực hiện khá nhiều thứ họ muốn và cần trên mạng LAN cục bộ của họ với một chính sách CNTT duy nhất (không có phần mềm lậu). CNTT công ty không chịu trách nhiệm và không cung cấp hỗ trợ cho nhà phát triển và chỉ thực thi một số quy tắc công ty cấp cao (không có facebook, khiêu dâm hoặc tương tự thông qua tường lửa, nhà phát triển không cho phép gây rối với mạng LAN công ty) và tất cả đều có VPN dựa trên RSA để hoạt động tại nhà mà đặt chúng trực tiếp trong mạng LAN của họ. Không, phải không?
Tôi muốn nói rằng quyền hành chính rất quan trọng đối với quá trình phát triển. Mặc dù có thể dễ dàng sử dụng VM vào hộp cát, nhưng không có lý do gì bạn không thể đặt chúng vào VM và giữ an ninh.
Bất cứ điều gì sai và bạn có thể xóa sạch và xây dựng lại trong vài phút.
Chắc chắn rồi! Thông thường rất nhiều sự phát triển diễn ra có thể có hoặc không trong môi trường ảo. Quyền quản trị viên giúp khắc phục rất nhiều phần ghi đè của xử lý dịch vụ, mục đăng ký và IIS cục bộ. Mặt khác, nó phụ thuộc vào mức độ tin cậy của bạn đối với các nhà phát triển của bạn.
Là một nhà phát triển, thật bực bội khi một cái gì đó không hoạt động vì chúng tôi không có quyền truy cập.
Phụ thuộc. Là một nhà phát triển, người ta phải luôn luôn hoạt động theo nguyên tắc ít đặc quyền nhất. Nếu bạn đang làm việc như một nhà thầu chính phủ, bạn có thể bị ràng buộc theo hợp đồng không có quyền truy cập quản trị viên, ví dụ.
Là một nhà phát triển Java, tôi hầu như không cần phải có quyền quản trị trên máy của mình trên cơ sở liên tục . Tuy nhiên, có những trường hợp hợp pháp khi bạn cần quyền truy cập quản trị viên theo yêu cầu (.ie. Bạn cần di chuyển máy tính xách tay của mình qua các miền riêng biệt và bạn cần thay đổi NIC của mình cho phù hợp.) Đó là lần duy nhất tôi thực sự cần quản trị viên thường xuyên, liên tục truy cập vào máy của tôi.
Đôi khi bạn cần quyền truy cập của quản trị viên vì CNTT bị thiếu (hoặc không đủ năng lực hoặc bị sa lầy trong băng đỏ.) Nhưng nếu bạn làm việc với bộ phận CNTT có thẩm quyền, họ có thể cài đặt nội dung cho bạn ngay cả từ xa (hoặc bằng cách cung cấp trình cài đặt tùy chỉnh sẽ "chạy như "Quản trị viên và cài đặt công cụ cho bạn bằng cách chỉ cần nhấp vào chúng.)
Vì vậy, câu trả lời (một lần nữa) là - nó phụ thuộc. Bạn có một nhân viên CNTT nhạy bén có thể cài đặt mọi thứ theo yêu cầu (hoặc trong một thời gian hợp lý) không? Các nhà phát triển có thực sự cần nó cho các nhiệm vụ mà họ được trả tiền không?
Nếu các nhà phát triển thực sự cần và hợp pháp (như trong "Tôi thực sự sẽ không thể làm bất cứ điều gì mà không có nó" ) trái ngược với sự thuận tiện (như trong "Tôi muốn cài đặt bất cứ điều gì tôi muốn" ) và nếu hỗ trợ CNTT không đủ đáp ứng (vì bất kỳ lý do gì), vậy thì, họ nên có quyền truy cập quản trị viên vào máy của họ.
Mặt khác, không. Hãy nhớ nguyên tắc đặc quyền tối thiểu , mọi người.
Có nhà phát triển và có Nhà phát triển. Nếu một "nhà phát triển" là một anh chàng JBoss java $ 40 / giờ viết các quy tắc cho một công cụ quy tắc thì tất nhiên là không. Nếu một "nhà phát triển" là một anh chàng C / hội $ 350 / giờ để phần mềm chỉnh sửa video của bạn chạy nhanh nhất có thể trên GPU, thì tất nhiên là có.
Đối với các tập đoàn lo lắng về bảo mật, họ sẽ có những người bảo mật ra lệnh và cố gắng thực thi một chính sách phù hợp với mô hình phát triển và hệ thống của họ. Trong Môi trường Windows, hầu hết mọi người sẽ nói với bạn rằng bạn phải có quyền Quản trị trên máy chủ mà họ đang phát triển để thực hiện các nhiệm vụ của mình.
Điều này không thực sự đúng...
Bạn có thể tạo một chính sách tùy chỉnh và có tất cả các chương trình và chức năng hoạt động với người dùng phát triển trên một hệ thống. Bạn sẽ phải xuống và bẩn thỉu và khó chịu với các quyền tùy chỉnh trên các thư mục chương trình / hệ thống với các nhóm hoặc nhóm tùy chỉnh tùy thuộc vào thiết kế mong muốn.
Hầu hết các tập đoàn sẽ nói rằng rất nguy hiểm cho các nhà phát triển khi có các hệ thống trên các mạng mở vì tin tặc có thể giành quyền kiểm soát và bắt đầu biên dịch các công cụ của riêng họ nên việc thực hiện nhiệm vụ này rất đáng để mạo hiểm theo quan điểm chuyên môn của tôi.
Các nhà phát triển nên (lý tưởng) có hai thông tin đăng nhập tên miền.
Một cái có quyền quản trị cục bộ (cho công việc phát triển) và một cái có quyền giống như mọi người khác trong công ty. Sau đó, họ có thể kiểm tra công việc của mình trên một bộ quyền đại diện.
Điều này sau đó sẽ làm giảm khả năng ItWorksOnMyMachine-itis thỉnh thoảng xuất hiện .....
Tôi phải (một cách thận trọng) cung cấp tiếng nói bất đồng và nói không chỉ không mà còn "heck no". Tôi không gặp vấn đề gì khi trao quyền quản trị cho nhà phát triển trên máy ảo có hộp cát không có quyền truy cập mạng. Zypher đã có nó gần như đúng (in đậm):
"1. Quản trị viên trên hộp của tôi là một đặc quyền KHÔNG phải là một quyền." Những hệ thống này là tài sản của công ty mà tôi chịu trách nhiệm cuối cùng. Khi Joe Developer cài đặt bản sao Microsoft Bob lậu của mình ("vì tôi cần nó"), đó sẽ không phải là anh ta mà phải giải thích làm thế nào nó không được tìm thấy trước khi kiểm toán. Các nhà phát triển thường nghĩ rằng bằng cách nào đó các quy tắc của công ty không áp dụng cho họ. Bằng cách cung cấp cho họ một VM có hộp cát, họ có thể tuân theo tất cả các quy tắc mà mọi người khác phải tuân theo (vì hiện tại chỉ có CNTT mới có thể sao chép các tệp đến và từ hệ thống). Thật kỳ diệu, hệ thống yêu cầu được các nhà phát triển sử dụng một lần nữa, bầu trời sẽ không còn sụp đổ khi Joe Developer mang hộp phát triển của mình - anh ta chỉ yêu cầu một cái mới (hoặc khôi phục nếu anh ta yêu cầu sao lưu)
Ông Denny đã đề cập đến các nhà phát triển tốn tiền khi họ phải chờ ứng dụng được cài đặt, A. xin chào ... thời gian của tôi thường có giá trị như Joe Developer (thường là nhiều hơn vì tôi vẫn chạy các crapware hiện tại - và tôi thực sự phải đề cập đến tất cả thời gian giúp nhà phát triển Joe gỡ lỗi kiệt tác cuối cùng của anh ấy) và B. khi nhà phát triển vượt quá giới hạn vì họ đang chờ đợi một ứng dụng và cố gắng đổ lỗi cho IT vì tôi đã nói:
Việc bạn không lập kế hoạch cho những gì bạn cần để viết phần mềm không phải là trách nhiệm của tôi, chúng tôi có một bộ công cụ tiêu chuẩn và nếu hộp công cụ đó thiếu những gì bạn cần, bạn nên yêu cầu lấy thêm công cụ thay vì cố gắng khiến tôi nhảy thông qua để có được nó cho bạn vì thời hạn của bạn là vào ngày mai.
Đã nói tất cả những điều này, khóa các máy tính để bàn của các nhà phát triển bốc mùi, nếu bạn có thể loại bỏ các nhà phát triển ngu ngốc nghĩ rằng họ có quyền xem bộ sưu tập baywatch của họ và bị xúc phạm khi biết rằng họ không thể cài đặt trình phát babewatch để xem chúng ("nhưng đó là mã nguồn mở ") bạn có thể nới lỏng. Nhưng đối với mọi nhà phát triển tuyệt vời mà họ "hiểu", có thêm 10 công ty của bạn sẽ thuê ứng dụng dọc 200 triệu đô la đó và đó là người bạn cần đề phòng.
EDIT: Hoàn toàn có khả năng các nhà phát triển mà tôi đã tiếp xúc bị đờ đẫn một cách bất thường (bỏ phiếu cho vụ mùa hiện tại chỉ có 1 người nghe nói về stackoverflow, để đưa ra một số mức chuẩn). Quan điểm khởi đầu mà tôi bắt đầu là "bạn cần làm gì để công ty trả tiền cho bạn để làm gì". Nếu bạn cần quyền quản trị, bạn có được chúng, nhưng bạn không nên yêu cầu họ và nếu tôi có thể đưa cho bạn một hộp mà tôi không quan tâm bạn làm gì với nó và điều đó hiệu quả thì cả hai chúng tôi đều đi.