Back to writing

Building with AI allows you to create much more code much quicker. But that doesn’t mean the code will be good.

Tactical Programming

Tactical programming is the day-to-day coding and syntax knowledge that many of us spent our lives learning and honing in order to be effective programmers.

  • It focuses on writing correct and efficient code to solve immediate problems.
  • how to write the same basic concepts in many different languages, (e.g., loops, conditionals, data structures)
  • debugging and troubleshooting code to ensure it works as intended
  • writing tests to verify code correctness

All of this has become basically free labor with the use of AI and is getting better and less buggy with each iteration of the models coming out.

Strategic Programming

Strategic programming, on the other hand, is about making high-level decisions that shape the overall architecture and direction of a project. It involves understanding trade-offs, anticipating future needs, and designing systems that are maintainable and scalable.

  • what kind of architecture do we need? Do we need a load balancer? How about a cache?
  • what kind of trade-offs are we making? Are we optimizing for speed, maintainability, or scalability?
  • how do we ensure that the decisions we make today won’t hinder future development or scalability?

Where do we go from here

Moving forward, it’s important to know:

  1. Our role as programmers and engineers.
  2. How to leverage AI effectively without compromising code quality and maintainability.
  3. How to make strategic decisions that guide the long-term direction of our projects.
  • Are we keeping the code base simple and easily maintainable or are we letting the AI run amok, introducing unnecessary complexity, and rewriting logic that we used elsewhere in the app, but it decided to not reuse it or improve upon it
  • Are we making thoughtful architectural decisions or are we blindly following AI suggestions without considering long-term implications?
  • Are we continuously evaluating and improving our strategic decisions, or are we letting AI dictate the direction without human oversight?