A two-year software project, with 4 full-time -remote- engineers, could cost between $800k-$1M. If you heavily use AWS, you could be in the $5-$10k/month operational cost.
There is a myth, feeding by the never-ending tech improvements, that you won’t have maintenance costs (or sunk costs) after you are done with the project.
During development, engineers will cut corners, overengineer, or leave code without comments to meet deadlines (I’ve done all of this), leading to technical debt.
It is hard and expensive to control every line of code and adds a bottleneck to its critical path.
Like Facebook, some companies went extreme here and came up with “move fast and break things,” which eventually led to sunk costs. Except for hiring a good architect and separating the project management for the product management role, there is no much you can do.
With maintenance, the reality is different. There are a few things you can do to reduce maintenance costs.
Be mindful that any software, like any piece of technology, depreciates over time, and eventually, you will have to replace it if you don’t maintain it.
You can follow one strategy to minimize (not to eliminate) maintenance cost: maintain your software.
AWS will upgrade underlying stacks; the developers’ community will find security risks in the libraries you are using; a user will find more effective, less expensive ways to do the same.
Your brand new platform will collapse in the next following 5 years if you plan for zero maintenance. You can spend a little money now and come up with a maintenance plan, instead of spending a large sum on replacing a legacy system.