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).
Ask HN: Are my expectations on code quality and professionalism too high?
261–270 of 306 posts
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#262In 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.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#263Earlier 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.
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?
#264Earlier 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…
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?
#265Earlier 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…
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#266Earlier 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.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#267Me 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,…
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#268Earlier 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…
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?
#269When 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.