Earlier quoted context omitted.
I really wish we had more precise terms for tech debt. For instance I think type/schema debt (where your domain model has changed from your original type/schema debt) is very painful and has a very high interest rate. I think duplicate domain logic has a medium to high interest rate. I think code organization(what methods go where) has a low to medium interest rate. I think white spacing, duplicate non-domain logic a…
My take is that the highest tech debt is never duplication but always abstraction. Duplication make the job tedious and error-prone, but a wrong abstraction in the start and suddenly you have an insurmontable rewrite of everything for the unexpected change or feature that comes in and wasn't envisioned in the beginning. And it'll come, until you have product market fit and are not a startup anymore.
Ask HN: Are my expectations on code quality and professionalism too high?
281–290 of 306 posts
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#282Earlier quoted context omitted.
I really wish we had more precise terms for tech debt. For instance I think type/schema debt (where your domain model has changed from your original type/schema debt) is very painful and has a very high interest rate. I think duplicate domain logic has a medium to high interest rate. I think code organization(what methods go where) has a low to medium interest rate. I think white spacing, duplicate non-domain logic a…
My take is that the highest tech debt is never duplication but always abstraction. Duplication make the job tedious and error-prone, but a wrong abstraction in the start and suddenly you have an insurmontable rewrite of everything for the unexpected change or feature that comes in and wasn't envisioned in the beginning. And it'll come, until you have product market fit and are not a startup anymore.
To GP: schema debt is usually from adding stuff before you need it... it's almost always pre-mature and one should have a good migration strategy in place early on in order to support destructive (or at least not-simple) restructuring over time.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#283Earlier quoted context omitted.
When I was managing a large, distributed team of mostly mediocre engineers (at a poor bigco), it was common to take the best case estimate (provided by a senior engineer or architect), add 50-100% because due to lack of similarly experienced engineers responsible for day-to-day coding, add 25-30% for SQA, and add 50% for "business" delays (usually LOB heads who couldn't agree on features, or who asked for utterly stu…
It sounds like you had distributed decision making authority but concentrated accountability for the outcome. Worst-case scenario. > the senior engineers knew our estimates were crazy high compared to what they'd be able to do independently Interestingly, I worked at a company where teams of engineers were given wide latitude to design, implement, and deliver their features in isolation. The theory was that engineers…
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#284I am working now with a code base that was created during a time of such a mentality, but it wasn’t true, just fashionable 8 years ago. So much of it sucks, no functioning architect to ensure basic design quality or consistency. Thankfully, for the first time in my career, I have management committed to getting the worst bits in order, they seem to understand how costly all those earlier “savings” were. Thing is, it wouldn’t have cost more to do it right the first time. Engineers just would have needed to design correctly and implement correctly. Which may have cost more eng $$ in the beginning, but we’d also have had $MM more in referenceable customers as a result.
FWIW I have the responsibility of raising the quality via design review and code review, as well as designing and coding. I’m one of those architects now. Seems to be working.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#285Earlier quoted context omitted.
There are also many companies that go overboard with their code review and tests, get none of the intended gains, produce more slowly than they can, because of an attempt to cater to the lowest denominator. But I suppose if you're going to pick one of two extremes, that would still tend to be the lesser of two evils. I'm not sure that's necessarily the case. IME, not much will kill both the pace of development and te…
Testing is a skill to learn like anything else. Teams that dogmatically apply any new practice or process without making a genuine effort to learn that thing will never extract value from it. If your team can try, fail, and learn from mistakes, you are in a mature organization. If your team gives up quickly because of fear of dogma or has no strategy for dealing with the challenges of learning new skills, it's unlike…
If you've got a team that is genuinely interested in improving and willing to work on new ideas to make the best use of them, both reviews and testing can obviously be very helpful. That's not really the situation I'm talking about above, though.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#286If the things you value are valuable in your new environment, you’ll find the tact, time, and patience to improve the codebase.
One thing that helped me was helping others. Writing documentation, documenting processes, playing dumb sometimes...
Your standards are _not_ unreasonable, but they are _your standards_. If you want others to adopt them, you must lower the cost for them to do so—and must do so in a genuine way.
Lately, I’ve found the quickest way to be “right” is to allow others to be “wrong.”
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#287Earlier quoted context omitted.
Really, really agree. Especially on the last point. Having a small, experienced team is I think the least risky way to build products. Taking the right shortcuts is the big advantage here. Not only about technical debts, but also on reducing planning things to the last detail and reducing overhead on researching best practices for a non-proven stack.
Can you clarify your last sentence? Do you mean not spending too much time planning things out to too much detail?
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#288Earlier quoted context omitted.
I really wish we had more precise terms for tech debt. For instance I think type/schema debt (where your domain model has changed from your original type/schema debt) is very painful and has a very high interest rate. I think duplicate domain logic has a medium to high interest rate. I think code organization(what methods go where) has a low to medium interest rate. I think white spacing, duplicate non-domain logic a…
My take is that the highest tech debt is never duplication but always abstraction. Duplication make the job tedious and error-prone, but a wrong abstraction in the start and suddenly you have an insurmontable rewrite of everything for the unexpected change or feature that comes in and wasn't envisioned in the beginning. And it'll come, until you have product market fit and are not a startup anymore.
A gentler, more helpful admonition would be "find the theme, reuse the theme". If you only set out to compress the code you obscure the theme of the code, but if you set out to elevate the theme as you find it, you are likely to let more code rest in a form that is duplicated but a reasonable reflection of the themes currently present.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#289Me as a manager at a startup: "Look, we have 5 months of runway. Does that make sense?" Young dev from large corp: "Yes. But if you don't use Terraform we wont be able to see our infrastructure changes over time. We don't even have a proper code review process." Me as a manager at a startup: "We have two micro instances. Do not install Terraform. Finish the import prototype... now." Young dev from large corp: "Sigh,…
This. Though, I think the exact example may be debatable. The (appropriate) question was “We have 5 months of runway, does this make sense?” Assuming the manager is halfway competent in listening to their team, then this should be a useful focusing activity for both the dev and the manager. In business, and in life, it isn’t about what you “can” do, it is more about focusing on the handful of things that give you the…