Every project needs a reason to exist. A clear purpose that answers the question "why am I fighting" (e.g. struggling to write code). This purpose gives meaning to victory. Clausewitz calls this "political will".
Strategy is about choosing where engagements will occur. In this endeavor I will primarily struggle against the machine (e.g. the codebase) and the customer. I'm not sure, however, that a perfectly literal interpretation of Clausewitz is useful to software. For example, the tactics required to win "engagements" can seemingly clearly be cast literally. The tactic: build a systemic way to handle celery enables me to win the engagement: run background tasks. But by pursing a different strategy entirely the need for such tactics can be absolved. "Meet the enemy where you are strong and he is weak" is a classic dictum of Clausewitz. Maybe the move is to adopt strategy (architecture?) such that I only have to solve problems I'm good at solving, or already have.