That’s so funny! hello, you are asking me?? What a country Actually lot many people have asked me this question and every time, I told them a different story about it, really i am telling you the truth. You won’t get an exact / true answer any where (You mean, in the whole universe, yes! i mean it 🙂 about this highly complex discipline. It is not complex by itself, but the product, the “software” made it complex engineering. If I would be the educator or decision maker for the courses, I’ll call it a “Complex Engineering” instead of Software Engineering. So what’s so different about it. I would say nothing different, it is the same engineering like other engineering disciplines, chemical or electrical engineering’s. Lets go further into the literal meaning of Engineering itself. It means, to Engineer “something” or to build “something” on an industrial scale, period (.) In our case that “something” is quite unfortunately a software product. So Software Engineering is an Engineering that builds a software product on Industrial scale, how is that. Hello “Sir”, “Monsieur”, “Madame” blah, blah, by the way, we just have scratched the surface. Any thing you build on industrial scale become complex but not that complex as the software itself. The computer scientists learn algorithms, data structures, operating systems etc. on a laboratory scale. So their test scale is simple and small software application that is composed of, at the most, couple hundred lines of code, that’s it. So computer science is no different than other sciences like chemistry or physics etc. Like other scientists, Chemists make chemicals on laboratory scale by putting some chemicals in some ratio in some sort of flasks and apply a little heat and some pressure etc. So when the times come to build the chemicals on industrial scale things become complex, that is, that little heat now needed on a very large scale and controlling of it is another complexity. How about pressure, controlling pressure now needs special controls and that flask is now a giant Pressure Vessel etc. etc. Same analogy can be applied here in software engineering. Computer science provides us the foundation of algorithms and data structures of varied nature. But to scale up these techniques on the industrial level, is much much more complex than any other Engineering. The scale up of the software is simply not as linear as other technologies might have. So What are the factors that make them so complex. Lots of, but I’ll talk about a few of them in the next part. and you really will be amazed, how much complex this software is, stay tuned for the next part, good one!