5 ms·
Show HN: Caribou – a GitHub app to help you manage technical debt
- attasimo 5y agoCaribou helps software teams manage long-term technical migrations in their projects. For example migrating from one networking library to another or migrating a codebase from one programming language to another. These changes usually happen over a span of a few months and without any tooling, they can be difficult to manage. It’s difficult to understand how much progress has been made, what is still left to do and who are the engineers helping move the migration forward. Caribou was built to solve these problems. So how does it work? In simple terms, Caribou is a Github application which, after configured, monitors all the changes in your repository and displays a dashboard with the progress of specific migrations along with who is contributing to these migrations. Caribou allows you to define all sorts of migrations using an easy-to-use rules engine; for example changing the project architecture, replacing a library or changing some coding conventions. You can get inspired by our examples in the docs section. Before building Caribou, we were working in a fast growing startup for a number of years. As part of managing our engineering teams, we wanted a way to see the technical improvements happening in the codebase and an easy way to recognise those engineers that work on these improvements. Unfortunately, we did not find anything that we could use off-the-shelf for this, and so we built Caribou! Caribou is currently in Beta and is available for free. Please go ahead and give it a try! Let us know what you think!
- igetspam 5y agoThis seems very useful. Any plans to support other hosted git providers, like gitlab? I've been needing something like this for a while but we're not using GitHub. I could hack and slash my way to a bad looking version of something lol me this but your dashboards look good and I cannot be trusted with UI/UX.
- attasimo 5y agoThanks for your feedback! We are planning to add all the other popular git providers like gitlab, bitbucket etc. but we don't know exactly when. This will depend on the interest from our potential users, so if we see enough interest in Gitlab, we will do it soon :) Would you be using Caribou in a professional setting or for your personal projects? What migrations are you currently doing that Caribou can help you manage?
- igetspam 5y agoProfessional. We actually regularly run into the problem of where team A updates some chunk of code that is consumer by a dozen or more applications and we need to track the update status of various consumers. I literally had another argument about it today because there was a required change that was announced but multiple parties missed the update and have brolen development pipelines. Being able to identify those internal projects and their update status would be really great for us.
- attasimo 5y agoI see. Is the code that gets updated by team A some type of versioned library? And does it sit in the same codebase as the other applications that consume it?
- igetspam 5y agoYes. Golang libs, java libs, terraform versions, container versions, helm library charts, etc. The code is all within the same gitlab org but we're not a monorepo. We have a regular problem tracking consumer updates.
- deleted 5y ago[deleted]
- lucasbirgha 5y agoWe are currently thinking about migrating our Android app to Jetpack Compose, so this tool might be useful in tracking that really looooong migration. What types of migrations does it support? Is it Android only? Does this work with open source repositories?
- me_im_counting 5y agoI looked through your site, and was a bit confused. How does this help you monitor technical debt specifically? This seems like traditional engineering issue tracking but I may be missing something.
- 1123581321 5y agoI wasn’t sure either. This page of the docs shows what you can track: https://www.hellocaribou.com/documentation/#types-of-migrations-supported https://www.hellocaribou.com/documentation/#types-of-migrati... Technical debt findable with those tools could be a less-than-ideal language choice, “fix this crap” comments, bad architecture identified by certain statements, etc. A traditional issue tracker would require identifying and marking those instances for refactor.
- attasimo 5y agoThanks for your feedback! Caribou tracks files that match specific custom rules that you set. So you will need to set the rules to match the ‘tech debt’ in your codebase. Once you set these rules, Caribou will track the decrease/increase of this tech debt and who is contributing to this decrease/increase. For example, you are using a deprecated library in your codebase and you need migrate it to another library. The old library is considered tech debt. You can set a rule to monitor the usages of the old library in your codebase. As your team starts migrating from the old library to the new library, Caribou will detect these changes and will show you the progress in the dashboard together with information on who is contributing to this improvement. Does this make sense?