(interpreting and combining two concepts and an essay while not having any knowledge or experience about software as a business, don't mind me)
What creates the "[covering] fire" in the software version of "Fire and Motion"?
Is it purely psychological on the developers' part? No, because (I think) it's about convincing the customers more than the devs, per the essay: "OK, you don’t have to buy from us... But make sure that you get a product that supports (XML / SOAP / CDE / J2EE) because otherwise you’ll be Locked In The Trunk." (Emphasis mine. Link removed 'cause it's broke and I didn't care to look on the Wayback Machine.)
Call the company doing this covering fire "Oracle," to match the essay. It's the customers' demands that make "Oracle's" actions effective as "covering fire." This seems especially true for the examples given in the essay. But is that the only route? Can "Oracle" create "covering fire" in other ways? Or, can a company make it more effective by doing more than just marketing?
I think "embrace, extend, extinguish" represents a way of enhancing covering fire. Namely: A company ("Oracle") with a dominant market share in some software market (1) implements in their software some standardized API, but then (2) extends it with their own specific stuff which many of their customers will want to use, then (3) uses that extension and its customers' dependence on it as covering fire.
Except maybe not, because covering fire means forcing change, and it's not clear to me how that would work in this case. A third party could try to re-implement the extensions, right? As long as they're busy doing that, the extensions are effective as covering fire. But what keeps them from succeeding and moving on? I suppose new features and the new bugs they cause in old code? If I recall correctly, the original essay suggests that "covering fire" is/can be a matter of coming out with more new technologies or features faster than "Oracle's" competitors can implement them, possibly by redeveloping the same technology with many different incompatible interfaces or extensions. I'm not sure I understood that entirely, though.
Does this get me any closer to understanding anything? Hard to tell.