1

Is it a red flag if a team doesn't have tests?

Profile picture
Mid-Level Software Engineer [E4] at Meta2 years ago

I was working with a team during bootcamp, and they mentioned that they intentionally have very low test coverage (both unit and integration). This team is more on the back-end side. Is this a bad sign or is there something specific about Meta's culture that I'm missing here?

84
2

Discussion

(2 comments)
  • 1
    Profile picture
    Meta, Pinterest, Kosei
    2 years ago

    Nope, I can think of many good reasons why a team may not have tests:

    • the team is very new
    • the product definition is still evolving/changing
    • they're building in a new environment (e.g. the Portal product was a whole new OS), so the existing test infra didn't apply directly
    • there's some urgent business need that justifies the lack of coverage

    In particular, you may be surprised how little test coverage there is for most of the mobile teams at Meta. You referenced a backend team in your question, where there is usually more emphasis on testing, but I wouldn't view this as a ref flag without more context.

  • 1
    Profile picture
    Meta, Robinhood, Baidu
    2 years ago

    No. Meta culture puts more emphasis on impact (especially impact on business and impact on products). Meta culture discourages meaningless engineering excellence that makes zero impact on business or products. That means you always need to ask the fundamental question "what does this mean to the business?"

    Having low test coverage is a trade-off. It may be purely negative for engineering excellence but it's clearly a trade-off for business. Writing tests takes time. Is it the most impactful thing to do? Is there anything more impact than writing tests given the same allocation of time?

    Ask the manager and tech lead(s) explicitly about this. I expect them to provide concise and logical answers to you, e.g. "This is the problem the company counting on our team to solve. This is the priority we set for the problem space. These are the goals we define to track our progress in solving the problem. Given all of these, it's only rational to focus on shipping instead of testing."

    If they can't provide a good answer that's truly a red flag! Focus on the process of reasoning and decision-making. Use that to judge a team's quality.