Instant legacy

 

Quick throwback

I have been writing code for a long time. I've been through thick and thin, even before "the internet" and I was rewriting code from paper books. Yeaaa, I've done some things I'm not proud of. Things back then went slow, we waited for Microsoft to come with an update for Visual Basic 5 so I can use my modem from code to call my friends from THE COMPUTER. All was peachy, no sudden changes, no paradigm shifting, OOP was just making a mainstream break through. I'm saying, existing developers were happy.

These days

There are ten different frameworks for even the smallest of tasks... Hell, a new JS frameworks is popping up every 6 Months. New kids on the block don't even know what an object is these days. Functional programming is making a come back and everybody is constantly letting arrows -> -> -> (nerd jargon, sorry I had to)

Should we keep up with the trends

Not with the minor updates, but surely consider the major paradigm shifts. And this is not only my opinion, this has been a debate in our circles for a long time. A new shiny and well advertised JS framework is not a reason to cause an earthquake on your project and team. However, as a good Software Architect, one should foresee the trending and adjust team's mindset to easily accommodate the major paradigm shift when they inevitably happen. 

There are several common pitfalls at this day and age, that lead to writing what we call Instant Legacy Code:

  1. Thinking of the project as one unit of matter, instead of small pieces of service bricks
  2. Thinking of your team as machine, that only needs attention when it breaks
  3. Not thinking about Unit or Automated testing
  4. Not thinking about CD/CI, doing everything manually
  5. Not having coding standards, If it does the job, just keep going!
  6. Not using well known code stack or language standard frameworks/libraries
  7. Not thinking about containerization, scalability, etc...
  8. Not thinking about caching and security
  9. Not optimizing during development
If any or more of these points are lingering on our setup, we are writing instant legacy code. 
No client will pay for you to refactor the code so its more readable, that concerns developers only. Clients want to see features, they pay for availability, response times, they don't care if your application is compatible with Docker. They will just ask why the application is difficult to maintain or scale. Its our job to comply with the world of technology!

To sum things up, change is great, its our job to make it smooth!

Comments

Popular posts from this blog

Its not a bug, its a feature

The Ship of Theseus

In nomine patris et matris et sancte vehiculum