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
Ask HN: Are my expectations on code quality and professionalism too high?
101–110 of 306 posts
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#102At the startup I worked where the dev process was zero, we were able to flesh out pivots and products at a pace that was able to bring continuous investments to the company. To be honest I didn't enjoy the craft though during that time. There was no depth, but a lot of breadth. It was just about churning out code like a machine.
At the bigger company where I work now, money stopped being a factor. I was able to afford time to ask fundamental questions about my code. My code was reviewed and shipping was governed by a process that scrutinized devs. Slow and sometimes frustating, but still enjoyable given the freedom of time I was now given.
At any day, I'd pick working for a large-ish company than a early stage startup unless it's a startup that makes things I care about.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#103Re: Ask HN: Are my expectations on code quality and professionalism too high?
#104Me 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,…
Big companies typically have fewer constraints on time, money, and developers. They can have very mature development processes because of that.
Small companies typically have tighter constraints. It's not as if this hypothetical manager doesn't want better process, but if the things to spend time on are "better deployment methods" or "ship this feature in time to land a critical contract," there's no choice there.
OP has, potentially, a unique position here. If they can find a way to use their experience to help implement small process changes without grinding development to a halt, they can seriously improve their team and maybe emerge as a leader as well.
This is different from "we need to stop and do all-team code reviews before every PR merge!" The time may not be there, and the management buy-in sure isn't.
But encouraging teammates to add new tests with each new feature, and helping folks who may not know how to do that, can have a huge impact. Taking an hour or so Friday afternoon to gather the team and casually review merged PRs or do a sprint post meeting over drinks can be a good unwinding activity.
OP's got an opportunity here.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#105We eventually (to our protest) got a few new developers. They didn't fit in our silo system. Our lack of tests/PRs didn't scale. We tried to reform and encourage people to use pull requests but everyone requested review from one developer who hardly looked at the code (scroll-scroll-scroll-lgtm reviewing.) Code added from people outside of a silo didn't fit in at all with the rest of the code base. Testing was never made a priority. Eventually I left and took with me almost all of the institutional knowledge about some of our services.
We made horrible practices work until they didn't. No one would have been able to join that team and fix it. The company I left for had mandatory testing, multiple people code review and lots of discussion. It was like stepping in to an entirely new world of software engineering. In my view you need to install a good culture from the beginning or... good luck.
Its all about what you value as an engineer. You and I have similar values in this regard and good practices are worth a lot to me. I don't think your ask is unreasonable at all. I think you are just working with people with different values.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#106Re: Ask HN: Are my expectations on code quality and professionalism too high?
#107A large company is a marathon run. Discipline, strategy, training matter.
A small company is running from a bear with your hair on fire.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#108Re: Ask HN: Are my expectations on code quality and professionalism too high?
#109It depends on the cost to the end user and the cost of failure. At one end of the spectrum you have free-to-play games. You'd have to be insane to implement a high test coverage on that. Nobody cares if Battletoads Royale crashes. On the other end of the spectrum you have safety critical software, financial software, etc, where the costs of failure are very high. Ask yourself "what's the worst that can happen if this…
Unless the errors are substantial, or the time savings for staff are significant, it's unlikely that organizations will invest significantly in non-business / non-consumer facing technology. Unless software is their business, then having mature CI/CD systems helps the company attract strong candidates, like OP.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#110Me 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 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…
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 deliver quicker, and it's incumbent on management to facilitate remedying that tech debt at the earliest available convenience. If management does not facilitate removing tech debt by allowing for such refactoring/structural work it is then incumbent on engineering to stop offering the shortcuts that temporarily increase velocity, because there's already too much tech debt to be had, and to take on more will reduce velocity unacceptably.
A good startup has experienced engineers and experienced managers who understand this dynamic.