Traditionally, software and other products are being delivered utilizing a project delivery approach. Under this approach, the product is being built for a particular customer. Even if it is a standardized product, it is than being rebuild to a degree or entirely (depending on the contract terms) for other customers. This approach allows for full customization of the product. However, it results lower product standardization, increase in waist and duplication of effort. Multiple teams work on resolving similar or the same issues. The product vary from project to project as some rules are a subject for interpretation.
Product delivery approach builds a standardized product that is being customized for each customer. This approach allows for higher efficiency and resources utilization, higher level of standardization, reductions in waist and duplication of efforts. This approach allows for a fully standardized product. Issues are found and fixed once. This approach allows to maximize team effort, improve efficiency and reduce waist. On the down side, some customization may not be possible.
What model do you use in your work? In your experience what are pros and cons of each.