Sponsored Link •
Complexity entails completeness! The software industry should admire and support a holistic approach to software engineering. Unfortunately, the industry does not herald a holistic viewpoint, since the software industry has a wrong treatment of complexity. This has to be changed!
A week ago, I have talked in a webinar about software engineering and the IEEE Certified Software Development Professional certificate. The whole webinar was recorded, and it is hosted by the organizer Dr. Heinz M. Kabutz on his server. See the resources section for a download link, or click here.
My essential message was that the software industry should admire and support a holistic approach to software engineering. Such ‘people centric’ attitude is the sole way to guarantee success, and deliver high quality products to end users. People are the key in the software engineering profession, and this should be clearly emphasized! Certificates (like IEEE CSDA/CSDP) are one way to reach in a well guided fashion the desired level of proficiency in the field of software engineering.
Nowadays, we may hear voices about redoing things, i.e. changing current practices, in the software industry. Let me just give you a couple of hints:
By my opinion, the software industry has come to the critical point where it needs to admit and correct errors made in the past. In other words it is a time for a change! I think, the biggest mistake in the software industry, and hence the urgent need for a change in this respect, is associated with the improper treatment of complexity. From the outset, the industry got intimidated by the vast complexity inherent in software development. However, it was not complexity what had caused great havoc in the field, but the amiss handling of that complexity. Instead of being proud on that complexity, the industry even now feels ashamed about it!
If we look into the past (not quite huge past actually) we may notice one general tendency in our field: a constant attempt to hide complexity and marketing that software development is affordable to everyone! What a waste of energy, I would say! Just imagine where medicine would be today, if they would had invested a stupendous time, money and resources to find a way to make “Hello World!” type surgery (like, appendectomy) doable by any fool! Would that be a nice world to live in?
That same complexity is also hidden from end users, too! All complexity what they in fact perceive about a software product is solely the complexity related to the user interface, i.e. to the usage of the software. They do not have a feeling what is under the hood! Take, for example, some other engineering discipline, like mechanical engineering. Let us consider a car, as one representative product. It surely has a very simple user interface; otherwise only few would be able to drive it. Nevertheless, people can always open the engine hood, and sneak a quick look at the underlying complexity. There is no such thing in software. As a consequence, lay people think that building software should not be so hard, after all. Imagine their standpoint, especially after they manage to write their first “Hello World!” program, and successfully run it on their computer! They immediately get courage even to start quarrelling with professionals!
I’m not saying here that complexity should not be reduced were possible in order to better cope with hard problems. I’m just emphasizing that the software industry should not foster blunders that developing software is easy! Software development is a complex task! This must be the starting point! The industry should not buttress anymore those directions whose sole purpose is to reduce complexity just in order to make software construction possible to everyone. The industry must change the course, and reduce complexity primarily for professionals to be able to cope with hard task! Of course, everyone will have been welcome to such a transformed industry, but the decision regarding who is capable to really contribute even a simple program would be in the hand of natural selection instead of sales people. Only the most fitted ones would be able to join!
Robert L. Glass, Facts and Fallacies of Software Engineering, Addison-Wesley, 2003.
JavaSpecialists - IEEE Certified Software Development Professional:
The Resurgence of Parallelism:
|In his professional career, Ervin was mostly involved in developing large-scale distributed enterprise systems. He is an expert for object-oriented programming, functional programming, aspect-oriented programming, and pattern-based software development. He is a fan of agile methods. Ervin is an Owner/CEO of a software consulting and training company D.O.O. "EXPRO I.T. CONSULTING" KIKINDA (www.exproit.rs).|