Software relies on the same principles as all other engineering disciplines. There is a process that is repeatable and verifiable with a final output product that can be tested against known criteria.