Tactical or Strategic?

Peter Harrison - Jul 30 '18 - - Dev Community

With the advent of Agile there has been a move towards adaptive change over time, responding to the environment. The focus is on addressing short term business needs. It is the fate of many developers to maintain systems in a more or less constant state of churn, where ongoing business needs drive short term tactical modifications to address specific short term targets or goals.

So what is wrong with meeting the needs of business? Nothing of course! That is our job. The problem is that a exclusive focus on short term tactical decisions reacting to the environment prevents a more strategic approach of developing capabilities which are better able to adapt to changing business needs. We can't ignore the immediate needs of the business, but we should aim for a balance between the short term changes that are the bread and butter of many shops to broader capability building efforts which can improve delivery times and adaptability.

The reality however is that communicating the importance of this balance to businesses can be challenging. There is always the priority of the moment which diverts resource from the longer term strategic project. The important thing to communicate to business leadership is that building capability will allow you to move faster, deliver more and improve reliability and quality.

Strategic development also requires far more discipline and architectural vision. Any coder can be told to hack out a form or statically coupled database app. The aim of strategic projects is to build a capability that improves the ability for the business to adapt to short term environmental opportunities. This is important, as I am not advocating a return to monolithic waterfall development. In fact where possible you should buy rather than build applications. But if you are spending a ton of cash on development time without seeing much in the way of increasing functionality it might be time to evaluate how you can build systems that are able to adapt without code modification.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .