Write tests. Most likely those 300k lines of code contain a TESST folder with 4 unit tests written by an intern who retired to become a bonsai farmer in the 1990s, and none of them pass anymore. Things become much less stressful if you have something basic telling you you're still good.
Use the Mikado Method to do safe changes in a complex codebase
21–30 of 88 posts
Re: Use the Mikado Method to do safe changes in a complex codebase
#22This is a good method if you are stuck and you don't know what you need to do. It also helps explore a project with a specific task in mind. It is not very useful in giving you confidence your changes would not cause unexpected side effects, which is usually the main problem working with legacy code. If you want confidence when working with legacy code, your best bet is to do a strangler fig pattern - find a boundari…
Re: Use the Mikado Method to do safe changes in a complex codebase
#23Is that the Mikado method?
Re: Use the Mikado Method to do safe changes in a complex codebase
#24This is a good method if you are stuck and you don't know what you need to do. It also helps explore a project with a specific task in mind. It is not very useful in giving you confidence your changes would not cause unexpected side effects, which is usually the main problem working with legacy code. If you want confidence when working with legacy code, your best bet is to do a strangler fig pattern - find a boundari…
Boundaries? Module? I laugh.
Re: Use the Mikado Method to do safe changes in a complex codebase
#25This is a good method if you are stuck and you don't know what you need to do. It also helps explore a project with a specific task in mind. It is not very useful in giving you confidence your changes would not cause unexpected side effects, which is usually the main problem working with legacy code. If you want confidence when working with legacy code, your best bet is to do a strangler fig pattern - find a boundari…
Boundaries? Module? I laugh.
Re: Use the Mikado Method to do safe changes in a complex codebase
#26Write tests. Most likely those 300k lines of code contain a TESST folder with 4 unit tests written by an intern who retired to become a bonsai farmer in the 1990s, and none of them pass anymore. Things become much less stressful if you have something basic telling you you're still good.
The problem with complex legacy codebases is that you don’t know about the myriads of edge cases the existing code is covering, and that will only be discovered in production on customer premises wreaking havoc two months after you shipped the seemingly regression-free refactor.
Re: Use the Mikado Method to do safe changes in a complex codebase
#27Write tests. Most likely those 300k lines of code contain a TESST folder with 4 unit tests written by an intern who retired to become a bonsai farmer in the 1990s, and none of them pass anymore. Things become much less stressful if you have something basic telling you you're still good.
The problem with complex legacy codebases is that you don’t know about the myriads of edge cases the existing code is covering, and that will only be discovered in production on customer premises wreaking havoc two months after you shipped the seemingly regression-free refactor.
Re: Use the Mikado Method to do safe changes in a complex codebase
#28Re: Use the Mikado Method to do safe changes in a complex codebase
#29So you do things one step at a time and timebox as you go? This method probably doesn't need its own name. In fact I think that's just what timeboxing is.
Re: Use the Mikado Method to do safe changes in a complex codebase
#30So you do things one step at a time and timebox as you go? This method probably doesn't need its own name. In fact I think that's just what timeboxing is.
FWIW Mikado seems to be the name of that game where you pick up one stick at a time from a pile, while trying to not disturb the pile. (I forget the exact rules). So it isn’t as if somebody is trying to name this method after themselves or something, it is just an attempt at an evocative made up term. Timeboxing is also, right? I mean, timeboxing is not recognized by my spell checker (I’d agree that it is more intuit…