At this post I’d like to expose what does stand for “Software Engineer”. I am trying to find answers for questions like “What do Software engineers do”, “Is Software Engineering an engineering discipline”.
These are main steps that software engineers working on while developing systems. Comparing with other engineering disciplines more than almost any other technical or engineering field, software development depends upon the human mind, upon human effort, and upon human organizations. From the day a project starts until it is retired perhaps 30 years later, human involvement is critical to every step in development, enhancement, maintenance, and customer support.
Even though we call ourselves as A software engineer, unfortunately software engineering is not yet a true and recognized engineering field. It will become an engineering field when it accomplishes better quality control, better change control, better measurements, and much better quantification of successfully finished project.
If software engineering is to become a true profession rather than an art form, software engineers have a responsibility to help customers define requirements in a thorough and effective manner. For example physicians don’t just passively ask patients what the problem is and what kind of medicine they want to take. Our job as software engineers is to have professional knowledge about effective requirement gathering and analysis methods and to also know what kinds of applications might provide effective “therapies” for user needs.
To put software on a sound economic basis, the paradigm for software needs to switch from software development using custom code to software construction using standard reusable components. Another major change is the switch from custom design and line-by-line coding to construction from reusable designs and reusable code segments.
When the software industry can measure performance consistently and accurately, can estimate the results of projects with good accuracy, can build large applications without excessive schedule and cost overruns, and can achieve excellence in quality and customer satisfaction, then we can call ourselves “software engineers” without that phrase being a misnomer. Until our successes far outnumber our failures, software engineering really cannot be considered to be a serious and legitimate engineering profession.