Why IT projects mostly fail…
Because IT projects are treated as technology projects and are most often outsourced to technology suppliers.
This is the biggest mistake you can make. Here, I would like to point out that requirements are divided into functional and non-functional. Non-functional requirements have never been an issue, but functional requirements are always a problem. So why is project management entrusted to technology providers?
Enterprise architecture – the old SOA model
The diagram below (Street, K. (2006). Building a Service Oriented Architecture with BPM and MDA. 2(1), 8.) illustrates the key layers (levels) of organisational description:
- business processes
- business services (required by the business)
- components (applications providing these services)
- resources (the environment in which these applications)

This model perfectly describes “what exists”. The problem with IT projects is what is not visible here: the content processing mechanism. The second problem is understanding that data is not content. Data is characters processed by a computer. Content is what a person understands when they have access to this data. A book written in a language we do not know is data, but it has no content for us.
Let us examine the individual layers of this model
Business processes

We usually model business processes using BPMN notation (OMG.org). This model describes workflow and document flow. It is an important model because it describes how an organisation works. It is a mechanism for human activity.
NOTE! This model does not describe the mechanism of document content processing.
Business services

Application services are the support that computers provide to those performing these tasks. If working with documents consisted solely of humans creating and processing content, computers would be nothing more than memory. This layer is a specification of needs: semantics and requirements, the key to an IT project, which is not included in this diagram and is absent from most projects.
What this model lacks: a mechanism
If we expect a computer to provide any support in processing content, we must express this in the form of a mechanism for processing specific data. The point is that a computer does not understand stored data, but it is excellent at performing procedures for processing it.
Therefore, a description of this mechanism must be created. Many authors describe it, but all these publications have one thing in common: they contain models. For example, such as the one below (Rosenberg, D., Stephens, M., & Collins-Cope, M. (2005). Agile development with ICONIX process: People, process, and pragmatism. Apress.):

The diagram above shows the process of designing software mechanisms:
- screen content, i.e. a document in a business process (GUI),
- description of the data processing mechanism (Dynamic),
- the architecture of the application code implementing this mechanism (Static),
- code as a result of technology selection,
- Tests verify that the application is functioning correctly.
Alistair Cockburn described it as Validation-V, also known as the V-model:

The resulting project is a design. With this in hand, you can consider which technology to use for implementation. Once the application has been created, the above diagrams serve as documentation describing how the existing application works. Such documentation also allows the application to be recreated in any other technology. That is why these models are called Platform Independent Models (OMG.org, MDA).
Unfortunately, this is the kind of work that AI still cannot do because AI “has data but does not understand”.
Components
This is the architecture of application integration and its deployment in the environment:

Application environment

With an application design and knowledge of the chosen technology, you can finally select the technological environment and perform implementations in a specific coding language. Paradoxically, this is the least risky part of the job, provided that you know what and how to code.
The two lowest layers can be expressed using the C4 model described by Simon Brown.
Summary
The IT industry is the area of engineering with the lowest effectiveness. It is estimated that the number of successful projects does not exceed 20-30%. One of the reasons given for this is that these projects are initiated immediately at the technical level, i.e. without any knowledge of what is to be created and how. This missing knowledge is the mechanism of the system.
(article also published on LinkedIn)
