“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” – Martin Fowler
Technology and scientific knowledge has increased for the past centuries, and with it, the engineering field has acquired several disciplines based on the needs of these technologies. Software engineering is one of the latest disciplines; furthermore, it is different because professionals are not building a tangible structure. It is as important, though, as most technological equipment used in daily life require software. In fact, software impacts most aspects of our lives; for example, banks platforms, and businesses trust software programs.
Software engineering is not just programming, it involves a series of steps priori and posteriori of programming. When a project is required there’s research to be done about the requirements of it, creation of algorithms to follow by the program, followed by the actual coding process, which needs comprehension, logical thinking, machine language knowledge, and programming abilities; finally, there’s validation and maintenance to the program, as it needs to keep running.
The question is, is it a discipline or an art? Most software engineers consider their labor as art ; however, software engineering is both of them, it is a discipline as all other engineering branches, which are considered as professionalism. Simultaneously, it is an art because there are no limits when developing software. Limits exists when the physical unit is not capable of supporting the virtual one; however, everyone can create their unique piece of software.
: Steve McConnell