Your Only Code Should Be Your Specialty
- David Peček
- Nov 14, 2018
- 3 min read
Updated: Sep 6, 2020

When I started in software, tooling for operational needs was not nearly as prevalent as it is today. When you need monitoring, performance metrics, deployments, builds, and frameworks, there is now a myriad of options available for these. Its important to not loose sight of the fact that you no longer need to source or create this tooling, even with legacy applications. .
As a small to medium sized tech company, you should only be writing code which is specialized to your business. All other needs can be taken care of by 3rd party vendors whose job it is to specialize in those areas.
Breaking Old Habits - What is Your List?
We have all had to make some hard decisions in the past: your legacy technology stacks did not always integrate seamlessly. You had to bridge the gap between disparate parts of your stack which were never meant to be used together. This usually required some custom coding to ensure the integrations work correctly. At the time this coding was necessary.
If you look now at the cost of development and support of these tools you may find it far exceeded any vendor today and their costs. What are the areas of your current business which might benefit from removing that homegrown code which is not related to your speciality?
Tacked on features. Limited technologies in the past have led to additional features with different technologies merged into legacy applications. This can make the support of that application much more difficult as there are more avenues to failure.
Dead technologies. Every company has fallen down the rabbit hole of using that cool new tech or platform which never really took off. Now you are stuck with customer facing applications that have limited to no support or integration options. You have likely had to work around the maintenance of this technology by creating your own ways of building and deploying.
Manual data and application monitoring. When legacy applications were developed, the only way you knew how to ensure proper operation of it may have been to write scripts which would watch and then email when application or data issues cropped up.
Ensure as new opportunities come up in these areas to not roll your own anymore. What other areas in your organization have this kind of homegrown technology sprawl which you can identify?
Areas to Leverage for Legacy Apps
Having identified which areas you have done custom coding in not related to your business, what new tech is out there which can be easily leveraged to remove the need for these apps?
Port your legacy applications into cloud containers. Google Cloud has App Engine and AWS offers the Elastic Beanstalk which can host applications you are currently running on legacy hardware. This can remove the need for any kind of specialized server setup around these applications you have had in the past.
Use data visualization tools. Enable your internal users to be able to look at the data in their own way. Stop writing applications to do this. Tools like Metabase or Redash allow for you to quickly write tools where users can see and search data to fit their custom business needs.
Attach monitoring to your legacy apps. Unless your legacy apps are running in some esoteric language like Progress, most modern app monitoring systems will allow you to attach to their running instances and do basic health monitoring with CPU and memory usage.
Engage with Architecture Going Forward
The best way to ensure the sins of the past are not repeated is to let the architecture teams know your requirements for future products. By proactively engaging with them you can gain and understanding with them of what it is you need so there will be minimal support / operations costs for future applications. Areas to consider:
Technology specifications: can these run in standardized cloud based containers? If not why?
Special deployment requirements: is there anything different or unique about the new application which would complicate setup and support?
Easy monitoring: can standardized monitoring systems easily attach to this application to allow us to monitor it for health?
Comments