Live data from Hacker News

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

news.ycombinator.com

211–220 of 306 posts

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

#211
post #63

Earlier quoted context omitted.

I think you have some things to learn, as a manager, and as an engineer.

Don't we all? What exactly do you mean? Two micro instances don't seem to warrant using Terraform

> Two micro instances don't seem to warrant using Terraform

That doesn't really make sense, it's not like there's some huge fixed cost of using Terraform, the whole point of infrastructure as code is that all the infrastructure is code, i.e. it's all variable cost.

Small infrastructure as small code.

And then it's all there when you expand. Change `num_micro_instances = 2` to `4`. `10`.

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

#212
post #23

Your standards are reasonable. However, what's missing in a lot of comments is a good process for assessing what the human and business factors that led to where the company is now, and how to approach changing it. This is natural as most people here are techies first, but it could lead to setting you up for a bad experience. There are very limited conditions, under which making this a blame exercise would be the rig…

[deleted]

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

#213

Earlier quoted context omitted.

I highly agree here. Do not staff a very new startup with junior engineers and expect a good outcome. Furthermore, you absolutely do need to cut corners _somewhere_, but a seasoned team understands that taking on such tech debt will require a reduction in velocity at some point in the near future. It is then incumbent upon engineers to ensure management understands that the team is borrowing from future velocity to d…

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?

#214
I've worked in places where people cannot understand the necessity of most of the things you list.

If I don't do those steps, they are fine with it at long as it works. If I want to setup all the minimal stack, as long it don't multiply the planning per 3, they are fine with it.

I think it is extremely discouraging, because even if you do all those good steps that would surely improve the product quality overall, it is not something that people can see or will consider. This is not a thing customers can see. Things will just work most of the time, and in case of a problem, you will be able to fix them in no time and it will go back to normal fast because you built all the toolkit before. Customers won't even have the time to complain.

Your standards are highly reasonable, but if you ask some sales person if you should spend 5 days on a feature or 7 days with better quality and full test coverage (ok it would be more like 10 days), they will always say no, don't do it or it's fine, we'll take care of this later.

Documentation? Oh, you'll do this next summer.

Explaining why you should do all this to a team is a long term work: it can take one to two years before they start to understand what the hell you are doing (I mean, maybe you'll have better results than the rest of the team or your infrastructure will be somewhat a little bit more stable).

But it is extremely discouraging, keep yourself warm and don't get too tired. Just do the things the way you are used to do and try to setup the things that are missing so hopefully one day other people will want to use them too.

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

#215
Do one thing at a time, well, and track outcomes.

Be prepared to take responsibility for it.

Code review is a practice that has studies which demonstrate that it's effective at reducing errors in software [0].

Work on that at first. Be prepared to spend a good amount of your time doing most of the code reviews. Write a review guideline with your team and share it around. Once people get used to the habit start encouraging others to take some of the responsibility.

I encountered a similar situation. Nobody practiced code review. Test coverage was spartan and brittle. The company was focused on shipping the first thing that worked, fast. Maybe it was to keep the lights on and land those precious contracts... but it had the external effect of tightly coupled systems, increased error rates and support requests, and in some cases errors resulted in customers losing data.

When changing culture and habits you have to be patient and resilient.

It took about a year before code review became widely adopted on the team. About six months after that we started tracking our code review metrics as we found that pull requests with few comments and large amounts of change were a big risk. We started getting feedback from reviewers that changes over a certain size were slowing down our velocity so we started seeing people submit smaller, leaner changes.

I did the same thing with testing. We now trust our CI pipeline to manage our code quality and releases. We're working on CD. It started small. And it grew.

You're not unreasonable. And neither is the team you're working with. Manage expectations and be the change you want to see and be patient.

[0] https://sail.cs.queensu.ca/Downloads/EMSE_AnEmpiricalStudyOf...

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

#216
post #205

Earlier quoted context omitted.

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).

Do you know k8s?

Haha perhaps not well enough, thus proving my earlier point :-)

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

#217
Junior engineers can't change culture, they'd there to learn. Mid ranked engineers can improve culture by changing parts directly and encouraging others Senior engineers can hire and fire to get the company to work their way.

Presumably you're midranked. If you are trying and its not working you either need Senior people on board or you learn to live with what you have. Do the best for your work and try to show the improvements you've done.

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

#218

Earlier quoted context omitted.

100% this. For instance I'm an engineer who cares far more for business/technical alignment than software practices. If I had to choose between company A where I work closely with domain experts but the software practices are awful, vs company B where we understand the problem domain through 4 layers of management and business analysts but the software practices are top notch. I'd choose company A every time. Also po…

(Did you mean you'd choose company B?)

No, "company A" makes more sense from the context.

It's a matter of personal mental space: some SW engineers like to build things that work and solve problems in the "outside world". For which you invariably need deep domain knowledge. Technology is a tool, means to an end. "Company A".

And others like to tinker with technology, big picture be damned: it's all about isolated performance benchmarks, tech stack, purity. "Company B".

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

#220

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.…

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

> engineers frequently assume the best-case scenario for their time estimates, while managers end up planning for the worst-case scenario

I (engineer) have experienced exactly the opposite. On Thursday I say "It will most likely take me a week; I cannot possibly have it done in less than three days; if X is true -- which I can't know yet -- it will be more like two weeks". And that becomes a commitment to have the code on master by next Wednesday.

Perhaps I've just been unfortunate, but most of the time when I have given qualified or worst-case scenarios, I have been pressed to assume the best, and that's what gets written down.

Post reply on HN