Live data from Hacker News

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

news.ycombinator.com

151–160 of 306 posts

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

#151

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

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…

I suggest it's frequently less about knowing which corners to cut, and more about knowing hard from easy, to avoid future impedance mismatches between eng & sales/marketing (or even internal business leadership).

One of the very most frustrating things for an exec is downtime. The next worst is inaccurate time estimates for IT work. If you don't have at least some experienced architects/developers, it's normal to find yourself in the position where nobody knows what they don't know, and that's a bad look for everyone involved. It's also why a lot of bigco's have been outsourcing internal appdev to MSPs over the last 10+ years. It de-risks projects, eliminates skilled labor shortages, and ensures reasonable QoS... in theory. It doesn't always work out that way, but that's the objective.

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

#152

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

It's because we hire "software engineers" but we actually want them to be "business hackers", but lie to customers and regulators about the quality and integrity of the product. Then we mock them for trying to do the job they were hired for. The fact that pogrammers bias toward rule following (the computer doesn't react well to people bluffing) is part of the conflict.

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

#153
> In $current_company, I was surprised that none of the basics were there. All agree to do these things, but with the slightest bit of pressure those principles are gone

This is the normal. I think I have never be in a project with the "proper" stuff from the start.

I have applied what I can, not even asking (because the answer will be "no?"), so the fact that:

> All agree to do these things..

You are set! that is the key!. Now, how do this successfully?

Pick only 1 thing to solve (like I say, almost daily, to Stakeholder of the projects "One problem(or miracle!) at time").

The first is "use source control" OR "use a task manager/bug tracker".

For a project with more non-developers, the second will be MORE useful.

The key is use the most simple thing you can get. I use pivotal, ignore it for all the SCRUM stuff, and only use it to list the task to be done, task doing and done, and train everyone with this ONLY rule "Put what is more important from top to bottom".

That is literary, the only process that I use with others. With non-developers, I not even try to expect them to label correctly bugs vs features, and most of time I rewrite the task myself (for clarity).

But man, people, specially non devs, love to see the progress of the project! This relieve so much presure is insane.

So the key:

* Pick only 1 thing to improve at time

* Use the more simple tool/process possible

For example, use git, only 2 branches (master, dev)

* Accept some imperfect inputs from people that are not skilled in the trade

"My users will never reporte correctly a bug, so I rewrite the reports after talk to them"

And for others "the devs never put a good message in commit", then

* Pick only 1 thing to improve at time

if are in the phase of "at least using git!" not sweat it. Maybe gently remming them

And probably:

* Have a mega list of good things to do in the task manager, and cross milestones with the team. Celebrate when done!

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

#154

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

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

Twitter had the fail whale for years. Same with reddit. Facebook moved fast and broke things. What engineers often don't understand is that engineering is not important to the business, only the preceptor of it is. Even these huge companies are only backfilling engineering on their core critical components, while new experimental projects are sloppy messes. The only reason half the stuff is solid is that it gets to free ride on comping built for the critical core.

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

#155

The Joel Test : https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-s... * The Joel Test Do you use source control? Can you make a build in one step? Do you make daily builds? Do you have a bug database? Do you fix bugs before writing new code? Do you have an up-to-date schedule? Do you have a spec? Do programmers have quiet working conditions? Do you use the best tools money can buy? Do you have testers? Do n…

I think this is super helpful, I definitely don't think all scores on the Joel test are equal. I would steer very clear of a company that had an 11 on the Joel test because they didn't use source control, but would happily work at a company with a score of 8 because they allowed some bugs, didn't have dedicated testers, no hallway usability testing, and had to take a few steps to build.

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

#157
One word: _Prioritization_.

Your standards and expectations are reasonable, but sometimes push comes to shove. You're describing a lot of intentionality of the seniors and management. Ask. Communicate. Share your concerns. Accepting the vast distance between the ideal and the reality is part of engineering. Bridging the gap is the other part.

I sympathize with your frustration, but no ideal place exists. My old team tried their hardest to get to the state you're describing for two years and got there. It was beautiful.

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

#158

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

Rapid prototyping does not mean abandoning established programming practices that help people feel confident about their work.

In my org, I have created a process to clearly define what makes a prototype different from a MVP. It appears to be somewhat successful for what my goals were, which was to prevent prototypes from turning into long-term production code.

Prototypes have no restrictions that we would normally place on code (coverage %, automated pipelines, etc) and can only be created in a sandbox AWS account that has no access to our internal systems. It allows developers to prove out concepts or work with product to quickly iterate on PoC.

On the other side, PoC's have a limited lifespan and if successful, are expected to be re-implemented as an MVP, following our internal standards and guidelines.

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

#159
As with anything in Software, there's a tradeoff. "Code Quality" and processes have tradeoffs around risk, i.e. is this going to break something in prod?

If it's a real small startup (If it's bigger than that, then you've got a problem and you should start looking elsewhere or attempt to change the company from within (hard to do unless you're in leadership).

Otherwise, here's my personal rules for "running scrappy":

- Pushing to master & prod w/o review is fine if it's truly an emergency or something super tiny, i.e. a whitespace change. Otherwise, it's good to get in the habit of putting up a PR, even for posterity.

- Connecting to prod dbs - never do this unless it's something you have to fix right now. Otherwise, just grab a copy, a backup, or connect to an idle follower instance if you need prod data (v ez to setup).

- Bad code is fine. You have to pick & choose your battles. Ideally care about stuff that's around building a mental model of your application rather than quibbling around refactoring some small function

- Similar note about testing... you can get away without it in a bunch of cases, especially if the app is easy to QA locally

- Deployments.... just use Heroku :-)

- It's good to spend at least a little time architecting/designing, but seriously time-box it and run with what you've got

- Staging environment.... you won't have a good one for a long time :-)

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

#160
post #73

Earlier quoted context omitted.

The point I think you're making is that "it depends" and I agree with it. I've seen companies that have no funding issues building products that they know they will need to maintain in coming years and still follow a few or none of the best practices. But I've also seen people building SW that no one can guarantee that will ever be used (and gets scrapped after a few months) spending days and weeks setting up the per…

All things with balance, and I agree analysis paralysis and overengineering are real problems to avoid... but I'm sorry you can't deploy without CI/CD unless it's like a desktop or mobile app or something. You don't skip that for servers. Does it have to be perfect? Hell no, but it needs to be in place before you can seriously call it shipping

Plenty of Unicorn IPOs disprove this thesis.
Post reply on HN