Strategic and Tactical Programming

What is and why to choose strategic and tactical programming approaches

Strategic and Tactical Programming

This post is originally posted at petran.substack.com

In this post, we will touch on 2 different programming approaches :

  • Strategic
  • Tactical

🌊Let’s dive in

Tactical Programming

The Tactical programming approach is the mindset that says we need a feature or some task to be working on production as soon as possible.

Tactical programming = working code is just fine

The tactical approach aims for speed and fast development times, based on various circumstances such as catching deadlines, startups with rapidly growing features, and many more.

Tactical programming is a culture at the organization or team level,

not at the developer level

But this speed and high pace come with some bad side effects also.

In tactical programming, we work on a task without noticing :

  • The overall code base design
  • How to implement the code with a better design
  • Writing unit tests
  • Adding code style for consistency

This approach leads to evolving a code base with :

  • High complexity
  • Low Development Experience
  • Bad Abstractions
  • Unnecessary Duplicated code
  • Bad code base design
  • High software entropy
  • High technical debt
  • High possibilities for regressions (bugs)

Eventually, the speed and the high pace will be gone and the developers will work harder and harder with the productivity the be lower and lower.

High levels of tactical programming lead to high levels of frustration for software developers

A Tactical programming approach should be embraced only on demand with special occasions such as:

  1. Fix a high-risk bug
  2. Roll out a feature to close a contract or a deal
  3. Roll out small features that aim at quick wins for the company

Strategic Programming

The Strategic programming approach is when working code is not enough and we focus to produce a better overall code base design.

On Strategic programming, we pay some amount of time :

  • Finding the best design to go with
  • Create a more smooth integration for future features
  • Fix older bad design decisions
  • Create new more mature abstractions
  • Take time to write proper unit tests
  • Evaluate the code base technical dept and make decisions on reducing it

The extra time spent on the design is about 10% β€” 20% of the total task time.

But this extra time will pay back in the future definitely in about 6–18 months.

Strategic over Tactical Programming

Strategic over Tactical Programming

A strategic programming approach is not a developers choice but a culture that an organization or a team embraces to follow

Benefits to consider :

  • βœ… High Code Quality
  • βœ… Lower Complexity
  • βœ… High DX
  • βœ… Low software entropy
  • βœ… Higher productivity
  • βœ… Cleaner Design
  • βœ… More Sustainable code base
  • βœ… Low tech dept

Conclusion

Companies with long-lasting products that have embraced a strategic programming approach are thriving and are able to continue to roll out features with lower release times and costs.

Tactical programming must be used to boost short time periods and then step back on strategic programming.

References :

--

--

Petros Koulianos πŸ’€β˜ πŸ‘½

Software Engineer πŸ‘½ | Building applications for health industry | Work with JavaScript, Typescript, PHP | My NewsletterπŸ“© at petran.substack.com