Software is infinitely flexible. It can be changed right up to the time the product is introduced. Sometimes it can be changed even later than that with things like software or firmware upgrades, websites, and software as a service (SaaS).

Software does have its disadvantages, too. Accurately scheduling long-term deliveries is difficult, and more than 50% of all software developed is either not used or does not meet its business intent. If executives managing software do not take these differences into account in their planning processes, they are likely to make the classic mistake of creating detailed, inaccurate plans for developing unused features. At the same time they are eliminating flexibility, which is the biggest advantage of software, by locking in commitments to these long-range plans.

From the excellent Leading the Transformation: Applying Agile and DevOps Principles at Scale.