Honestly, I was hooked just by the title: “How we deleted 4,195 code files in 9 hours.” It sounded like an incredible feat, and I was eager to see how they managed it.
But as I read through the article, I couldn’t help but think, “Wait a minute, so before this event, you guys were actually okay with working in an environment where you had:
Thousands of dollars wasted every month on unnecessary resources.
4,195 dead or zombie code files and an additional 4,747 lines of code just lying around, clogging up the system.
120 open, unresolved PRs and 2,851 unused branches just sitting there.
22 unused feature flags and 46 outdated packages in your dependencies.
42 unused Jenkins jobs and 58 kubeflow pipelines that no one was using.
50 dead repositories that were just taking up space.
47,804 unnecessary files in Google Drive that no one needed.
159 old Confluence documents and 200 archived Jira tickets that no one cared about.
WTF? So you’re telling me that there were nine departments, each with 3-4 members, and no one seemed to care about this mess until a competition came along? :sweat_smile:
I mean, who created this mess in the first place? These same teams were costing the company thousands of dollars every month with their neglect. They made it harder to maintain projects and probably made onboarding new people a nightmare. And now, they’re publishing a post about how proud they are of cleaning it up?
Honestly, I was thinking someone should have been fired over this. It’s no wonder companies like Twitter ended up laying off 80% of their staff. If this is what’s considered acceptable until someone dangles a prize in front of them, it’s clear why some companies take drastic measures.
Honestly, I think that's a valid point. What has been your experience in a small startup? How did you keep all that under control?
The issue here is not the prize, but the focus. When you move forward, trying to develop features for your customers as fast as possible, it's very hard to even notice all that. If you have some free time, you probably go to tackle more important technical debt.
This is the first startup I'm part of (big company before that), so it's hard for me to say what's the norm in other place. From what I talked with friends in other small startups (R&D of <40 people), it's quite common to almost NEVER spend the time on deleting stuff.
Maybe it's bad habits, or bad culture, but I'm 100% sure we are not alone. And if you are already in that situtation - such an effort can help to kickstart a better way forward.
For example, we changed policies to automatically delete merged branches which was not enabled in most repos.
We added dead code analyzers that will help us identify dead code in the future.
And similar steps to avoid being in the same deep shit in the future.
It’s clear that what you’re doing to address these issues is really important.
Implementing measures like automatic deletion of merged branches and dead code analyzers is a smart approach to prevent this kind of problem from piling up again in the future.
And honestly I'm looking forward to reading more about the steps you’re taking to ensure this doesn’t happen again
I'm not sure I'm going to cover them in future articles, but in addition to those mentioned we:
- Do a weekly analysis of the cloud costs, quickly killing any anomalies and cleaning up unused resources.
- When we create a feature flag, we also create a ticket to delete it, putting it in the relevant sprint (usually couple of weeks after the release).
For the Jenkins/Kubeflow jobs and unused repositories I hope that the awareness will be enough. If we do a similar event sometime in the future, I believe that the score will be much lower :)
Love this!! So much long term value in a day like this, literally gamifying cleaning-up and deleting unneeded components to work in a "Hackathon" style
You're a genius Cleananton (I'm sure this will stick 😂).
I'd love to do such an event as soon as I'm more familiar with things in the new company, and it'll be a blast.
One thing wasn't clear: how do you score if someone deletes 100 lines and someone else deletes 300?
How often was the scoring happening – at the end of the Cleanathon or daily/weekly?
Thanks! This was just a one day event, scoring was at the end.
All this in just one day! Even more impressive!
Honestly, I was hooked just by the title: “How we deleted 4,195 code files in 9 hours.” It sounded like an incredible feat, and I was eager to see how they managed it.
But as I read through the article, I couldn’t help but think, “Wait a minute, so before this event, you guys were actually okay with working in an environment where you had:
Thousands of dollars wasted every month on unnecessary resources.
4,195 dead or zombie code files and an additional 4,747 lines of code just lying around, clogging up the system.
120 open, unresolved PRs and 2,851 unused branches just sitting there.
22 unused feature flags and 46 outdated packages in your dependencies.
42 unused Jenkins jobs and 58 kubeflow pipelines that no one was using.
50 dead repositories that were just taking up space.
47,804 unnecessary files in Google Drive that no one needed.
159 old Confluence documents and 200 archived Jira tickets that no one cared about.
WTF? So you’re telling me that there were nine departments, each with 3-4 members, and no one seemed to care about this mess until a competition came along? :sweat_smile:
I mean, who created this mess in the first place? These same teams were costing the company thousands of dollars every month with their neglect. They made it harder to maintain projects and probably made onboarding new people a nightmare. And now, they’re publishing a post about how proud they are of cleaning it up?
Honestly, I was thinking someone should have been fired over this. It’s no wonder companies like Twitter ended up laying off 80% of their staff. If this is what’s considered acceptable until someone dangles a prize in front of them, it’s clear why some companies take drastic measures.
Honestly, I think that's a valid point. What has been your experience in a small startup? How did you keep all that under control?
The issue here is not the prize, but the focus. When you move forward, trying to develop features for your customers as fast as possible, it's very hard to even notice all that. If you have some free time, you probably go to tackle more important technical debt.
I agree have all perfect is not possible and most of the time is not reasonable,
but these numbers that was provided it’s looks too high
I agree to have some percentage of all this
0 dead or zombie code files
0 open, unresolved PRs and 0 unused branches
0 unused feature flags and 0 outdated packages
0 unused Jenkins jobs and 0 kubeflow pipelines
0 dead repositories
0 unnecessary files in Google Drive that no one needed.
0 old Confluence documents and 0 archived Jira tickets
maybe 3% or 5% it’s ok
more than 10% something going wrong
This is the first startup I'm part of (big company before that), so it's hard for me to say what's the norm in other place. From what I talked with friends in other small startups (R&D of <40 people), it's quite common to almost NEVER spend the time on deleting stuff.
Maybe it's bad habits, or bad culture, but I'm 100% sure we are not alone. And if you are already in that situtation - such an effort can help to kickstart a better way forward.
For example, we changed policies to automatically delete merged branches which was not enabled in most repos.
We added dead code analyzers that will help us identify dead code in the future.
And similar steps to avoid being in the same deep shit in the future.
Anton, I totally agree with you!
It’s clear that what you’re doing to address these issues is really important.
Implementing measures like automatic deletion of merged branches and dead code analyzers is a smart approach to prevent this kind of problem from piling up again in the future.
And honestly I'm looking forward to reading more about the steps you’re taking to ensure this doesn’t happen again
I'm not sure I'm going to cover them in future articles, but in addition to those mentioned we:
- Do a weekly analysis of the cloud costs, quickly killing any anomalies and cleaning up unused resources.
- When we create a feature flag, we also create a ticket to delete it, putting it in the relevant sprint (usually couple of weeks after the release).
For the Jenkins/Kubeflow jobs and unused repositories I hope that the awareness will be enough. If we do a similar event sometime in the future, I believe that the score will be much lower :)
wow, these missing explanation parts how you preventing this happening in future,
for sure must be written down in this post 💪
Love this!! So much long term value in a day like this, literally gamifying cleaning-up and deleting unneeded components to work in a "Hackathon" style
Thank you Greg! :)