I love the term software delivery to describe the act of bringing usable software to a customer.
The conventional definition, according to software engineering guru Martin Fowler, is as follows:
“Software Delivery (describes) the steps from a developer finishing work on a new feature, to that feature being used in production”
Thanks to automation and tooling, and also because of Lean and Agile approaches to product and project management, we have an opportunity to view the ‘software product delivery’ process to be almost continuous.
Therefore, my definition of software delivery is slightly wider:
Software Delivery is the process of getting the desired features and bug fixes in front of the customer.
This statement includes two important differences from the earlier definition. Firstly it defines delivery as being complete only when the feature is in front of the customer, and not just “in production”. Secondly, the word “desire” means that there is an entry point to the process. The customer or a product manager or someone else needs this change.
As the engineering and product sides of our businesses get closer, this clearly defines the significant work done not just by engineers, but also product managers and designers who all seek to better understand what the customer wants in the future.