I would argue that "engineering" and "scale" are different concerns.
Engineering is about building and maintaining things fit for their purpose.
A bridge that only needs to last for one year is designed very differently than a bridge intended to be used for twenty years.
In the case of software, that means (a) building what your users and business need; (b) designing software that is easy to change; and (c) delivering enough scale to meet your expected needs for the current business cycle.
For a new startup, you can probably get by with a Rails app on a single Digital Ocean droplet, with plans to scale horizontally. For an established business, you might have a large data warehousing operation running custom C++ code across multiple datacenters, of which the web frontend is a tiny (but important) part.
Good software engineering makes the steps between "New Startup" and "Established Business" as painless as possible, with a minimum of additional overhead.
> A bridge that only needs to last for one year is designed very differently than a bridge intended to be used for twenty years.
Yes, but in software, the usual case ends up that the 1 year bridge actually has to become an interstellar spaceship and has to last basically forever.
This happens in other disciplines as well but I have not seen it as extreme as many software projects I saw.
Engineering is about building and maintaining things fit for their purpose.
A bridge that only needs to last for one year is designed very differently than a bridge intended to be used for twenty years.
In the case of software, that means (a) building what your users and business need; (b) designing software that is easy to change; and (c) delivering enough scale to meet your expected needs for the current business cycle.
For a new startup, you can probably get by with a Rails app on a single Digital Ocean droplet, with plans to scale horizontally. For an established business, you might have a large data warehousing operation running custom C++ code across multiple datacenters, of which the web frontend is a tiny (but important) part.
Good software engineering makes the steps between "New Startup" and "Established Business" as painless as possible, with a minimum of additional overhead.