CPlatypus
Joined 16 years ago
Joined 16 years ago
(1) Paratroopers, who jump into unfamiliar territory. In software, researchers and architects.
(2) Infantry, by far the largest component, responsible for the core task of taking and holding territory. In software, most programmers.
(3) MPs (also quartermaster, community liason, etc.) who maintain order in the held territory. In software, debugging specialists and release engineers.
The problem I have with the OP's metaphor is that the "starter" and "architect" roles are both part of (1) and many people actually can do both pretty well. Similarly, the "debugger" and "finisher" roles are both (3) and also combine well. What's really unfortunate is that (2) seems entirely absent even though in real life it consumes most of the time and resources on a project. These are the folks who take mostly-complete designs from a starter/architect, and get most of the code mostly working before the serious integration/stress testing occur and the debugger/finisher come to the fore. In other words, most of your colleagues most of the time. If you hired four people according to these four roles, you'd have nobody to write most of the code and you'd be abusing your four specialists to do it.
P.S. I expect someone will ask for more specifics, so here are a few. First, Bonnie++ sucks. Many of the numbers it produces measure the memory system or the libc implementation more than the actual I/O system. I've seriously gotten more testing value from building it than running it, so its very presence taints the result. Second, fio/hdparm/iozone might be redundant, according to which arguments are used. Or the results might be non-comparable. Either way, the aggregate result could only apply to an application with exactly that (unspecified) balance of read vs. write, sequential vs. random, sync vs. async, file counts and sizes, etc. Did they even run tests over enough data to get past caching effects? That's particularly important since they used different memory sizes on different providers. Similarly, what thread counts did they use on these different numbers of CPUs/cores? Same across all, or best-performing for each component benchmark? With such sloppy methodology anything less than an order-of-magnitude difference doesn't even tell you which platforms to test yourself.
And yes, this is relevant since Python and Clojure embody exactly this kind of tension.
To answer your question, of course IANAL but the way to do this is to assign the patents to an external entity such as http://www.patentcommons.org/ or http://www.openinventionnetwork.com/, where that entity has a charter allowing only defensive use - and preferably with other entities involved to enforce that charter. A public statement like http://www.redhat.com/legal/patent_policy.html doesn't hurt either, though it's not legally binding. Now, PC or OIN might not be the exact right vehicle for you, for other reasons, but that's the basic approach.
Disclaimer: I work for Red Hat, which is a strong proponent of this approach and supporter of these organizations. Until software patents go away - and Red Hat is supporting that effort too - this is the only way to play the game that is both safe and (IMO) moral.
http://www.avc.com/a_vc/2006/04/patently_absurd.html
If you're letting them spend your money on filing patents without any kind of binding commitment to use them only in defense, and there's plenty of evidence at USPTO that your portfolio companies are still doing just that, then you're not clearly any different than any other VC in that regard.
This madness will not stop until there's more retaliatory capability than first-strike, and that won't happen as long as there's money pouring into the acquisition of first-strike weapons. Those who fund the stockpiling are culpable, no matter what they say as they're doing it.