Many years ago, when I was a first-year university student learning to program, I studied mostly on my own because the university course at that time didn’t offer anything new to me. I tried writing in Assembler, creating a graphical interface in Pascal, and even learned Prolog. I didn’t have access to the Internet at that time, and there weren’t many books on programming. This led me to believe that there was some secret knowledge on how to write programs correctly, and I just hadn’t found the right book.

Eventually, I came across a suitable book: “Object-Oriented Analysis and Design” by Grady Booch. It seemed to hold the answer, describing a development method that, while not a guarantee, provided a path to developing good programs. However, it turned out that this was not enough. Only many years later did I understand the issue: OOP is not a universal approach and is not always appropriate.

My search continued without success until I developed my own method for successful project implementation. As often happens, it turned out I wasn’t the first to invent this; Robert Martin’s Clean Architecture is a very similar approach.

As a result, the “secret knowledge” that currently enables success in 99% of software projects is: Clean Architecture, DDD, and Microservices. That is, of course, ignoring the human factor.