Monday, February 15, 2021

The subject of engineering and scientific subjects for engineering objects

It is necessary to distinguish between the subject of engineering itself (engineering) and subjects that study the objects of engineering - mechanics, electrical, computer science, etc. Engineering (including systems engineering) describes how engineers work. Engineering science describes what people do in an engineering project. Other subjects and other sciences describe the behavior of engineering objects, how they work: mechanical devices, electrical circuits, computer programs what is engineering.

The easiest way to understand the difference between such a “science about an engineering object” and engineering itself is the example of computer science and software engineering. In the blog there was a wonderful story, how its author, an excellent student in computer science, went after university to conquer a foreign software company. But there they explained to him literally in two days that he (maybe) knows how to program, but absolutely does not know how to work: he had to figure out how the requirements were drawn up, it was necessary to write not so much some cunning algorithm as a patch to already the written code for a million lines, and the right place for the patch in this code had to be found somehow, besides that, it was necessary to understand the configuration management (versioning), the change management system, to establish relations with managers and testers, to understand the essence of the methodology adopted in the project development, etc. - at the same time, they did not teach anything of this in the university. The work turned out to be completely different from what was taught: a huge amount of time is spent on communicating with colleagues, and not on “thinking”, the time for solving the problem is not “how much is needed”, but “how much is allotted by the schedule”. They learned computer science (keywords: algorithm, estimation of the algorithm execution speed, notation, grammar, relational data model) and did not learn software engineering (keywords: requirements, architecture, testing, changes, maintenance). Likewise, a mechanical engineer may be taught to work with strength, shape, speed, friction using all sorts of theories, but may not be taught to work with requirements, architecture, testing, and engineering justifications. That is why a good physicist can be a good specialist in the strength of materials, but not be a good engineer - he has knowledge about engineering objects, but not about engineering itself. the time for solving the problem is not “how much is needed”, but “how much is given by the schedule”. They learned computer science (keywords: algorithm, estimation of the algorithm execution speed, notation, grammar, relational data model) and did not learn software engineering (keywords: requirements, architecture, testing, changes, maintenance). Likewise, a mechanical engineer may be taught to work with strength, shape, speed, friction using all sorts of theories, but may not be taught to work with requirements, architecture, testing, and engineering justifications. That is why a good physicist can be a good specialist in the strength of materials, but not be a good engineer - he has knowledge about engineering objects, but not about engineering itself. the time for solving the problem is not “how much is needed”, but “how much is given by the schedule”. They learned computer science (keywords: algorithm, estimation of the algorithm execution speed, notation, grammar, relational data model) and did not learn software engineering (keywords: requirements, architecture, testing, changes, maintenance). Likewise, a mechanical engineer may be taught to work with strength, shape, speed, friction using all sorts of theories, but may not be taught to work with requirements, architecture, testing, and engineering justifications. That is why a good physicist can be a good specialist in the strength of materials, but not be a good engineer - he has knowledge about engineering objects, but not about engineering itself. algorithm execution speed estimation, notation, grammar, relational data model) and did not learn software engineering (keywords: requirements, architecture, testing, changes, maintenance). Likewise, a mechanical engineer may be taught to work with strength, shape, speed, friction using all sorts of theories, but may not be taught to work with requirements, architecture, testing, and engineering justifications. That is why a good physicist can be a good specialist in the strength of materials, but not be a good engineer - he has knowledge about engineering objects, but not about engineering itself. algorithm execution speed estimation, notation, grammar, relational data model) and did not learn software engineering (keywords: requirements, architecture, testing, changes, maintenance). Likewise, a mechanical engineer may be taught to work with strength, shape, speed, friction using all sorts of theories, but may not be taught to work with requirements, architecture, testing, and engineering justifications. That is why a good physicist can be a good specialist in the strength of materials, but not be a good engineer - he has knowledge about engineering objects, but not about engineering itself. Likewise, a mechanical engineer may be taught to work with strength, shape, speed, friction using all sorts of theories, but may not be taught to work with requirements, architecture, testing, and engineering justifications. That is why a good physicist can be a good specialist in the strength of materials, but not be a good engineer - he has knowledge about engineering objects, but not about engineering itself. Likewise, a mechanical engineer may be taught to work with strength, shape, speed, friction using all sorts of theories, but may not be taught to work with requirements, architecture, testing, and engineering justifications. That is why a good physicist can be a good specialist in the strength of materials, but not be a good engineer - he has knowledge about engineering objects, but not about engineering itself.

To teach engineering as such is to teach how the course of engineering development works, what are the basic concepts of the subject area of ​​engineering itself (and not the subject area that describes the physics and algorithms of the engineering object being created): how the engineering project works as a whole and how the design unfolds in time / design / programming, manufacturing and deployment of the target system, and not just how the created system works.

Unscientific engineering. Heuristics

Knowledge of engineering itself (how to do something) and knowledge of engineering objects (installations, structures, vehicles, computers, etc.) can be both scientific and unscientific. Engineering is born and lives by trial and error, its knowledge transferred from project to project about itself (how to do something) and about its engineering facilities are not necessarily “scientific”. So the definition of engineering as “bringing scientific knowledge into practice” is simply incorrect, although science is used where it is.

The Discussion of the Method engineering researcher Billy Koen gave an example: if in the Middle Ages people came to an engineer with a request to build a bridge, but he would have refused on the grounds that they would be invented only 200 years later - what about such an engineer? Or if a modern engineer, when asked to build a rocket flying to the Moon or Mars, would abandon the project on the grounds that a sufficiently detailed “theory of the moon” or “theory of Mars” has not yet been created? Or, if it is necessary to create a robot, an engineer suddenly says that “there is no theory about what to do to create a robot yet, so I don’t know what to do in what order, so we’ll wait until scientists have a corresponding section of engineering theory. ”. Refusals on such grounds are not peculiar to engineers, they are not stopped by the lack of scientific knowledge of what they do.

No comments:

Post a Comment