The qualified selection of software development service providers is of high strategic importance. Using a modified PDCA cycle (Plan-Do-Check-Act according to Deming), we address what purchasing can and should do as individual phases of the continuous supplier analysis (Specify-Qualify-Monitor-Revise).
As outlined in the first blog (Why Does the Procurement of Individual Software Need New Criteria for Supplier Qualification?) for the procurement of software produced according to specifications, the supplier qualification of software service providers is complex. For the procurement department, supplier selection is about having the relative certainty that the supplier can best develop and support the required software development for the company's own digitalization roadmap. In the case of software, this means that the code base can be adapted to new requirements for many years and at the launch rhythm of the company's own product upgrades with normal effort.
It is clear that ultimately many specialist departments are involved in a supplier relationship with a software service provider. However, we have focused our attention in this blog series on procurement in order to show how important specialized knowledge of software technology is in procurement as well. This is the only way to minimize risks for the company throughout the entire software lifecycle.
Identifying which software properties and parameters are the determining and descriptive variables for the quality and scalability of the software and software engineering is not trivial.
At Cape of Good Code we use a modified PDCA cycle (Plan-Do-Check-Act methodology according to Deming), which has proven itself in quality assurance in many industries for decades. In our case, these are the phases adapted for software development: Specify-Qualify-Monitor-Revise.
Cape of Good Code has developed a catalog of questions for each phase of this cycle, which recurs in each iteration, and which must be answered by each (potential) development partner. The comparative evaluation then determines which supplier would be the right one from a technological point of view (!). Of course, in each of these phases, there are is multitude of further questions and criteria from the specialist departments (e.g. creditworthiness, price, delivery time), which in themselves can also mean a no-go in each case.
Our analysis cycle should be used with every new software delivery (iteration), whereby the questions for the Qualify phase can be limited in the further Lifecycle to the examination of the qualification of the project team. In a years-long collaboration on a product such as software, which is under pressure to innovate, it is elementary to also repeatedly measure the relevant capabilities of the supplier during this time.
The focus of the Cape of Good Code supplier analysis is technology and software engineering. For the individual phases of the continuous supplier analysis, some topics are listed below as examples:
Specify: Definition of the requirements for the software by the client
Qualify: Tool and interview-based qualification/selection of suppliers
Monitor: Tool-based check of deliveries after each update
Revise: Structured elimination of problems
The following is a summary of some recommended KPIs that have proven relevant in our experience:
KPI | Definition | Impact Fields |
Maintenance effort (percentage, over time) |
Non-value-adding portion of development capacity (and its trend) for bug fixing, "firefighting" or for reducing technical debt | costs, customer satisfaction |
Feature effort (percentage, over time) |
Value-added share of total development effort (and its trend) for feature and innovation development. | productivity, customer satisfaction |
Feature Effort Effectiveness | Excessive effort required to add new features to the code base. Values above the average indicate architecture and code problems and thus technical debt. | cost, efficiency, time to market |
Knowledge gaps (incl. development locations) | Portions of the code and their distribution among developers for which there is little shared knowledge (either through collaboration or documentation). | efficiency, dependencies on developers |
Technical Debt Remediation Effort | Effort forecasting for prioritized elimination of technical debt in the architecture and in the code | costs, productivity |