Why Software Engineering Is Immature Today?
Software industry is about half century old and has been pictured with excessive schedule pressure, long overtime, constant change and frequent overruns. This is because software engineering as a new engineering discipline is still developing hence immature. This can be evidenced in view of the larger historical context of engineering. From this view, we can see not only where a developing discipline is in its course of development but more importantly how should we go about to achieve its maturity.
The history of engineering can be better understood by looking at the relationship between science, an abstract interest in nature, and technology, the crafts or tools. In most human history, science and technology remained the largely separate enterprises, intellectually and sociologically. They had been since antiquity. The technology of the Industrial Revolution remained in classical independence of the world of science; only during the nineteenth and twentieth centuries did thinkers and toolmakers finally forge a common culture. Historically technology helped science more than science to technology. It frequently happened that technology has made instruments that advanced scientific discoveries and discovered new methods that challenge scientists for new theories to explain what happened. Telescope, for example, led to better astronomical measurement, which led the idea of heliocentric view.
Engineering without science is imprecise and uneconomical. The Romans appear to have had no theory regarding of stress, thrusts, and distribution of weight. There was no science of statics until after 1500 in the Renaissance. Roman engineers made no quantitative tests or the strength of materials under tension or compression or bending or shearing. They did not realize that the strength of a beam depends upon the shape as well as upon the area of its cross section. They built their huge aqueducts and bridges solidly with caution and common sense, well within the appropriate factor of safety or margin of error. At the same time, however, the Romans were deliberately raising too perilous heights apartment houses that frequently collapsed.
Science and industry and the cultures of science and technology generally began their historical merger in the nineteenth century. Since then scientific knowledge has been applied to improve and even predict technologies. The flow of information has been from science to technology. Radio communication is a good example where practical application followed closely on the heels of theoretical innovation. The flow of scientific information to complex structures leads to lasting and economical bridges and high-rise buildings. An engineering discipline becomes mature only when science and technology are fully merged and a single methodology based on standards is created. Personal opinions are ruled out for placement. When the standards are followed, bridges will be on schedule, on budget, on spec and do not fall down.
In the software industry, software engineers are much like civil engineers before industrial revolution Both of them build bridges/software by tingling hence most of them fall down. Both have myriad methods and there was no standard to mandate how to build bridges and software. After industrial revolution, civil engineers would be able to specify requirements in terms of scientific principles, resulting in precise, concise, and stable requirements. There has been continuous progress in information technology such as computer languages, integrated development environments, and network protocols. But in terms of progress in scoping and representing problem space, there has been none. There is no science used in the software industry up to date to specify precise, concise and stable software requirements in the same way building requirements are specified in terms of physics and mathematics. Because software engineers have more common with craft men than scientists, therefore software engineering is an immature field.
surender.s@sonata-software.com