rlim

A Tale of Tactical and Strategic Programming

written by Ricky Lim on 2025-03-21

Basking in the warm, sunny delight of Playa de La Barceloneta, within the bustling halls of a cutting-edge Space agency, a team of rocket scientists embarked on a mission that would redefine the face of space exploration forever. Their goal? Create a revolutionary application that would make rocket science data FAIR - Findable, Accessible, Interoperable and Reproducible.

Chapter 1: Blast off with a Tactical Approach

In the heart of the Galactic Agency, Dr. Emma Lim gathered her handpicked team in a meeting room filled with the promise of innovation. She stood before them wearing her space lab coat a symbol of her dedication to the mission.

"Alright, everyone," she declared, her voice filled with urgency. "We need to build a proof-of-concept, and we need to move fast. Who's with me?"

Her small yet dedicated team fueled by Café con leche, and the promise of scientific glory, headfirst dove into tactical programming. They chose Python, a language as familiar to them as the stars in the night sky, leveraging its rich ecosystem to propel their project forward.

Dr. Emma rallied her team once more: "We must meet our deadlines with perfection." Eric Odegaard, the brilliant Full-IT software engineer, stepped forward with confidence. "Let's use Django!" he exclaimed.

Within weeks, they reached a functioning demo. It wasn't pretty - it had more rough edges than bacterial colonies grow in space. Hey, it wasn't perfect, but it worked.

As they unveiled their demo to the board, armed with FAIR data—meticulously collected from space agencies and made findable, accessible, interoperable, and reproducible —jaws dropped, and funding rained down like a meteor shower.

Chapter 2: Mayday Mayday Mayday, We Have a Problem

Loaded with cash, the team blasted into full development mode with a two-pizza team. But as they added more features, their codebase more and more to resemble a black hole - dense, complex, and prone to desperation. The two-pizza team noticed that changes in one part of the code often led to unexpected problems.

"We're spending more time fixing bugs than adding new features" Complained by Ellie Hatta, spinning in her anti-gravity chair.

The team realized their tactical approach, while gave them adrenaline for their initial launch, was now holding them back like a rusty outdated rocket. They dearly missed the "soft" parts of their software to adopt changes.

Chapter 3: The Strategic Space Odyssey

An emergency briefing recognizing the need for a change, was triggered by Dr. Emma.

"We need to shift our mindset" she explained. "It's time to invest"

They decided to learn and unlearn their codebase.

To accelerate unlearning, Emma decided to hire a software architect, Martina van Dijk. With her charming approach, she introduced design patterns when applicable and principles of clean architecture.

"By isolating components and promoting reusability, we're not just building a system—we're crafting a robust and flexible framework that will serve us well into the future."

The team realized that they can only fight complexity by minimizing what matters. Together, they retreated to the whiteboards and re-architected for clean design. This strategic approach seemed to slow down visible progress initially, but it was essential for a foundation for future growth.

Eric embarked on a mission to tame the code jungle. He began organizing it into logical folders, focusing on the critical path that made the application tick. Gone were the days of dumping everything into a single file unless it was a deep-sea feature with a simple interface. Instead, they crafted modules that could be reused across different parts of the system, making it more efficient and less cluttered.

During code reviews, the team ditched the drama. When naming conventions or logic were unclear, they didn't argue; they clarified with comments or rewrote the code for better readability. And when they encountered tight coupling via class inheritance, they broke free by composing shared utility classes. It was like untangling a knot—suddenly, everything flowed smoothly.

Meanwhile, Lisa Lie, the DevOps ninja, worked her magic. With her expertise, she simplified application configuration and went above and beyond by automating key processes such as rotating passwords, managing encryption keys, and updating API keys. The team was tired of hearing "it works on my machine", so they transformed their ClickOps into DevOps. With infrastructure as code and automation for continuous integration and continuous development, they streamlined their workflow. It was like upgrading from a manual transmission to an automatic—smooth, efficient, and a whole lot less frustrating.

Chapter 4: Reaping the Benefits

As winter's chill turned into spring's warmth, the team's strategic efforts began to pay off. They could add new features easily, but what was even more remarkable was their new level confidence in their estimation in delivering them. The once chaotic codebase, akin to a group of solo musicians, had transformed into a harmonious orchestra, with each component working in perfect sync.

This transformation reignited the team's passion for their application, and their connection with users grew stronger than ever. It was as if the very rhythm of their work had changed, from discordant notes to a beautiful symphony that resonated with everyone involved."

Chapter 5: Tactical Bug-Fixing

But just as spring in the air, a new challenge emerged. Despite their strategic triumphs, bugs continued to surface—reminders that perfection is an elusive dream. The team knew they couldn't eradicate them entirely, but they were committed to control them.

In a bold move, they shifted gears to a tactical approach, employing the powerful tool of test-driven development.

Dr. Emma stood before them, her voice filled with conviction: 'For every bug we encounter, let's first craft a test to expose its weakness. Then, we'll work tirelessly to fix the code until the test passes.'

The room fell silent, and then erupted in a chorus of agreement. United, they embarked on this new path, combining tactical precision with their overarching strategic vision. With each bug eliminated, their confidence grew, and their software became stronger. The battle against bugs was far from over, but the team was ready, armed with a strategy that would ensure their victory in the long run."

Epilogue: The Balanced Approach

Dr. Emma looked back on their journey:

"We've come to learned that succesful scientific software development isn't about choosing between tactical or strategic approaches - it's about knowing when to apply each.

Our initial tactical sprint got us to the hand of our users, our strategic phase built for our foundation, and now we can tactically respond to changes while strategically planning for our roadmap

But what's equally important is not what we've learned, but also what we've unlearned. We've had to let go of the 'it's always done this way' mentality that kept us locked in short-term thinking.

By embracing strategic programming, we've learned to design for the long term, creating modular, maintainable code that can evolve with our needs.

Now, we can respond tactically to immediate challenges while strategically planning for our roadmap. This balance allows us to build software that's not just functional today, but elastic for tomorrow's discoveries.

Essentially, software development is all about embracing chaos—finding harmony between tactical and strategic approaches, is essential for sustaining development for the long term.

Their software not only revolutionized rocket science but also served as a model for effective scientific software development, reflecting the power of balancing tactical and strategic programming approaches.

Note: This story is a work of fiction. The characters and names mentioned are entirely made up and not based on any real individuals or events.