Live data from Hacker News

Ask HN: Are my expectations on code quality and professionalism too high?

news.ycombinator.com

261–270 of 306 posts

Re: Ask HN: Are my expectations on code quality and professionalism too high?

#261

Earlier quoted context omitted.

> Young dev from large corp: "Sigh, ok, just saying in 2 years from now we wont be in a good spot". Except in my experience it’s not two years , it’s two months . And I can set up two micro instances with terraform in less than an hour. So soon you’re burning your three months of runway with development at 20-50% efficiency, and have no ability to pivot, if needed, because your infrastructure is rigid and hardcoded.…

I agree. While I'm a big proponent of "as simple as possible", often when people say "x is overkill", they mean "I don't know x" (where x != k8s of course).

Well introducing some new technology that people will have to learn is often overkill, if there is already a slightly less optimal way to do it that the whole team is familiar with.

Re: Ask HN: Are my expectations on code quality and professionalism too high?

#262

In my engineering days there was a saying: you can have it quick and cheap and high quality, but you can only have 2 of those 3. Spunss like you work somewhere quick and cheap. That's not wrong per se. If lives depend on the outcome, you need quality. But I worked in plenty of financial places that were quick and cheap. Especially back office. Ask yourself: would the organisation be better off if we were higher quali…

Skipping tooling & processes below a certain (not very low) point isn't doing it "cheap and fast". It's saying "I want you to build my house but I want it to be cheap so don't buy any more hammers, it's too much money and we can't afford the time for you to run to the hardware store, just all share the one hammer you already have". It's doing it cheap (but actually expensive) and slow and low-quality.

You really want to build that house and I respect that, but the client just wants a tent and the hammer budget is zero. And since a storm is 10 minutes away they're not wrong...

Re: Ask HN: Are my expectations on code quality and professionalism too high?

#263

Earlier quoted context omitted.

> And I can set up two micro instances with terraform in less than an hour. The post was more of a metaphor than a concrete example. However, as a manager I can’t count how many times my team has declared that they can do something in under a day only to have it become a part-time job for someone to maintain indefinitely, or a multi-week rabbit hole as they debug some unexpected behavior, or technical debt as they ne…

> " I quickly learned that engineers frequently assume the best-case scenario for their time estimates, while managers end up planning for the worst-case scenario. " To be fair, bad managers (and there are a lot of them out there) often get really angry if you give a reasonable worst case scenario time estimate for a task, even if you can back it up.

Indeed. You learn in all roles that the only way to get your projects pushed through is to give overly ambitious timelines. If you were conservative or realistic, nothing would ever progress.

I've constantly been on projects where someone said, "This will only be a month of work for maybe 3 engineers." That project quickly becomes 5 engineers over a year because of empty promises.

That said, some of these projects frequently time a very long time because there's dishonesty in time estimates. If they were honest with estimates, you wouldn't have to cut corners. They try to cut corners to push a project through quickly - but it backfires constantly... Which leads to more work rather than doing the more effective and reliable part of lots of non-visible work before seeing visible results.

Re: Ask HN: Are my expectations on code quality and professionalism too high?

#264

Earlier quoted context omitted.

Twitter was founded in 2005. Amazon in 1995. Git didn't exist, SVN didn't exist before 2000. Common languages in use today didn't exist or were in their first versions (go, python, java, etc...). Most of the unit testing frameworks and IDE that are taken from granted weren't invented yet. There were different expectations back then. No software company should be running in 2020 with no version control, no unit test a…

Source control very much did exist in 1995. Twitter was initially built on top of Ruby. Java was very big in the Enterprise by 2005 and yes there were plenty of IDEs back in 1995. Amazon I believe was originally built on a C code base. There are plenty of companies that have no automated unit tests and do quite well with manual testing. But we aren’t just talking about source control and unit testing we are talking a…

Double checking the dates. CVS is 1990 (source control before SVN before git). Visual Studio first release is 1997. Eclipse and IntelliJ are both 2001 one month apart. PyCharm is 2010. Jenkins CI is 2005 (initially named Hudson). Teamcity is 2006.

Code quality is limited to the tools available at the time. It was an uphill battle to preach for (automated) scripted builds or any form of (automated) testing without having the later tools/frameworks/infrastructure at disposal.

Funfact: The java compiler was still fixing "bugs" in 2016 to be able to produce an identical JAR between builds.

Nowadays if an intern opens PyCharm. He can get right away a lint report on the current file and entire codebase, finding potential bugs and questioning why is this thing not running automatically on commit. This pushes quality up organically quite a bit. By comparison doing embedded C++ development in the 2000's, I can only recall of one company having a static code analyzer, that costed no less than $50k for a handful of small projects (they charged by line).

Re: Ask HN: Are my expectations on code quality and professionalism too high?

#265

Earlier quoted context omitted.

Source control very much did exist in 1995. Twitter was initially built on top of Ruby. Java was very big in the Enterprise by 2005 and yes there were plenty of IDEs back in 1995. Amazon I believe was originally built on a C code base. There are plenty of companies that have no automated unit tests and do quite well with manual testing. But we aren’t just talking about source control and unit testing we are talking a…

Double checking the dates. CVS is 1990 (source control before SVN before git). Visual Studio first release is 1997. Eclipse and IntelliJ are both 2001 one month apart. PyCharm is 2010. Jenkins CI is 2005 (initially named Hudson). Teamcity is 2006. Code quality is limited to the tools available at the time. It was an uphill battle to preach for (automated) scripted builds or any form of (automated) testing without hav…

I can't really blame them for nondeterministic builds. Not only was Java slower but computers in general were slower when javac was written, so recompiling unchanged source files was an obvious waste that everyone tried to avoid (by checking mtimes, because hashing every file was also pretty expensive).

Re: Ask HN: Are my expectations on code quality and professionalism too high?

#266
post #207

Earlier quoted context omitted.

This is why it's important that early team members are experienced engineers. They know which corners should be cut today to get the prototype out, and which shouldn't because they'll take 30 mins to do "properly" and save a day of work before the runway is even up. I work in a small company that has all the things the author mentioned and that can work quickly as a result. Almost none of it comes from "we'll do it t…

Experienced engineers are hard to get though, unless they are founders themselves. Early-stage startups tend to rely on the cheapest engineers they can find, and only hire more experienced devs when they've accumulated a pile of technical debt and poor decisions.

That's why who your technical partner is is so important. Pick someone smart who you wouldn't be able to afford otherwise or pay for it now and later.

Re: Ask HN: Are my expectations on code quality and professionalism too high?

#267

Me 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,…

Why not hire 5 good devs for the price of 1 abroad?

Re: Ask HN: Are my expectations on code quality and professionalism too high?

#268
post #186

Earlier quoted context omitted.

This, unfortunately and hilariously, rings quite true. Not to open the test-driven development can of worms, either, which seems to be part of the OP's dispiritment ... but I've yet to see any scenario where TDD was not a massive waste of time.

Depends. Is it the crazy religious TDD where you somehow are supposed to write tests before writing any code, despite the fact that you're making exploratory code ? TDD works best when you have figured out what to test for, unfortunately more than once I encountered people who wanted to write tests for exploratory code, in rigid TDD like environment. (sidenote: It's possible to do kind-of TDD with exploratory code in…

I have only toyed with it on personal projects. But that is kind of a misrepresentation from what a lot of them propose. You typically will not be writing more than a part of a test, just enough to get it to fail, before writing the code.

It can work good as a built in driver to exercise the code you are trying to write as you go. It also gives you a chance to test the interfaces to the code you are making as you go for usability, because you are coding to it.

There are actually some really interesting videos demonstrating the RED/GREEN/REFACTOR cycle they propose.

Re: Ask HN: Are my expectations on code quality and professionalism too high?

#269
Sounds to me like your standards are fine. Pushing straight to production without code review or tests is only acceptable if you're new and nobody is using your product yet.

When you're still in the prototyping stage, you want features and proofs of concepts, not waste your time on infrastructure that's going to change in a week, or tests for code that's going to be completely rewritten two weeks from now.

But once you're in production and you're starting to have a user base, code quality matters. It's worth investing in.

Re: Ask HN: Are my expectations on code quality and professionalism too high?

#270
Nah, entirely reasonable. We do all of that and more at the current project and the client has been super happy with the result all the way. We've been able to keep the tech debt low enough that we're just chugging along at the same velocity two years since the start (to the point where we've got the attention of the CEOs on both sides). Just don't expect to change company culture within a reasonable time frame. If you can't take it (I know I'd be out of there if they wouldn't even give it a try) just look elsewhere - plenty of places have reasonable processes in place.
Post reply on HN