Tofig Kazimov, PhD in Physics-Mathematics, an Associate Professor, and Head of Department at the Institute of Information Technology under the Ministry of Science and Education, was interviewed by the "Khalg gazeti."
–Mr. Tofig, when and from what necessity did software engineering emerge as one of the main directions of information technologies?
– The emergence of software engineering is a process that arose out of objective necessity. In the 1960s, computers began to be used not only in scientific research centers and the military but also in industrial enterprises, government agencies, and businesses. During this period, as the scale of software grew, simply writing code was no longer sufficient. The issue is that until then, programming was mostly perceived as a matter of "professionalism and skill." In other words, programmers relied on their individual abilities and wrote code in any manner they preferred. Consequently, it became very difficult to collaborate within large teams, manage long-term projects, and prevent errors. This, in turn, created serious risks from economic, security, and social perspectives.
The rapid development of computer technology in the 1960s created a crisis in programming. Thus, software projects often lagged behind the planned schedule, exceeded budgeted costs, and were completed with numerous errors. In order to determine solutions to these problems, a NATO conference dedicated to the "software crisis" was held in 1968, and the term "software engineering" was used for the first time at this conference. The goal of using this term was to introduce an engineering approach to software development. Just as a bridge-building engineer adheres to certain standards, mathematical calculations, and quality requirements, the same principle had to be applied to software. In short, this approach demonstrated that software is not just code. It requires planning, must be managed, must be durable, and most importantly—must work reliably.
– What main development stages has software engineering gone through in world practice?
– The development stages of this field cover several periods. Programming emerged as a specific direction with the advent of the first electronic computing machines. In those years, programs were developed individually for a specific device. Programming was usually carried out by mathematicians or engineers, and a systematic approach was not available.
The emergence of languages like FORTRAN and COBOL in the 1960s somewhat facilitated the process. The emergence of methodologies for software planning, analysis, design, and testing in the 1980s provided an impetus to the development of software engineering. The 90s saw a pivotal transition to Object-Oriented Programming (OOP). Object-oriented programming was introduced, and web programming began to develop. In the 2000s, the application of agile methodologies gained prominence. Recently, the application of artificial intelligence (AI) technologies has created new opportunities in software engineering.
– What can you say about the formation of software engineering in Azerbaijan?
– Programming in Azerbaijan started developing in the 1960s, and the Soviet era was notable for training highly qualified specialists in the field. In the early 1990s, software engineering was rapidly developing globally. However, the complex challenges inherent to that era caused our country to lag somewhat behind the global pace of technological development.
Nevertheless, the situation changed significantly after our independence was restored. Successful policies, socio-economic reforms, the increase in international prestige, the strengthening of the country’s defense capability, and the rise in public welfare all collectively opened up new opportunities for software engineering as well. The fact that software engineering is noted as a national priority in the "Information Security and Cybersecurity Strategy for 2023–2027," signed by the President of Azerbaijan, Mr. Ilham Aliyev, is a clear example of this commitment. The main goal here is to minimize our country's foreign dependence in the field of technologies and to provide scientific support for the development of the national digital economy and software industry.
Regarding practical steps in software engineering, I can note that research in this field was first initiated in our country at the Institute of Information Technology in 2003, under the leadership of Academician Rasim Alguliyev. In 2013, the Institute of Information Technologies Publishing House released the book 'Software Engineering,' co-authored by myself and Chief Specialist Tamilla Bayramova, followed by 'Fundamentals of Software Engineering,' authored by Tamilla Bayramova, in 2020. As a result of these studies, in 2017, the first republican conference entitled "Actual scientific and practical problems of software engineering" was held, organized by the Institute of Information Technology. The main purpose of holding this conference was to comprehensively analyze the current state of software engineering in Azerbaijan, unite researchers in the field, identify existing problems and shortcomings in science and education, and determine goals and perspectives. As a result of all these consistent activities, the training of specialists in the 'Software Engineering' major commenced in the country starting in 2025.
– What is the economic significance of software engineering?
– In the modern era, one of the main driving forces of the country's economy is digital technologies, particularly the software products industry. It is no coincidence that many analysts call software engineering the "new oil." This is because the volume of revenue generated and the contribution it provides to the economy have now reached a level comparable to that of natural resources.
According to forecasts, the global software products industry is projected to exceed 896 billion dollars in volume by 2029. India alone generates over $200 billion annually from the export of its software products and IT services. The country has successfully transformed into a "software products exporter" by consistently investing in human capital over many years. We observe similar examples of this dynamic in other countries, including China, the USA, and Germany. For instance, approximately 7 million software engineers work in China, nearly 5 million in India, and 4.4 million in the USA.
However, the issue is not solely about the numbers. Software engineering is evolving into a "pillar" of the modern economy. It is also one of the main pillars of the state's cyber sovereignty, as the state's cybersecurity and the protection of its information space directly depend on national software engineering. In other words, this field has now become a matter of national security.
On the other hand, software engineering generates high added value. While revenue from oil and gas production is derived from natural resources, revenue in the software industry is the product of human intellectual activity. And that is an inexhaustible wealth.
In the modern era, the value of technology giants such as Microsoft, Google, Apple, Amazon, and others is measured in trillions of dollars, with their wealth primarily derived from software. The annual revenues of these companies exceed the Gross Domestic Product (GDP) of some countries. This fact proves that software engineering is not merely a technical field but a strategic tool that determines the development perspectives of the global economy.
I would also like to specifically emphasize that software engineering also impacts social progress. That is to say, the discussion here is not solely about economic indicators. Achievements such as convenience in people's daily lives, the creation of jobs, the provision of high-paying jobs for youth, and the emergence of new professions are all direct results of activities in the field of software engineering.
Software engineering is no longer just a profession but the core pillar of states' economic, social, and strategic development in the 21st century. Countries that do not pay attention to this field today may be excluded from global economic development in the future.
– What challenges does software engineering face in the modern era?
– There are a number of problems in this field. Firstly, the increasing complexity of software systems makes management more difficult. Microservices, cloud-based architectures, and distributed systems require greater resources. Secondly, business requirements are changing rapidly. Although agile methodologies partially solve this problem, full adaptation is not always possible. Thirdly, the issue of cybersecurity is on the agenda. New attacks occur every day, and the risk of data leaks increases. Software engineering is no longer just about writing code; it also means thinking about cybersecurity.
Fourthly, there is a shortage of highly qualified specialists. This shortage is felt most acutely in areas such as AI, machine learning, and cybersecurity. Finally, the use of outdated systems and the inconsistency between university education and real industry requirements also create major obstacles. One of the main problems here is also related to the rapid development of technologies. Technology is changing so rapidly that it becomes difficult for universities to update their curricula. Sometimes, by the time graduates enter the labor market, the knowledge they have acquired is already outdated.
There is a significant gap between the knowledge provided in higher education institutions and the expectations of the labor market. During hiring, graduates are required to have experience working on real projects, the ability to work in a team, and proficiency with modern technologies. However, university programs often prioritize theoretical knowledge, which complicates the integration of graduates into the professional environment. At the same time, in an era of rapidly developing technology, it is also essential for educators to constantly update their knowledge.
– How do AI and Software Engineering mutually influence each other?
– AI and software engineering are, in fact, two fields that complement each other. Because AI, on one hand, is the product of software engineering—the result of developed and applied technologies—and on the other hand, it is a powerful tool serving the development of software engineering itself.
In recent times, AI technologies have become the main tool for creating complex software systems. Thanks to machine learning and deep learning technologies, software is transforming into a system that can make decisions based not only on human input but also on its own experience. Today, whether they are voice assistants, automatic translation programs, or face recognition systems, they are all products of AI developed using the principles of software engineering.
However, the matter does not end here. Simultaneously, AI has brought about revolutionary changes within software engineering itself. The automatic generation of code, software testing, early detection of errors, and project management are all carried out faster and more accurately through AI. While large teams previously tried to eliminate certain technical errors for days or months, AI can now accomplish this task within a short period. This provides significant savings for software engineering in terms of both time and finance.
On the other hand, AI is also opening up new horizons for software engineering. Natural Language Processing (NLP) enables computers to understand human language, which leads to software interfaces becoming more intuitive and accessible. Computer vision, on the other hand, gives machines the ability to perceive images and video like a human, which is applied in various fields, from medicine to security systems.
There is another important aspect of mutual influence here: software engineering plays the role of a solid foundation for the development of AI. To create AI systems, the design, architecture, and infrastructure must first be built in accordance with software engineering principles. If this foundation is weak, AI cannot operate successfully either. I would like to emphasize one more fact: the AI-based ChatGPT is used very widely by people. It is a powerful chatbot, or dialogue robot, developed by the company OpenAI. The main function of this program is to understand human language and generate corresponding logical, detailed, and human-like text responses. It can be used in almost all spheres of human activity.
I can confidently say that the synthesis of these two fields will further accelerate the development of digital technologies in the coming years. Without AI, software engineering would not be able to develop so dynamically. At the same time, without software engineering, AI would not be able to find such a wide scope of application. Today, we can clearly see their mutual dependency, and this dependence will only strengthen in the future.
– Mr. Tofig, in your opinion, what steps should be taken to advance the field of software engineering and establish a software industry in our country?
– First of all, as I mentioned, this field is no longer just a technological direction; it is directly linked to countries' economic independence and digital security. Therefore, first of all, a unified and strategic program must be adopted at the state level for the development of this field. In other words, the development of software engineering should be managed systematically, not fragmented. Secondly, we must definitely develop national standards in line with international standards. This will impact the formation of national software engineering, the quality of education, and the competitiveness of trained specialists in the world market.
Also, the issue of textbooks is very important. Textbooks used in the world's leading universities should be regularly translated into the Azerbaijani language, while our local authors should also be encouraged to write books in this field. In addition to these, close cooperation must be established between universities and industrial enterprises. Students should not be limited to theory alone but must participate in real projects to gain practical experience.
Another important issue is that the knowledge of the instructors teaching this subject must be constantly updated. The digital world is changing very rapidly. Therefore, either teachers must regularly participate in training, or specialists with experience in this field must be involved in the teaching process.
Finally, national and international conferences dedicated to software engineering should be held every 2–3 years, inviting leading foreign scholars in the field. This will allow scientists, specialists, and students to come together to discuss problems and prospects, while also giving impetus to the formation and development of software engineering in our country.