Focus of this article: software quality & the value of a project clinic

What services does a project clinic provide, how do I set up such a service center, and what can I expect?

In this article, I want to focus on a few practical, craftsmanship-related aspects.

First thesis: software development is, to a significant extent, craftsmanship

Just as a bricklayer does not design a skyscraper, a programmer does not design an IT system. This task is carried out by the IT architect or the development lead who—unlike a construction architect (who rarely started as a bricklayer)—often began their career as a developer.

Many programmers are career changers and have neither a university degree nor a vocational college degree. Why this is not necessarily required for their work is explained below.

I see the craftsmanship aspect of software creation in coding, i.e., implementing a specification by a developer. The developer works in a production environment—the software development environment or framework—and uses a specific programming language.

If you provide a motivated person with interest, minimum education and basic software development knowledge with
a) a good template and
b) a few introductory workshops to review existing code, that person can be deployed as a developer immediately.

Second thesis: software quality depends on the quality of the individual developer

Anyone who has led development teams knows the significant differences in the quality and quantity of deliverables that different people can produce per unit of time.

When examining existing software in a project clinic to assess quality and optimization potential, very different results can be found—even across different components of a single system.

Third thesis: method takes precedence over expert know-how

Who dares to assess the quality of software? Is it an absolute prerequisite to master the development environment and the language perfectly? Do project-clinic staff need to master all frameworks and languages?

In my note on using AI, I indicated that anyone can use a very inexpensive “employee” (around $20/month) to optimize coding. The fact is, however, that today’s AI must be trained to deliver good results. This can happen in a ping-pong process in which I repeatedly provide the AI with new specifications and hints, as well as the system to be analyzed. I check the results and, through further input, enable the AI to deliver better analyses.

This IT expertise can be provided by an external framework expert, the development lead, the software architect, and—if necessary—a specialist for the respective programming language (under the guidance of the project clinic’s IT expert witness).

It is astonishing how quickly today’s AI captures the essential aspects—i.e., “learns” within a chat— and what important findings can be derived.

How did we implement something like this in the past? (early days of my project clinic)

To estimate the effort of migrating a huge COBOL application to a modern platform, we had to determine the effort required for porting to the new platform and programming language.

Our external professional, Heiko L., wrote a recursive program back then that traversed the entire directory structure and determined various effort-relevant metrics across all code segments (e.g., number of modules, lines of code, “ugly” jump statements, etc.).

Effort: about 2 days—at an expert daily rate! After evaluating the analysis, we were able to calculate the effort and create a competitive offer. Today, we would use AI for this.

Fourth thesis: implementing project-clinic results into the software increases the value of this asset—and therefore the value of the company

If you want to buy a software company, which values determine the price?

The focus is on financial metrics, the customer base, the employee base, maintenance contracts, and development risks.

Regarding maintenance contracts and development risks, the question is: can the company economically fulfill current maintenance contracts and SLAs based on its software platform, and can it respond quickly to further requirements with new products or functions?

The basis for this (in addition to an effective organization) is the established development environment, the architecture libraries, the function libraries up to the user interface—i.e., the results of prior development work. However, each of these results must be assessed for its actual value; weaknesses and risks must be identified and reduced.

Next to human capital, the platform is the most important asset of a software house or an IT department. Professional asset management with a focus on the IT platform will systematically increase company value and company attractiveness. Responsibility for this must be assigned to a competent manager.

Here as well, AI will provide valuable technical guidance!

Fifth thesis: the most important asset is the human (August 2024)

Above, it was indicated how we can create new software today using AI and analyze and improve existing software. It was also shown that a software house must engage intensively with its main asset: the IT platform.

Here, the contribution of the company’s employees is examined more closely.

For more complex domain functions, involvement of the module owner (or Technical Lead) or the customer owner is still required.

Even more important is testing and support from, for example, “Project Assurance Management”: functions, output data, and visualizations must be reviewed by people with a very strong domain understanding of the requirements for the intended solution.

Conclusion: value of a project clinic

Software can be analyzed in a project clinic; improvements can be proposed, and approved code segments can be automatically integrated into existing code or implemented. The project clinic’s IT expert witness must align the approach with a responsible person from the software house. Key players such as the development lead and other managers must be constructively involved in the domain analysis process.

When revising more complex domain functions, the respective module owner or developer is involved. Improvements to existing software increase company value.