TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Any framework to manage tech debt, increase quality – for small teams

29 pointsby raghavaover 5 years ago
Am trying to find if there any reference process framework&#x2F;guideline that small engineering teams could follow, to improve their engineering practice quality, in short, near and long term windows.<p>I have used the 12 step Joel test as a basic reference in a few places and found good success.<p>I am now dealing with a totally chaotic environment. (Think wild west of the olden days - no rules, no law) Seems like a daunting task, to carve order from chaos, but I believe it is doable.<p>Am sure many of us here would have dealt with such stuff. I need the help in form of larger wisdom of practitioners.<p>Please suggest! Thanks!

10 comments

nojvekover 5 years ago
I’ve worked at many startups and a high level principle i’ve found useful is “introduce process when not doing it hurts more”<p>- you could just work on flat files and sync with Dropbox. But losing history and context hurts. Introduce version control.<p>- hurts more to host your own git than just paying GitHub&#x2F;GitLab. Do that.<p>- Small prototype for startup. Don’t need tests. That’s cool. Ship to production directly. Now you have customers and shit is regressing and pissing customers off. Introduce CI so every merge with master has some level of quality.<p>- Now you have multiple team members all committing code at various levels of quality. Make sure they reviewed by people who have code context and know what good code is. Pull requests and reviews for merges.<p>- people don’t know what to do. What is highest priority? what is the scope? what are the unknowns? how long will things take? Introduce something like trello or any other task management system. Work against goals broken down into tickets and plan in small increments.<p>- shit goes on fire occasionally. Have an oncall rotation. Monitor metrics and alert if something needs investigating.
评论 #20888295 未加载
评论 #20888540 未加载
presidentover 5 years ago
The core of the issue is usually the team culture, mindset, and expectations. If things are as chaotic as you say, then you need to identify what is the cause of the chaos. Some possible scenarios:<p>1. Ignorant leadership has led to a culture of not respecting software engineering best practices.<p>2. Engineering team is ignorant of software engineering best practices.<p>3. Team understands best practices but culture is such that there is no time&#x2F;incentive to implement them. This could be due to people being overworked and as result, prioritizing for delivery and only being able to focus on things other than fixing tech debt. It could also be due to the fact that bonuses are given to those that are implementing new features into the product, therefore creating environment that values delivery over proper software engineering.<p>You need to figure out what the reason is for your team&#x27;s tech debt chaos and only then will you be able to fix the problems. There are also degrees of tech debt that you need to consider (architectural-level tech debt vs unit-level tech debt) that will play into what things you can do to rectify the issues and prevent them in the future.
peterbozsoover 5 years ago
Most of the important points have already been raised by others (version control, CI&#x2F;CD, etc.).<p>I would only like to recommend one specific tool, which you can integrate into your CI&#x2F;CD pipeline: SonarCloud (<a href="https:&#x2F;&#x2F;sonarcloud.io&#x2F;about" rel="nofollow">https:&#x2F;&#x2F;sonarcloud.io&#x2F;about</a>)<p>The on-prem version is called SonarQube (<a href="https:&#x2F;&#x2F;www.sonarqube.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.sonarqube.org&#x2F;</a>) which you can easily host yourself if you need&#x2F;want to, but the cloud version is dirt cheap.<p>This single tool can bring tremendous value into your work life, especially if you have a team full of junior&#x2F;inexperienced people. It has saved me countless hours on different projects by providing actionable insights on their code bases.<p>Disclaimer: I have no ties to the company making SonarQube, I am just really thankful that this tool exists. :)
评论 #20890530 未加载
评论 #20901174 未加载
bfritover 5 years ago
I introduced a thin process at my last job called &quot;capacity setting&quot;. It&#x27;s more abstract than just tech debt, but highly autonomous while still being aligned to the company&#x27;s needs and goals - including making it clear on one page what the team is working on and why. It worked out reasonably well as Tech Leads were able to control capacities and the business was able to see justification of why we&#x27;re working on various elements and how much of each.<p>Here&#x27;s the brief. Will be glad to answer any questions. <a href="https:&#x2F;&#x2F;drive.google.com&#x2F;file&#x2F;d&#x2F;1-ej-qOCYIaNHJITq8wiMj0hZTFKSxYHS&#x2F;view?usp=sharing" rel="nofollow">https:&#x2F;&#x2F;drive.google.com&#x2F;file&#x2F;d&#x2F;1-ej-qOCYIaNHJITq8wiMj0hZTFK...</a>
评论 #20888631 未加载
cbanekover 5 years ago
Don&#x27;t look for a silver bullet. Find the largest cause of chaos and try to solve it in the simplest way, which may be a manual process. Some things that cause chaos are: no CI, no tests, no code review, etc.<p>Trying to add some kind of process or framework is likely to just suck more energy out of the system and make the ICs think you&#x27;re wasting their time. If anything, they know what they need to do, but probably are being pushed to ship or do something else. Nobody likes to live in chaos.
评论 #20888577 未加载
virjiniaover 5 years ago
Hi, glad to hear you are using GitLab! Would love to get your feedback on a couple of things we are working on, which I think can help out: - <a href="https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;issues&#x2F;12196" rel="nofollow">https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;issues&#x2F;12196</a> - <a href="https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;issues&#x2F;12260" rel="nofollow">https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;issues&#x2F;12260</a> - <a href="https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;issues&#x2F;12683" rel="nofollow">https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;issues&#x2F;12683</a> - <a href="https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;issues&#x2F;12079" rel="nofollow">https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;issues&#x2F;12079</a>
he0001over 5 years ago
One thing I think is forgotten or neglected, particularly when you are a startup, is to learn your tools. If there are too many, cut down on them or isolate it’s code impact. Having too many tools&#x2F;frameworks around increases the level of cognitive load and how to use them thoroughly. I’ve seen too many times where there are several different tools solving the same general problem interfere with each other because the coders don’t know that one would be enough.
评论 #20890559 未加载
andrei_says_over 5 years ago
I’ve been reading Basecamp’s Shape Up &#x2F; stop running in circles and ship work that matters.<p>My twitter feed showed a few shops which implemented the process and are happy with it.<p><a href="https:&#x2F;&#x2F;basecamp.com&#x2F;shapeup" rel="nofollow">https:&#x2F;&#x2F;basecamp.com&#x2F;shapeup</a>
评论 #20888607 未加载
tehlikeover 5 years ago
Release early, release often and fast.<p>Stability and quality relies on rapid iterations. Optimize for that.
codesushi42over 5 years ago
Conformance tests, code reviews and ACLs for check-ins.<p>It&#x27;s the only way.
评论 #20888680 未加载