PMD meets Git to prioritize technical debt
blog.walkmod.com
PMD meets Git to prioritize technical debt
1–10 of 11 posts
Re: PMD meets Git to prioritize technical debt
#2This is an approach I would gladly explore if we did another project that was introducing PMD midstream - I like it much better. One of the biggest difficulties was having people address PMD problems who didn't have a great deal of insight into the code they were fixing, and so it did cause another round of "repair" to code that was inadvertently broken on a functional level. This looks to help avoid that by associating PMD issues with a dev closer to the code.
Re: PMD meets Git to prioritize technical debt
#3Re: PMD meets Git to prioritize technical debt
#4Re: PMD meets Git to prioritize technical debt
#5This looks interesting. When we introduced PMD we did it with a major, swathing tech debt phase that took about 1 week to cover a code base of ~10^6 LOC. It was painful, and a step taken so that we could turn on PMD as of part of our CI flow. Going back, I wish we'd taken a more incremental approach as we lost a lot of time doing it (1000 dev hours or so?). This is an approach I would gladly explore if we did another…
Plus it is folly to attempt rework while writing features based on the old, broken code.
Re: PMD meets Git to prioritize technical debt
#6This looks interesting. When we introduced PMD we did it with a major, swathing tech debt phase that took about 1 week to cover a code base of ~10^6 LOC. It was painful, and a step taken so that we could turn on PMD as of part of our CI flow. Going back, I wish we'd taken a more incremental approach as we lost a lot of time doing it (1000 dev hours or so?). This is an approach I would gladly explore if we did another…
Re: PMD meets Git to prioritize technical debt
#7This looks interesting. When we introduced PMD we did it with a major, swathing tech debt phase that took about 1 week to cover a code base of ~10^6 LOC. It was painful, and a step taken so that we could turn on PMD as of part of our CI flow. Going back, I wish we'd taken a more incremental approach as we lost a lot of time doing it (1000 dev hours or so?). This is an approach I would gladly explore if we did another…
Incremental approach only works if the code was not that bad to begin with (properly modular, mostly SOLID, no need for major rework) and when you have unit tests. Plus it is folly to attempt rework while writing features based on the old, broken code.
If we'd had more code like mine in place at the time PMD went live we'd have spent an order of magnitude more time re-writing so many things, in many cases nearly from the ground up.
Even the initial effort caused a lot of wailing and gnashing of teeth, but in truth it did help us learn and improve more quickly than if we'd kept left to our own devices.
Re: PMD meets Git to prioritize technical debt
#8For example, obtaining the list of the 10 most modified files is as easy as:
git log --name-only --pretty=format: | sort | uniq -c | sort -nr | head -n 10
This is only a simple example but something non much different could be used to get a better indication of actual activity, limit the search to specific timeframes or users, etc...Re: PMD meets Git to prioritize technical debt
#9This looks interesting. When we introduced PMD we did it with a major, swathing tech debt phase that took about 1 week to cover a code base of ~10^6 LOC. It was painful, and a step taken so that we could turn on PMD as of part of our CI flow. Going back, I wish we'd taken a more incremental approach as we lost a lot of time doing it (1000 dev hours or so?). This is an approach I would gladly explore if we did another…
As the Uncle says, if you have tests that's just a minor annoyance.