Thứ Ba, 31 tháng 7, 2012

Thách thức Accumulo, Phần II


July 5, 2012 in frontpage by Gunnar Hellekson
Bài được đưa lên Internet ngày: 05/07/2012
Public domain image courtesy of the U.S. Navy.
Những người quan tâm nhiều tới nguồn mở
These guys care a lot about open source.
Lời người dịch: “Khi mà chính phủ ngày càng tiện lợi hơn với nguồn mở, thì chính phủ sẽ không thể tránh khoải tạo ra nhiều hơn các dự án của riêng họ, và cộng tác với các dự án đang tồn tại. Vì thế thay vì nghĩ về Accumulo một cách hẹp, thì đây đúng là lúc để nghĩ bao quát hơn về cách mà chính phủ tạo ra các dự án nguồn mở, cách mà chính phủ chọn phần mềm được hỗ trợ hoặc không được hỗ trợ, và những gì nên xảy ra khi các dự án của chính phủ bắt đầu cạnh tranh với khu vực tư nhân”. Để tránh việc các cơ quan chính phủ tạo ra các dự án “rẽ nhánh” từ các dự án nguồn mở gốc ban đầu và cạnh tranh với khu vực tư nhân, các cơ quan chính phủ nên trả lời một số câu hỏi trước khi quyết định thực hiện sự rẽ nhánh: (1) Liệu điều đó có là sống còn cho nhiệm vụ? (2) Bạn có chắc là không có giải pháp thương mại hay không? (3) Bạn có chắc là không có lựa chọn thay thế nào không? (4) Nếu bạn rẽ nhánh, nó là cần thiết hay không? (5) Liệu bạn có tính tới tất cả các chi phí chưa? (6) Liệu các giả thiết của bạn có còn đúng hay không?
Trong Phần I, chúng ta đã thảo luận ý định của Ủy ban các Dịch vụ Vũ trang của Thượng viện (SASC) buộc chằng dự án Accumulo vào Bộ Quốc phòng (DoD). Họ đã chỉ thị cho CIO của Bộ nhảy qua một vài vòng báo cáo trước khi Accumunlo có thể được phép trong DoD, và đã chỉ thị cho đội Accumulo ngược lên dòng trên công việc của họ vào trong các dự án nguồn mở có liên quan. Dường như sẽ là một ý định để tháo dỡ các dự án với giả định rằng nó đang cạnh tranh với các sản phẩm và dự án từ khu vực tư nhân.
Trường hợp của Accumulo không phải là lần đầu, và cũng sẽ không phải là lần cuối, dự án bắt gặp ở dạng phản kháng này. Khi mà chính phủ ngày càng tiện lợi hơn với nguồn mở, thì chính phủ sẽ không thể tránh khoải tạo ra nhiều hơn các dự án của riêng họ, và cộng tác với các dự án đang tồn tại. Vì thế thay vì nghĩ về Accumulo một cách hẹp, thì đây đúng là lúc để nghĩ bao quát hơn về cách mà chính phủ tạo ra các dự án nguồn mở, cách mà chính phủ chọn phần mềm được hỗ trợ hoặc không được hỗ trợ, và những gì nên xảy ra khi các dự án của chính phủ bắt đầu cạnh tranh với khu vực tư nhân.
Đây là ví dụ của tôi, được làm sống động phần lớn bằng Thông tư Circular A-130 §8b1(b) của Văn phòng Quản lý Ngân sách (OMB) mà tôi đã nhắc tới ở Phần I. Dù A-130 hầu hết là vô hại, thì nó bao gồm cả một số thực tiễn CNTT có ý nghĩa chung và nó là tốt như một khung công việc như bất kỳ câu trả lời nào cho một số câu hỏi đó. Bây giờ là thời điểm tốt để đọc lại phần đó nếu bạn còn chưa quen với nó.
In Part I, we discussed the Senate Armed Services Committee (SASC)’s attempt to hobble the open source Accumulo project in the DOD. They directed the Department’s CIO to jump through a number of reporting hoops before Accumulo would be allowed inside the DOD, and directed the Accumulo team to upstream their work into related open source projects. It appears to be an attempt to dismantle the project on the assumption that it was competing with products and project from the private sector.
The Accumulo case isn’t the first, and will not be the last, project to encounter this kind of resistance. As the government gets more comfortable with open source, it will inevitably create more of its own projects, and collaborate with existing projects. So rather than think about Accumulo narrowly, this is a good time to think more generally about how the government creates open source projects, how it chooses supported or unsupported software, and what should happen when government projects begin to compete with the private sector.
Here’s my take, animated largely by OMB Circular A-130 §8b1(b) which I mentioned in Part I. Though A-130 is mostly toothless, it does embody a number of common-sense IT practices and it’s as good a framework as any to answer some of these questions. Now’s a good time to re-read that section if you’re not already familiar with it.
Do government-sponsored open source projects automatically compete with the private sector?
Các dự án nguồn mở do chính phủ đỡ đầu có tự động cạnh tranh với khu vực tư nhân hay không?
Không.
Đây là một sự thí điểm có suy nghĩ: điều gì xảy ra nếu Accumulo từng là sản phẩm của một dự án chuyển giao công nghệ thông qua một chương trình như CRADA, IRAD hay SBIR? Trong các chương trình đó, chính phủ cộng tác với khu vực tư nhân để phát triển công nghệ, và thường cung cấp cho người sáng tạo công nghệ đó các quyền đặc biệt nhất định cho sản phẩm làm việc nên họ có thể kiếm tiền trên nó. Nguồn mở là y hệt, ngoại trừ sở hữu trí tuệ là sẵn sàng cho mọi người, chứ không chỉ cho nhà thầu đầu tiên. Nên không có gì vốn dĩ là chống cạnh tranh ở đây cả về nguồn mở. Trên thực tế, việc sử dụng nguồn mở như một chiến lược chuyển giao công nghệ có thể đóng góp cho đổi mới và tăng trưởng của khu vực phần mềm của Mỹ.
Về lịch sử, các dự án của chính phủ đã giúp, chứ không làm hại, cho khu vực tư nhân. Từ điện toán hiệu năng cao cho tới an ninh, các dự án nguồn mở của chính phủ đã tiến bộ về công nghệ, đã tạo ra những doanh nghiệp và thường dỡ bỏ tất cả các tàu thuyền. Tôi sẽ đi đủ xa để nói rằng nguồn mở sẽ là phương pháp được ưu tiên của chuyển giao công nghệ, và tôi không đơn độc.
Điều này không để nói rằng bất kỳ dự án nguồn mở nào cũng đáng làm. §8b1(b)(iii) của A-130 nói cho chúng ta rằng chính phủ sẽ không tạo ra các dự án đúp banr khi một dự án đã tồn tại trong thế giới thương mại: (iii) Công việc hỗ trợ xử lý điều nó đã đơn giản hóa hoặc nếu không đã thiết kế lại để giảm chi phí, cải thiện tính hiệu quả và thực hiện sử dụng tối đa công nghệ thương mại, dùng ngay được.
Miễn là dự án theo yêu cầu không dư thừa, nguồn mở là một cách tuyệt vời để phát triển các công nghệ mới và đảm bảo rằng chúng sẵn sàng một cách rộng rãi cho cả khu vực chính phủ vả tư nhân.
No.
Here’s a thought experiment: what if Accumulo were the product of a technology transfer project via a CRADA, an IRAD or SBIR program? In these, the government collaborates with the private sector to develop technology, and often provides the creator of that technology with certain special rights to the work product so they can make money on it. Open source is the same, except the intellectual property is available to everyone, not just the prime contractor. So there’s nothing inherently anti-competitive about open source. In fact, using open source as a technology transfer strategy can contribute to the innovation and growth of the US software sector.
Historically, the government’s projects have helped, not hurt, the private sector. From high-performance computing to security, the government’s open source projects have advanced technology, created businesses, and generally lifted all boats. I’ll go so far as to say that open source should be the preferred method of technology transfer, and I’m not the only one.
This isn’t to say that any open source project is worth doing. §8b1(b)(iii) of A-130 tells us that the government should not create duplicative projects when one already exists in the commercial world:
(iii) Support work processes that it has simplified or otherwise redesigned to reduce costs, improve effectiveness, and make maximum use of commercial, off-the-shelf technology;
Provided the project in question isn’t redundant, open source is a great way of developing new technologies and ensuring that they’re widely available to both the government and the private sector.
Is it fair for the government to support open source with staff and money?
Liệu có công bằng khi chính phủ hỗ trợ nguồn mở bằng các nhân viên và tiền của mình?
Vì chính phủ có thể đỡ đầu cho các dự án đổi mới, miễn là có nhu cầu theo nhiệm vụ rõ ràng. Điều đó đặt chúng ta vào với câu hỏi về những người đóng góp do chính phủ bảo trợ Nhiều người duy trì của Accumulo đang cung cấp các tài nguyên cho một dự án phần mềm thương mại mà có thể (cuối cùng) cạnh tranh trực tiếp với các bản chào thương mại có sẵn khác. Nó có là tồi tệ không?
Nếu một chương trình của chính phủ thấy một nhu cầu nhiệm vụ không được thế giới thương mại làm cho thỏa mãn, thì chính phủ có lý để bỏ ra các tài nguyên để làm thỏa mãn nhu cầu đó. Ví dụ, Trung tâm Tích hợp Mạng của Không quân Mỹ, tạo ra hệ điều hành “An ninh Khả chuyển hạng Nhẹ” - LPS (Lightweight Portable Security) cho phép các nhà truyền thông kết nối một cách an toàn tới các mạng của DoD. Nó dựa trên Linux. Dù có nhiều phát tán Linux thương mại có sẵn, thì không phát tán nào làm thỏa mãn được những yêu cầu của LPS một cách chính xác. Quan trọng là, AFNIC không đơn giản là việc đóng gói lại Linux. Họ đang sử dụng lại các phần mềm thương mại có sẵn càng nhiều càng tốt, và bỏ ra thời gian và tiền bạc của họ để bổ sung giá trị có thể phân biệt được, thực tiễn cho một phát án Linux chung. Điều này có nghĩa là LPS là tuân thủ với §8b1(b)(iv) của A-130:
(iv) Làm giảm rủi ro bằng việc tránh hoặc cô lập các thành phần được thiết kế tùy biến, có sử dụng các thành phần mà có thể được kiểm thử hoặc làm mẫu đầy đủ trước khi sản xuất, và đảm bảo sự liên can và hỗ trợ những người sử dụng;
Trường hợp của Accumulo, ít nhất lúc ban đầu, đã là khác rồi. An ninh mức nhân (cell) và các tính năng khác làm cho Accumulo duy nhất từng không phải là sẵn có một cách thương mại cho NSA. Giống như LPS, họ đã xây dựng những gì họ cần trên các thành phần thương mại có sẵn. Điều này là rất phổ biến, và thực tế là NSA đã thể hiện tâm trí để phát hành công việc đó như là một dự án nguồn mở nên được khen thưởng.
Thực tế là Accumulo đã bắt đầu như là phần mềm được chính phủ phát triển và bây giờ là phần mềm thương mại có sẵn không mang theo khả năng của chính phủ để tiếp tục làm việc tiếp và cải tiến phần mềm đó. Việc cải tiến phần mềm là, sau tất cả, hoàn toàn được khuyến khích theo “Bản ghi nhớ Nguồn Mở” của DoD năm 2009:
(ii) Khả năng không bị hạn chế để sửa đổi mã nguồn phần mềm cho phép Bộ phản ứng được nhanh hơn đối với các tình huống thay đổi và cá mối đe dọa trong tương lai.
Đã nói tất cả điều đó: chỉ vì chính phủ có thể tùy biến phần mềm cho các nhu cầu của mình không có nghĩa là họ sẽ nên. Đừng quên rằng §8b1(b)(i) và §8b1(b)(ii) của A-130 cũng phải được làm cho thỏa mãn. Nếu một dự án bỗng nhiên đúp bản hoặc không theo nhiệm vụ của một cơ quan, thì dự án đó nên sử dụng một thành phần thương mại đang có sẵn.
So the government can sponsor innovative projects, provided there’s an obvious mission need. That leaves us with the question of government-sponsored contributors. Many of the Accumulo maintainers are government employees or contractors. We’re now in a strange gray area where the government is providing resources to a commercial software project that may (eventually) compete directly with other commercially available offerings. Is this bad?
If a government program finds a mission need unfulfilled by the commercial world, it makes sense to spend resources to satisfy that need. The US Air Force Network Integration Center, for example, produces the “Lightweight Portable Security” operating system that allows telecommuters to safely connect to DOD networks. It’s based on Linux. Although there are many commercial Linux distributions available, none satisfy LPS’ requirements exactly. Crucially, AFNIC is not simply repackaging Linux. They are re-using as much commercially available software as possible, and spending their time and money adding real, differetiated value to an otherwise generic Linux distribution. This means that LPS is consistent with §8b1(b)(iv) of A-130:
(iv) Reduce risk by avoiding or isolating custom designed components, using components that can be fully tested or prototyped prior to production, and ensuring involvement and support of users;
The Accumulo case, at least at the start, was no different. Cell-level security and the other features that make Accumulo unique were not commercially available to the NSA. Like LPS, they built what they needed on commercially available components. This is very common, and the fact that the NSA had the presence of mind to release that work as an open source project should be rewarded.
The fact that Accumulo began as government-developed software and is now commercially available software has no bearing on the government’s ability to continue working on and improving that software. Improving software is, after all, explicitly encouraged by the DOD “Open Source Memo” of 2009:
(ii) The unrestricted ability to modify software source code enables the Department to respond more rapidly to changing situations, missions, and future threats.
Having said all that: just because the government can customize software for its needs doesn’t mean that they should. Don’t forget that §8b1(b)(i) and  §8b1(b)(ii) of A-130 also have to be satisfied. If a project is suddenly duplicative or not in keeping with an agency’s mission, the project should use an existing, commercial component.
So what happens when a project becomes duplicative?
Điều gì sẽ xảy ra khi một dự án trở thành đúp bản?
SASC từng lo lắng rằng Accumulo bằng cách nào đó can thiệp vào các dự án HBase và Cassandra, các dự án cũng giải quyết nhiều, dù không phải tất cả, các vấn đề y hệt mà Accumulo đang làm. Nếu HBase hoặc dự án khác bắt đầu đáp ứng được các nhu cầu của chính phủ và làm cho các tính năng giống như của Accumulo sẵn sàng, thì A-130 gợi ý rằng chính phủ sẽ xem xét sát sao hơn vào những chào mời thương mại có sẵn hoặc ngược lên dòng trên mã nguồn của nó để loại bỏ xung đột. §8b1(b)(v) và các cách thức tốt của nguồn mở đồng ý về điều này:
(v) Thể hiện một sự hoàn vốn đầu tư có kế hoạch mà rõ ràng ngang bằng hoặc tốt hơn so với những sử dụng theo các lựa chọn thay thế các tài nguyên nhà nước có sẵn...
Tất nhiên, những người của Accumulo đã phát hành rồi dự án của họ cho công chúng, và đã làm thế khi không có sự cạnh tranh về giải pháp mà họ đã đưa ra. Khi họ đã làm điều đó, thì Accumulo đã trở thành phần mềm thương mại theo các điều khoản của FAR và DFAR. Điều đó làm thay đổi hoàn toàn hoàn cảnh. Accumulo bây giờ giống hệt như bất kỳ chào mời thương mại nào khác, và có thể thắng hoặc thua về giá trị của nó. Như chúng ta đã thảo luận trước đó, chính phủ sẽ tự do để hỗ trợ dự án đó miễn là nó thúc đẩy nhiệm vụ của chính phủ theo một cách thức có hiệu quả về chi phí. Không có sự thiệt hại nào ở đây cả. Trong thực tế, điều tuyệt vời là Accumulo đang cải thiện sự phát triển trong lĩnh vực này của phần mềm và khuyến khích các dự án như HBase và Cassandra tiến bộ. Đây là một ví dụ về thị trường làm việc, mà không có sự can thiệp của SASC.
SASC was worried that Accumulo was somehow interfering with the HBase and Cassandra projects, which solve many, though not all, of the same problems Accumulo does. If HBase or another project begin to respond to the government’s needs and make Accumulo-like features available, A-130 suggests that the government to take a close look at those commercially available offerings or upstream its code to eliminate the conflict. §8b1(b)(v) and good open source manners agree on this:
(v) Demonstrate a projected return on the investment that is clearly equal to or better than alternative uses of available public resources…
Of course, the Accumulo folks already released their project to the public, and did so when there was no competition for the solution they provided. When they did that, Accumulo became commercial software under the terms of the FAR and DFAR. That changes the situation entirely. Accumulo is now just like any other commercial offering, and can win or lose on its merits. As we discussed earlier, the government should be free to support that project as long as it’s advancing its mission in a cost-effective manner. No harm done, here. In fact, it’s great that Accumulo is advancing development in this area of software and encouraging projects like HBase and Cassandra to keep up. This is an example of the market working, without SASC’s intervention.
Can the government fork an open source project?
Chính phủ có thể rẽ nhánh một dự án nguồn mở không?
“Rẽ nhánh”, mà có nghĩa là tạo ra phiên bản của riêng bạn đối với một dự án thay vì cộng tác với cộng đồng dòng chính thống, là khác phức tạp hơn. Rẽ nhánh được hiểu một cách rộng rãi như một phương cách cuối cùng, lựa chọn hạt nhân trong cộng đồng nguồn mở vì nó tạo ra sự mắc nợ về kỹ thuật và cướp đi của dự án dòng chính thống sự chú ý có giá trị.
Nếu chính phủ tạo ra phiên bản của riêng mình đối với một dự án đang hoạt động đang có sẵn mà không có lý do rõ ràng, thì điều này không chỉ là một quyết định tồi về kỹ thuật, mà còn tồi về chính sách. Đây không phải là nhiệm vụ của một cơ quan, ví dụ, để tạo ra một hệ điều hành hoặc trình soạn thảo văn bản mục đích chung. Có nhiều những thứ sản phẩm thương mại có sẵn như vậy, và không có lý do gì chính phủ lại sẽ làm xói mòn nền công nghiệp phần mềm Mỹ bằng việc chèn ép những lựa chọn thay thế có khả năng sống được đang tồn tại rồi đối với công chúng.
Các chiến lược tốt hơn là sẵn sàng. Chính phủ (giống hệt như một công ty tư nhân) có thể thực hiện mọi nỗ lực để sử dụng mã nguồn thương mại có sẵn, đang tồn tại hơn là nhận lấy trách nhiệm cho phiên bản của riêng họ đối với toàn bộ dự án đó. Điều này có thể có nghĩa việc sử đổi bổ sung các module đặc thù mà họ cần hoặc việc duy trì một tập hợp các bản vá tùy chọn đối với dự án dòng chính thống. §8b1(b)(iv) là rõ ràng về điều này, như chúng ta đã thảo luận, và đã có một chính sách cho kho mã nguồn do DoD vận hành, forge.mil. Những người của forge.mil không tích cực khuyến khích mã nguồn thương mại đang được đặt chỗ ở đó, sợ rằng chúng sẽ - thậm chí không cố ý - tạo ra một rẽ nhánh của dự án chỉ dành cho chính phủ. Nếu chính phủ cần phải sửa đổi các phần mềm thương mại cho các mục đích của riêng họ, thì họ nên đóng khung hoạt động của họ vào những thay đổi cụ thể mà họ cần hơn là tạo ra toàn bộ một tác phẩm mới.
Không có gì về điều này có nghĩa rằng một rẽ nhánh bị cấm cả. Nó có nghĩa là quyết định rẽ nhánh là nghiêm túc, và có quan mà rẽ nhánh nên được chuẩn bị với một phân tích các lựa chọn thay thế, các chứng minh chi phí, một kế hoạch hỗ trợ và duy trì, cũng như một chiến lược giảm nhẹ rủi ro. Như là vấn đề thực tiễn, dễ hơn nhiều để tránh một rẽ nhánh ngay từ đầu.
“Forking,” which means creating your own version of a project rather than collaborating with its mainstream community, is slightly more complicated. Forking is widely understood as a last-resort, nuclear option in the open source community because it creates technical debt and robs the mainstream project of valuable attention.
If the government created its own version of an existing, functional project without a clear reason, it’s not just a bad technical decision, it’s also bad policy. It’s not an agency’s mission, for instance, to create a general-purpose operating system or word processor. There are plenty of these available as commercial products, and there’s no reason the government should undermine the US software industry by crowding out viable alternatives already available to the public.
Better strategies are available. The government (just like a private company) can make every effort to use existing, commercially available code rather than assume responsibility for their own version of the whole project. This may mean adding specific modules that they need or maintaining an optional set of patches to the mainstream project.  §8b1(b)(iv) is explicit about this, as we already discussed, and it’s already policy for the DOD-operated source repository, forge.mil. The forge.mil folks actively discourage commercial code from being hosted there, for fear that they’ll – even inadvertently – create a government-only fork of the project. If the government needs to alter commercial software for their own purposes, they should confine their activity to the specific changes they need rather than create a wholly new work.
None of this means that a fork is forbidden. It means that the decision to fork is serious, and the agency who forks should be prepared with an analysis of alternatives, cost justifications, a support and maintenance plan, as well as a risk mitigation strategy. As a practical matter, it’s far easier to avoid a fork in the first place.
So when should the government merge a project? Who gets to decide?
Khi nào thì chính phủ trộn một dự án? Ai sẽ phải quyết định?
Một người có thể tưởng tượng bất kỳ số lượng lý do pháp lý nào vì sao Cơ quan được bầu lại xây dựng và hỗ trợ cho một lựa chọn thay thế cho HBase hoặc Cassandra. Liệu họ có đang đưa ra một quyết định tồi hay không? Điều đó hoàn toàn có khả năng. Tôi nghĩ, dù, rằng các cơ quan nên được phép tự do làm theo ý mình thế này. Miễn là họ đang tạo ra thứ gì đó phù hợp với nhiệm vụ và thực sự là mới - thứ gì đó đúng về Accumulo một cách không bàn cãi - dạng tự do như vậy, một cách công bằng, là một lợi ích.
Tôi có thể tưởng tượng thời điểm khi dự án Accumulo của Apache có thể quyết định rằng việc cạnh tranh với các dự án khác là quá tốn kém. Những người cầm đầu dự án có thể sau đó bầu chọn để gửi một số tính năng đặc thù của Accumulo cho các dự án ngược lên dòng trên khác, với hy vọng làm giảm nhẹ bớt gánh nặng duy trì của họ. Một lần nữa, điều này xảy ra tất cả mọi lúc và là một trong những khả năng lớn của qui trình nguồn mở.
Nó cũng có thể làm việc theo cách khác: những người duy trì HBase có thể quyết định rằng các tính năng của Accumulo là có giá trị, và chọn để kéo vài tính năng trong số chúng từ Accumulo ngược lại vào HBase. Họ tự do tuyệt vời để làm thế, và đây cũng là thứ gì đó xảy ra mọi thời gian trong các dự án nguồn mở.
Buồn thay, SASC đã quyết đinhj rằng đủ tư cách tốt hơn để quản lý dự án Accumulo hơn những người duy trì của dự án. Đây là một tiền lệ nguy hiểm cho tất cả các dự án nguồn mở. Ý định đằng sau sự làm luật là tốt: những rẽ nhánh thường là tồi, và chính phủ nên tránh cạnh tranh với khu vực tư nhân. Cùng lúc, Accumulo là nguồn mở. Điều đó tiêm chungr cho Accumulo chống lại những chỉ trích đó, và trong trường hợp điều §8b1(b) và bản ghi nhớ về nguồn mở của DoD năm 2009 đưa ra khá nhiều chỉ dẫn cho người quản lý chương trình có thể sử dụng để đưa ra dạng quyết định này. Bổ sung thêm từ ngữ cho NDAA năm 2013 là hoàn toàn không cần thiết và có lẽ phản tác dụng.
One can imagine any number of legitimate reasons why the Agency elected to build and support an alternative to HBase or Cassandra. Are they making a bad decision? That’s entirely possible. I think, though, that agencies should be permitted this discretion. As long as they’re creating something relevant to the mission and genuinely new – which was indisputably true of Accumulo – this kind of freedom is, on balance, a benefit.
I can imagine a time when Apache’s Accumulo project would decide that competing with the other projects is too costly. Project leaders would then elect to send some Accumulo-specific features to other upstream projects, in hopes of relieving their maintenance burden. Again, this happens all the time and is one of the great possibilities of the open source process.
It could work the other way, too: the HBase maintainers may decide that Accumulo’s features are valuable, and choose to drag some of them from Accumulo back into HBase. They’re perfectly free to do so, and this is also something that happens all the time in open source projects.
Sadly, SASC has decided that it’s better-qualified to manage the Accumulo project than the project maintainers. This is a dangerous precedent for all open source projects. The intention behind the legislation is good: forks are generally bad, and the government should avoid competing with the private sector. At the same time, Accumulo is open source. That inoculates Accumulo against these criticisms, and in any case §8b1(b) and the DOD open source memo of 2009 provide plenty of guidance the program manager can use to make this kind of decision. Adding language to the 2013 NDAA is completely unnecessary and probably counterproductive.
So what’s to be done?
Cái gì đã được thực hiện?
Nếu mã nguồn là đóng, bạn có thể viện lý rằng Accumulo đang làm phí các tài nguyên của chính phủ và can thiệp vào khu vực tư nhân. May thay, điều đó không phải thế - nó là tự do cho bất kỳ ai, bao gồm cả các dự án Cassandra hay HBase, để sử dụng. Là hữu dụng để nghĩ về Accumulo như một chiến lược khôn ngoan của chính phủ để cải tiến hướng tới sự hiện đại. Biết rằng chính phủ có quan tâm về những thứ như an ninh mức cốt lõi, Accumulo đã khuyến khích các dự án tương tự khác giải quyết các câu hỏi y hệt. Theo cách này, sự cạnh tranh giữa Accumulo và HBase hoàn toàn khác nhau so với dạng cạnh tranh mà chúng ta thấy trong nghiên cứu khoa học: nhiều bên, tất cả hướng tới sự hiện đại hóa, vì lợi ích của tất cả mọi người. Chúng ta sẽ không mơ tưởng về việc ứng xử với nghiên cứu do chính phủ cấp vốn như một mối đe dọa cho nghiên cứu do tư nhân cấp vốn, thì cái gì làm cho các dự án phần mềm đó khác nhau chứ?
If the code was closed, you could argue that Accumulo is squandering government resources and interfering with the private sector. Fortunately, that’s not the case – it’s free for anyone, including the Cassandra or HBase projects, to use. It’s useful to think about Accumulo as a shrewd government strategy to advance the state of the art. Knowing that the government is concerned about things like cell-level security, Accumulo has already encouraged other, similar, projects to address these same questions. In this way, the competition between Accumulo and HBase is not altogether different than the kind of competition we see in scientific research: many parties, all advancing the state of the art, to the benefit of everyone. We wouldn’t dream of treating government-funded research as a threat to privately funded research, so what makes these software projects different?
However.
Tuy nhiên
Trong khi tôi không cảm thấy sự can thiệp của Quốc hội là cần thiết, thì rõ ràng là chúng ta cần nói về các cách thức để tinh chỉnh các chính sách để làm cho các tình huống đó ít không chắc chắn hơn. Đặc biệt, cách mà chúng ta sẽ biết khi nào các dự án của chính phủ là được phép, và không can thiệp vào công việc tốt lành của khu vực tư nhân? Tôi sẽ đưa ra một vài câu hỏi mà mỗi dự án phần mềm của chính phủ nên tự hỏi mình để trả lời cho câu hỏi quan trọng đó:
  • Liệu điều đó có là sống còn cho nhiệm vụ? Rõ ràng, các cơ quan chính phủ không nên phí phạm thời gian tạo ra các dự án mà là thừa không cần thiết đối với nhiệm vụ của họ. Điều này là dễ dàng, và được đề cập tới trong §8b1(b)(i) của A-130.
  • Bạn có chắc là không có giải pháp thương mại hay không? Có tất cả các dạng công cụ có sẵn cho những người quản lý các dự án chính phủ có thể giúp họ học được nhiều hơn về thị trường đối với vấn đề của họ. Thông qua RFIs, các Ngày cùa Giới công nghiệp, và giao tiếp thường xuyên với giới công nghiệp, bạn có thể chắc chắn rằng bạn đã vắt kiệt các lựa chọn thương mại của bạn trước khi nhảy vào một qui trình phức tạp và đắt đỏ của việc duy trì dự án phần mềm của riêng bạn. Trong Phần 929, SASC chỉ cho CIO của DoD để đảm bảo công việc nhà này được thực hiện, mà những qui định và qui trình để làm điều này là rất rõ ràng rồi theo §8b1(b)(ii) và §8b1(b)(iii).
  • Bạn có chắc là không có lựa chọn thay thế nào không? Tôi ngụ ý, thực sự có chắc không? Đừng chỉ dựa vào giới công nghiệp để nói cho bạn những gì có ngoài đó. Nhiều giải pháp của bạn có thể sẵn sàng như các dự án nguồn mở mà không có lợi từ một thực thể thương mại mà có thể trả lời cho RFIs hoặc tham gia vào những ngày công nghiệp. Hãy thận trọng về điều này: thật dễ để làm một tìm kiếm nhanh trên Google và công bố sự hiếm hoi của thị trường. Cũng rất dễ để đặt ra rào cản cao không thể tưởng, và nói rằng vì không có máy biến đổi XML đáng tin cậy nào với các máy chủ nhúng IMAP, nên bạn phải xây dựng phần mềm riêng cho bạn. Hãy là hợp lý.
  • Nếu bạn rẽ nhánh, nó là cần thiết hay không? Có tất cả các dạng tài liệu về quyết định này, bao gồm cả §8b1(b)(iv), mà tôi sẽ không đề cập tới ở đây, nhưng quyết định rẽ nhánh là một quyết định nghiêm trọng. Liệu các yêu cầu của bạn có được làm cho thỏa mãn thay vì một bản vá hay không? Liệu bạn có được chuẩn bị để ôm những gánh nặng duy trì cho tương lai có thể dự đoán trước được hay không? Quyết định đó là một quyết định phức tạp, và một văn phòng chương trình sẽ không ra chúng một cách đơn giản. Một rẽ nhánh dường như dễ dàng hơn lúc ban đầu, nhưng nó sẽ là nặng, nặng gánh hơn nhiều về lâu dài qua thời gian.
  • Liệu bạn có tính tới tất cả các chi phí chưa? Điều này là khó khăn hơn nhiều, nhưng hãy bớt chút thời gian đọc §8b1(b)(v) và chỉ ra chính xác bạn đã làm cho cuộc sống của bạn phức tạp tới mức nào. Vì bạn đang sử dụng dự án của riêng bạn, liệu bạn có một gánh nặng duy trì lớn hơn hay không? Liệu các chi phí hỗ trợ có cao hơn không? Thế còn về sự chứng nhận hoặc sự tin cậy bổ sung có làm việc hay không? Thế còn chi phí để thoát ra của bạn thì sao - sẽ là nặng nề hơn để chuyển sang một lựa chọn thay thế tốt hơn trong tương lai vì bạn đang sử dụng một mẩu phần mềm đặc thù của chính phủ, liệu có hay không?
  • Liệu các giả thiết của bạn có còn đúng hay không? Đây là điều quan trọng nhất, và câu hỏi được trường hợp của Accumulo đặt ra. Bạn có thể đọc §8b1(b)(vii), thực hiện Phân tích các Lựa chọn thay thế của bạn, nghiên cứu thị trường của bạn, xác định các yêu cầu của bạn, nhưng điều đó là 2 năm về trước. Có đúng là không có lựa chọn thay thế nào khác nữa hay không? Liệu có thể có dự án nào khác mà bạn có thể làm việc cùng để giảm được gánh nặng của bạn hay không? Có một sự đánh giá lại chân thực, thường xuyên những giả thiết của bạn sẽ giữ cho bạn khỏi đi lang thang quá xa khỏi sự bảo lưu.
Bây giờ tới lượt bạn: điều gì nữa các cơ quan sẽ nghĩ tới nhỉ?
While I don’t feel Congressional intervention is necessary, it’s obvious that we need to talk about ways to refine policies to make these situations less uncertain. Specifically, how will we know when government projects are permissible, and do not interfere with the good work of the private sector? I’ll offer a few questions every government software project should ask itself to answer that important question:
  • Is it critical to the mission? Obviously, the government agencies shouldn’t be wasting their time creating projects that are superfluous to their mission. This one’s easy, and covered by §8b1(b)(i) of A-130.
  • Are you sure there’s no commercial solution? There are all kinds of tools available to government project managers that can help them learn more about the market for their problem. Through RFIs, Industry Days, and regular communication with industry, you can make sure that you’ve exhausted your commercial options before embarking on the complex and expensive process of maintaining your own software project. In Section 929, SASC directs the DOD CIO to ensure this homework has been done, but the rules and process for doing this are already very clear under §8b1(b)(ii) and §8b1(b)(iii).
  • Are you sure there are no alternatives? I mean, really sure? Don’t just rely on industry to tell you what’s out there. Many of your solutions may be available as open source projects that don’t benefit from a commercial entity that can respond to RFIs or attend industry days. Be deliberate about this: it’s easy to do a quick Google search and declare the market barren. It’s also easy to raise the bar impossibly high, and say that because there are no accredited XML transformation engines with embedded IMAP servers, you have to build your own. Be reasonable.
  • If you fork, is it necessary? There’s all kinds of literature on this decision, including §8b1(b)(iv), which I won’t cover here, but the decision to fork is a serious one. Can you get your requirements fulfilled with a patch instead? Are you prepared to carry the maintenance burden for the foreseeable future? The decision is a complicated one, and a program office shouldn’t take them lightly. A fork may seem easier at first, but it will be much, much harder over the long term.
  • Have you accounted for all the costs? This is notoriously difficult, but take a moment to read §8b1(b)(v) and figure out exactly how complicated you’ve made your life. Because you’re using your own project, do you have a greater maintenance burden? Higher support costs? What about the additional certification or accreditation work? What about your exit costs – will it be harder to move to a better alternative in the future because you’re using a government-specific piece of software?
  • Are your assumptions still true? This is the most important, and the question demanded by the Accumulo case. You may read §8b1(b)(vii), done your Analysis of Alternatives, your market research, determined your requirements, but that was two years ago. Is there still no alternative? Maybe there’s another project you could work with to reduce your burden? Having a regular, honest re-evaluation of your assumptions will keep you from wandering too far off the reservation.
Now it’s your turn: what else should agencies be thinking about?
Dịch: Lê Trung Nghĩa

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.