Effective Software Development


SMS is the “Quantity Surveyor of Information Systems.”

WIKIPEDIA:
A quantity surveyor (QS)
is a professional working within the construction industry concerned with building costs.

   

Quantity surveyors control construction costs by accurate measurement of the work required, the application of expert knowledge of costs and prices of work, labour, materials and plant required, an understanding of the implications of design decisions at an early stage to ensure that good value is obtained for the money to be expended.

SMS is a professional consultancy specializing in skills relating to software development, including accurate measures and estimates of software project size, cost and duration.

Our services relate to the cost of building and maintaining software programs and to contracting for software supply. We evaluate portfolios for size, efficiency and effectiveness, and uncover hidden waste in the production process. We survey information systems performance, make recommendations, and draw up plans for improvement. We mentor technology-intensive organizations through Lean business transformation programmes, providing a pool of expert trainers and topic coaches to address gaps in the knowledge our clients need to achieve their business goals.

Quantifying performance

The pace of technological advance means that product development and service delivery increasingly form one integrated value stream. To fully exploit advances in information technology, industry and public sector organizations need to establish effective structures for managing such a seamless production cycle.

Planning for successful delivery requires an objective understanding of process performance and the threats to that performance which SMS is uniquely placed to provide.

Delivering “the right thing” and delivering “the thing right”

Software projects deliver software. Measuring the wrong things – eg activities and inputs – will incentivise local optimisation and is likely to have a negative impact on the delivery of value. Quantifying the performance of the whole value stream in terms of the outputs – for example, units of software delivered – facilitates effective management control of the cost and efficiency of the software development process. This is particularly important where the software development team are employed by an outsourced service provider.

The customer or business user must define desired outcomes (delivering ‘the right thing’). The software developer’s main concern is the delivery process (delivering the ‘thing right’). Mapping the outputs of the software process to the delivery of the desired business outcomes requires informed collaboration between the managers of the business and the software professionals. The commercial terms on which software professionals are engaged, and the management structure under which the product development takes place, should not obstruct an informed dialogue between the respective teams.

SMS acts as “expert witness” offering:-

  • independent assessment of the development environment,
  • contract readiness assessment,
  • benchmarks and baselines,
  • measurement audit, training and mentoring.

The Professional Software Developer.

The professional software developer seeks out and takes into account the business drivers for a project and plans to meet the business need. High standards of performance should be maintained in:

  • Predictability (time & cost)
  • Project delivery rate (work hours per unit of software delivered)
  • Productivity (cost per unit of software delivered)
  • Velocity (unit of software delivered /elapsed month)
  • Rework cf. ‘1st pass yield’
  • Staff skills and experience

It is expected – and outsourcing contracts frequently specify – that underlying productivity should be continuously improving. Such improvement should be measured objectively, taking into account the development environment and changes in scope.

SMS provides unsurpassed expertise in all aspects of software size measurement, software performance evaluation and software process improvement, regardless of the development lifecycle used.