ABSTRACT

People in the roles often lack the training and experience to do good system design, to propose alternative designs and weigh their trade-offs, to examine implementation details, and modify the design as the system is being developed. One of the most common ways to separate design from implementation is outsourcing software development. There are good reasons for having software developed outside of a company, but cost reduction isn’t one of them. Counteracting the tendency to extend release cycles is the rapid pace of change in business environments that depend on software, because the longer release cycles become a constraint on business flexibility. From a business standpoint, monthly releases tend to work best with software as a service. Measurements of the “success” of software development are based on delivered value and improved business performance, because there is nothing else left to measure.