It's a very hard to swallow pill for engineers, but many (if not most) startup or IT company success or failure is very independant of technological matters.
Once you get to "average" quality, then business and product decisions become far more important than anything else.
And it only needs to be average, or approaching average, in your niche. There's a lot of truly awful enterprise software out there, and it gets sold on promises of features and support, not quality.
I wish software engineering had the barriers and requirements of other engineering fields. I deal with industrial control systems, and we have the national electric code, UL, CE, NFPA 79, etc. With all that you can still make a machine that doesn't work well, but at least it's going to conform to certain conventions to make installation and maintenance easier, it will have a robust safety system, and it will be well-documented. Most fields of software engineering have no such minimum standards.
> I wish software engineering had the barriers and requirements of other engineering fields.
It does where I live you're required to be licensed if what you're doing passes these 3 criteria:
1. any act of planning, designing, composing, evaluating, advising, reporting, directing or supervising (or the managing of any such act)
2. that requires the application of engineering principles
3. concerns the safeguarding of life, health, property, economic interests, the public welfare or the environment, or the managing of any such act.
This includes software development. It is illegal to use, "engineer," in your professional title unless your accredited.
I think this is a good thing. Better software that works towards the public interest requires liability and professional accreditation. You can't take the, "move fast, break stuff" approach when your software is being used to monitor and control water filtration plants or food safety processes in a manufacturing facility. That works for the Facebook's of the world but they are by no means the be all and end all of professional software development.