It gives a great way to visualise the work needed to achieve a goal, without ever mentioning time.
Use the Mikado Method to do safe changes in a complex codebase
11–20 of 88 posts
Re: Use the Mikado Method to do safe changes in a complex codebase
#12I think there are similar methods, such as nested todo-lists. But DAGs are exceptionally good for this use case of visualising work (Mikado graphs are DAGs).
Re: Use the Mikado Method to do safe changes in a complex codebase
#13Inherited? I wrote the thing! Customer have no money for large refactoring.
Re: Use the Mikado Method to do safe changes in a complex codebase
#14In other words, I'd reword this to using the Mikado method to understand large codebases, or get a first glimpse of how things are connected and wired up. But to say it allows for _safe_ changes is stretching it a bit much.
Re: Use the Mikado Method to do safe changes in a complex codebase
#15While great in theory, I think it almost always fails on "non-existent" testing structures that reliably cover the areas you're modifying. I change something, and if there's no immediate build or compile error, this (depending on the system) usually does not mean you're safe. A lot of issues happen on the interfaces (data in/out of the system) and certain advanced states and context. I wouldn't know how Mikado helps…
Working with old code is tough, no real magic to work around that.
Re: Use the Mikado Method to do safe changes in a complex codebase
#16While great in theory, I think it almost always fails on "non-existent" testing structures that reliably cover the areas you're modifying. I change something, and if there's no immediate build or compile error, this (depending on the system) usually does not mean you're safe. A lot of issues happen on the interfaces (data in/out of the system) and certain advanced states and context. I wouldn't know how Mikado helps…
Then by definition you have the smallest safest step you can take. It would be the leaf nodes on your graph?
Re: Use the Mikado Method to do safe changes in a complex codebase
#17Re: Use the Mikado Method to do safe changes in a complex codebase
#18So 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
#19It 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 boundaries for the module you want to work on, rewrite the module (or clone and make your changes), run both at the same time in shadow mode, monitor and verify your new module is working the same as the old one, then switch and eventually delete the old module.
Re: Use the Mikado Method to do safe changes in a complex codebase
#20Write 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.