Ask HN: How do you maintain a legacy codebase solo?
6 points by bodegajed 2 days ago | 8 comments
Hey friends, I hope you are all doing well. So, I've been studying the recent layoffs.fyi annual data, It seems the great reshuffle has slowed down.
It has been months since I got hired by a small company. I suspect everyone here got laid off before I was hired because by looking at the names of the commit logs, I can see that these people are all absent from the company.
I'm already burned out with this new position as a solo dev ai/ml full-stack software engineer.
Let me share my thoughts for a moment:
I'm mostly on non-coding activities when maintaining existing code
It's hard to provide estimates. Work is done by theorizing logically meaningful sequences for a real-world business requirement, usually in unpredictable, non-linear pain to comfort velocity.
Abstractions and functions have deeper design theories, and therefore, the user story must be understood when it is theorized and written. We have to assess the previous dev's choices and why the current was picked.
Tacit knowledge - on which we create a mental list of value-assessed design choices and their theoretical contribution to the next item in the sequence. Eventually, leading their overall contribution to the real-world business model.
i.e. if the business required this line of code to be made, therefore there is a value-metric involved, and this must be carefully assessed before altering the code.
Given a threshold of comfort, only then can we possibly alter the code. Deducing and isolating the root cause and, lastly, reproducing the error.
How do you handle legacy code? How do you explain this to your new boss? This full no-scope full-stack 360 is very overwhelming; I'm already burned out while job hunting. I provide them estimates and miss by a wide margin. I don't wanna go back to the job market.
saluki 7 hours ago | next |
Forget about best practices and refactoring.
You'll need to duplicate existing code and make it your own or risk adding one piece of new functionality and breaking things that were using that code in 20 unexpected places.
Build new isolated code with best practices.
You'll slowly become familiar with it and get a feel for the best way to make updates and changes safely.