Engineering Approach to Training Software Engineering Specialists

The article is devoted to the use of methodologies and tools used in software engineering to organize the processes of education and training of students in IT specialties. It is proposed to use the process maturity model (CMM) for education, version control systems, error tracking systems, formal ontologies, design methodology and collective forms of studying disciplines.


The IT industry is one of the fastest growing. Highly updated not only software and hardware, but also technology and methodology in solving industrial problems of software engineering. Accordingly, approaches to training personnel for the industry should also change. Education programs for IT specialists must take into account the dynamics of development and be updated in line with the renewal of the industry. At the same time, they should be arranged so that the student, having received the necessary foundation, could master all the new “trends” and techniques of the industry.

It is quite obvious that it is necessary to dynamically change the program with the involvement of employers from industry and scientific institutions. Employers give technology - what has been tested and used at the moment, scientific institutes - perspective - what is needed in the future, on the basis of which it will be possible to create brainware (intellectual product) [1] . To properly organize the process of constantly changing the educational program, it is enough to draw an analogy with customizable business processes for which many solutions already exist on the market of IT products and services. Unfortunately, our IT education does not itself take advantage of IT . Shoemaker without shoes!

To build the process of updating programs, it is necessary to enable companies to conduct direct and feedback with universities. At Novosibirsk State University (NSU), as well as at some other universities, there is a good practice when employees of IT firms work as teachers. In fact, they directly affect the learning process, bring the latest innovations to the courses they teach. These are the so-called practicing teachers. And, although students always listen to them with interest, a number of related pedagogical and methodological difficulties are revealed.

Firstly, an IT specialist is not always a good methodologist. He knows his subject area well and can incendiary talk about it. Students like it. However, it does not follow from this that students learn relevant material effectively. Secondly, an IT specialist works in technologies that are currently applicable, and he knows their advantages and disadvantages well. However, is he capable of abstracting and “rising” above current circumstances to give students a perspective? Probably not always, because for this you need to be aware of not only proven technologies. It is necessary to keep abreast of scientific ideas and approaches that have not always found wide application. So, for example, the concept of semantic programming [2], which was actively developed in the 1980s at the Institute of Mathematics of the Siberian Branch of the Academy of Sciences, is only now finding its practical application in the form of Ontobox programming technology [3] with the Libretto query language .

Another advantage of the described form of cooperation between the university and IT companies is the feedback: companies are able to determine at the stage of training which student they will take to themselves in the future.

Taking into account the circumstances noted above, I would like to transfer the relations of the university and industry to the next level of maturity. Development Process Maturity Methodology (Capability Maturity Model, [4]) has long been used in software engineering. It consists in highlighting the maturity levels of software development business processes and describing some key practices that help move from level to level. The existing level of maturity of educational processes is more likely to be called “repeatable” (second level in CMM terminology). The next level is “certain”, when business processes are clearly defined, it is clear where the control action comes from, where what result is expected, and who is responsible for each subprocess. Now the educational process is divided by functional feature: here the student was taught algebra, here - object-oriented programming, and here - computer graphics. Unfortunately, there is no integrating mechanism in this sequence. With a fairly good internal organization, dependencies between disciplines are determined, which can give the student an understanding of the relationship between different courses. However, in the end it is not clear who is responsible for the formation of such characteristics of a specialist as mathematical culture, the habit of reflection, the ability to work with sources, and the ability to make informed engineering decisions.

As such an integrating tool, the educational standards of the 3rd generation [5] propose to use the concept of “competency” instead of traditional “knowledge, abilities and skills” and to track the development of these competencies in a student through a series of courses. Following the methodology of the process approach, it is necessary to take the next step, namely, to introduce the persons responsible for the entire business process and for individual subprocesses (for the formation of each competency).

Now let's move on to applying the IT methodology in education. Many of the tools used in software engineering can be used in the educational process, because this is also a collective process, only slightly different. What are the similarities?

1. Lecture Tracking

Who else remembers how, as a student, he sat on a university bench and transcribed lectures from a blackboard to a notebook, he knows how unreliable this method of transmitting exact wordings, texts and other formal information is. The lecturer sometimes makes unintentional mistakes, forgets to write something, does not have time to dwell on something in detail.

Here we see the familiar process of "catching errors", but not in the code, although writing in a notebook with some stretch can be considered a code. At the same time, I would like to note that the process of submitting material with typos is very pedagogical (not random, but with the special skill of a lecturer) - it makes students think: “But something is wrong here, we need to fix it.” The student finds himself in a natural (for himself) problematic situation, the way out of which is to find the right understanding. The student comes to the right concept through mistakes and internal mental work. In fact, this method of “problem situations” (about it further) gives good results not only in the process of understanding the lecture material.

Thus, it is proposed to use some kind of system (JIRA, Trac, Bugzilla, Trello) for fixing errors, typos, misunderstandings (and further on message categories, for example, “request for functionality”) in lectures. Here the testers are students, preferably organized in small groups, and the developer (programmer) is the lecturer. A bug tracking system solves an important communication problem. Such a connection should be between students and the lecturer throughout the semester.

Along with solving current problems of mastering the material, students master a tool that will be useful to them in their professional activities. Moreover, the ability to use this tool is trained in solving practical problems arising methodologically correct. Indeed, the need to use a bug tracking system appears naturally as a convenient tool for solving students' current problems. High motivation to study and use error tracking systems is provided.

2. Teamwork in the analysis of lectures

Work on all any kind of complex IT-projects organized in teams. Therefore, it is important to give students the practice of teamwork. It’s good if at some taught courses the work is based on the principles of separation of roles, rotation of role performers, mutual (horizontal) responsibility. However, as a rule, our educational system educates individualists. The situation may be aggravated by the introduction of individual educational trajectories.

Often when entering a job, a newly minted specialist has problems in organizing his work within the team. One of the important factors is the level of understanding of the separation of roles in the team. The second is the sufficiency and correctness of communicationsto develop a common understanding of the tasks. The third is the skill and discipline of processing tasks , planning their implementation and reporting .

Within the educational process, it is possible to organize work in a team regarding educational tasks and the issues that arise. For example, as noted above, when analyzing lectures, when searching for errors in them, work can be built in a small group. During the analysis of lectures, comparison of abstracts, discussion of subtle points ("Do we understand the same?") A common understanding is developed, including through the individual mental work of each. In addition, gaps are revealed, discrepancies between abstracts - someone writes from the words of the lecturer, and someone - according to their own understanding.

When organizing work in small groups, students have difficulties organizing the work of this small group. Everything is like with senior comrades: (1) we need to agree on the time and place of joint work; (2) prepare for this work; (3) eliminate interfering factors during work (distractions, interruptions, etc.). Thus, students in a problem situation need managerial skills that can only be taught when a person has already encountered similar questions. This approach also creates motivation for effective work, in contrast to working alone, which in the absence of proper self-discipline gives a very low effect. The student can no longer say to himself: “Ah, today I don’t feel like taking apart lectures, I’ll do it tomorrow”, because he agreed with his comrades for a certain time that they would work together. Mutual obligations and control “from the side” make the student’s extracurricular work process more resistant to the factors of the student environment. At the same time, students go through the practice of working in a team.

To practice the distribution of tasks and roles, students can be asked to determine who in the small group is responsible for formulating questions to the lecturer based on the results of the lecture analysis, who is responsible for receiving answers. Moreover, each of the members of the small group is responsible not only to the group itself, but also to all other students.

An important role in which all members of a small group should try themselves is the role of the organizer. He needs to set the time and place of group meetings, provide work resources , monitor the implementation of commitments. For future managers, this is a good way to train the necessary qualities: exactingness for participants, ability to plan time, tasks, the ability to fix the current state of affairs, make and execute decisions.

3. A single repository of all student work

In the educational process, it is appropriate to use a single repository of all student work. To oblige students in their first year to post all their work to some version control system (for example, SVN) means putting them in a situation where it is simply necessary to understand the work of such systems. Note that this does not require a special mental effort from the student. It is important that the skill of working with this system develops as a result of more practical than educational activities, as It refers to learning indirectly. For example, a student can post an essay on the history of the system, and, as you write, add new versions of it.

Another advantage of this approach is that the teacher can always see if the student did the work or not. You can track the progress, note how many versions of the document were, how many edits. In addition, negligent students will not be able to resort to such arguments as: “I forgot the flash drive”, “the virus has eaten everything from me”, etc. Thus, virus protection, storage of various versions of documents, and teacher access to work are implemented.

The organization of collective work with the source code is a separate task. It should be solved as part of a course in the form of design work on one task.

4. Problem-task approach

The methodological basis of the problem-problem approach was discussed in [6] . Here we touch on the issues of its application to the educational process.

It is impossible to consider the process of education on its own, as the release of any units of products (specialists). In this process, we always deal with professional and personal self-determination of students. In this sense, the educational process should not be some kind of closed system within itself with its educational tasks that are not entirely clear to students who have not yet tested the very problems of professional activity. In Soviet times, training and production facilities were distributed that solved the problem of vocational guidance for applicants. Note that at present this tradition is gradually being revived. One of the problematic issues in the educational process is that many educational tasks for students look completely unnatural and incomprehensible. In this case, students have little understanding of what they will need tomorrow, and what not. If at the same time the student still believes in the teacher’s word, then the chances that we will educate a specialist with critical thinking are greatly reduced.

A guarantee for the education of personnel making independent decisions for specialists with critical thinking can be given by a problem-solving approach to training. It consists in putting students in problem situations, in which there is a need for informed choice, search and decision making. This gives students a high motivation to study the subject, puts them in the position of an active learner. With this approach, requirements for teachers increase: students become really interested in explaining the material to them “on the case” and not going far into lengthy discussions, for example, about the general use of mathematics in IT.

Currently, students, as a rule, consider the educational process as some kind of problem in themselves: they need to pass certain tasks, tests, exams. For this reason, they are weakly motivated; Learning becomes just a series of exams and tests. In our opinion, the educational problem should be subordinated to some motivating statement of the problem from the professional field .

The source of the correct formulations of professional tasks can be science, engineering. How to set such tasks is a separate issue, which is rather complicated and is beyond the scope of this article. As options, you can offer to work on the educational problem as a professional, in the form of project activities (more on this later). In addition, it is necessary to take into account that communication is an important component of students' lives, therefore teamwork on a certain task has its own internal sustainable self-reproducing motives.

The model of problem situations is built on the research interest of students and develops it. When a student is faced with such a situation, he poses the question: “What can I personally do to solve this problem, what do I need, what knowledge, skills and abilities”? Only with this approach can we say that a person has learned, literally "taught himself." This approach will demand students' research abilities. Faced with a problem situation, the student perceives it as his personal problem. Showing research abilities, he is forced to learn how to formulate a problem out of a problem.

The setting of tasks is a reference point in the organization of independent work of students, which so much space is allocated to the educational standards of the new generation.

Along with independent work, students should have the opportunity to ask urgent questions and get answers to them. In the case of a good organization of methodological complexes using, for example, Semantic Web technologies, a student could formulate questions in the OWL / DL language , which allows machine processing.

5. Ontological engineering - integrating students' knowledge into a single system

To stimulate the processes of integrating the knowledge of the studied disciplines into a single system, students can be invited to build a diagram of the connections between the studied concepts. The diagram may reflect the relation of the order of presentation, the relation of definability of concepts one through the other. The construction of such generalized diagrams is very useful for students in drawing up a common understanding of the discipline, determining its place among other subjects. It forces you to put in order your ideas about the subject and correct them in time, providing the results of the constructions to the teacher.

Such diagrams can be compiled immediately in OWL format., which gives not only the skill of writing ontologies, but also the opportunity for the teacher to use the students' works to form a formal ontology of his discipline. The latter will allow in the future to coordinate programs related disciplines (based on the concepts used in them).

It should be noted that, as a rule, the ontology of the studied discipline lends itself very well to formalization. Along with the hierarchy of concepts, the teacher is recommended to use top-level ontologies such as “cognition”, “academic discipline”, and “research”. This approach was proposed by the author in a sectional report at the Maltsev Readings-2010 conference , and presented in the abstract of the conference “Teaching IT in Russia 2010” [7] .

6. Respect means demand

Another important point in applying the approach to problem situations is the need to provide a high degree of trust to students. Students should be able to solve professional problems seriously. In this case, you need to seriously ask them for a solution. The basis of respect, as you know, is compliance. Students deserve respect for themselves by solving problems in the educational process using the same methods and means that their older comrades in the professional field: using various tools of teamwork, technology, etc.

Based on the principle of similarity of methods, you can notice the peculiarity of the delivery of IT projects. Probably, the reason for the large number of delayed projects that are not delivered on time lies in the habit of passing the exam at the end of the semester. This feature of traditional education significantly inhibits the development of the IT industry.

Now, it’s logical to go on to discuss another tool of professional activity in relation to the problem-task approach.

7. The use of design methodology in solving problems / tasks

In the framework of educational activities, students are invited to draw up each significant educational problem in the form of a project. The key characteristics of the project are the budget, terms and volume (quality) of work. The budget for students is their study time. With this approach, students will have a real need for knowledge from the field of project management.

Real projects may include: the study of a specific discipline; course assignments; study of a separate module. There is a need to evaluate the time to study the subject; determine the requirements of the customer (teacher); agree on the timing of the project; to plan work on the project. This is an extremely useful practice, because the essence of the project approach is practiced on a task that is completely understandable to students.

For senior students, the basics of risk management can be given. However, this can only be done when they are already familiar with the real design issues in practice.

Each new knowledge should be conditioned for the student by some inner demand, readiness. All the above ideas and approaches are based on the following principle: new knowledge must answer the questions asked . Meanwhile, the traditional education system answers unanswered questions, which not only demotivates students, but also generates a lot of useless scattered information in the student’s head.

8. The system of feedback, control and management of the educational process

To implement the approaches described above, an initiative project has been launched at Novosibirsk State University to create a “Feedback System, Monitoring and Management of the Educational Process” . The system consists of organizational forms, methodologies and approaches, where the corresponding information system is used as infrastructure.

The following functionality is laid in the system.
  1. Task management: the ability to set goals for yourself and track their progress; reporting forms (for reports, first of all, in front of you), a system of reminders.
  2. Communications: lecture tracking system; forum.
  3. Means of collective work of students (version control system, hypertext knowledge base, replenished by students and moderated by teachers, semi-formalized using OWL).
  4. Analytics: collecting statistics on assignments; projects; forecasting problem situations.
  5. Social network: a game form of student rating; teachers rating (by the number and quality of answers to students' questions).
  6. Access to study programs for students and employers.
  7. Tools for planning curricula over time (Gantt charts).

It is planned to organize the access of employers to the rating and to the results of student education, which will allow them to select the staff they need, and also participate in the formation of individual or collective special education programs (additional courses) in a targeted way, where the “targeting” is done using the system’s data. The rating, on the other hand, will spur students to demonstrate the most worthy qualities and bring in the spirit of healthy competition with due objectification of basic indicators.


The article discusses approaches to organizing the training processes of IT-specialists using well-known, proven software engineering technologies. Offered:
  • apply error tracking systems for lectures, which contributes to the development of one of the most important tools of a software developer, a deeper understanding of lectures, the implementation of communications between a teacher and a student;
  • use version control systems to store all the student’s work while studying, while simultaneously working out the version control skill;
  • organize the study of disciplines in small groups, giving students the practice of working in a team with a separation of roles;
  • apply methods for setting problem situations for more effective involvement of students in professional activities and solving issues of increasing their motivation for learning activities;
  • use the project methodology when organizing the study of disciplines, giving students the practice of working in a real project that has its own budget, terms and amount of work.

We believe that these ideas and approaches will find understanding both among software engineering specialists, and among teachers, course organizers, department heads and specialization curators.

The author is grateful to D.E. Palchunov, V.V. Mukhortovu, V.A. Vasenin, O.E. Grachev for useful discussions that contributed to the formulation of the described approaches.

The photo in front of the habrakat was taken here .


[1] The main interface - rapprochement began (conversation with academician Yu.L. Ershov) // Science in Siberia. - 2002. - No. 42-43 of 11/01/2002. - URL :.

[2] Goncharov S.S., Sviridenko D.I. ∑-programming // Logical and mathematical foundations of the problem of the Ministry of Health. - Novosibirsk, 1985. - Issue 107: Computing systems. - S. 3–29.

[3] Malykh A.A., Mantsivoda A.V. Ontobox: ontologies for objects // News of ISU. - Irkutsk, 2009. - No. 2. S. 94-104.

[4] Spider M., Kurtis B., Chrissis M. B. Maturity model of software development processes / Per. under the editorship of V. Ryabikina. - M .: Interface-Press, 2002. - URL: .

[5] Federal state educational standards // Ministry of Education and Science of the Russian Federation. - URL: .

[6] A problem-oriented approach to science: the philosophy of mathematics as a conceptual pragmatism / Under. ed. V.V. Tselishcheva, Yu.L. Ershova et al. - Novosibirsk: Nauka, 2001 .-- 154 p.

[7] Pavlovsky E.N. Ontological engineering in the process of agreeing on programs of academic disciplines // Abstracts at the Eighth Open All-Russian Conference under the auspices of AP KIT "Teaching of Information Technologies in the Russian Federation" -2010. - URL: (date of access: 05.24.2010 ).

Also popular now: