Friday, June 5, 2009

Software Engineering: Art or Science?

In the late 1960's, software engineering was intended to address the problem of software crisis. Software has becoming large and complex that the traditional practices of computer programming was not enough to address changing requirements, increasing size of applications, and other factors that made it too complicated by just doing programming.

The art of building software applications need not follow any set of procedures. The artist can develop applications dependent on how he perceived it and what he would think can be a good product. No consultations can be made from experts about whether it can address a certain need or a client to satisfy. In the building of a software product, there can be a set of desired properties that should be defined and mostly, clients or customers are the ones who demand it. For an artist, it might be good to reconsider market trends, target markets and economic issues beforehand.

However, software engineering as a science means that there should be a pre-defined set of theories and proven development paradigms to consider in development. A developer can either use Agile or Rational Unified Process because it has been used by the industry for years now. Although there might be issues whether they can be adaptable to projects, it is still the prerogative of the developer to make decisions. As a science, development can be more suitable for applications which are mission-critical and cost millions of dollars.

Software engineering can be both an art and science in some way. Innovating software products can be an art because the artist tends to look for ways to make it more appealing to the target market whereas it can be science because it can somehow follow a development process or paradigms to ensure that the product has achieved its pre-defined properties as validated by clients and customers.

15 comments:

  1. See also "Computer Software Cannot Be Engineered" by Norman Young which argues that the concept of "Software Engineering," as an engineering discipline, is unfounded, and that "Computer Science" is not science, but mathematics.

    "Computer software cannot be engineered because there is no science of computer programs. Science is essential to engineering. The application of scientific models through engineering judgment defines the essence of engineering. Computer programs, as mathematical objects, are not subject to scientific laws. Consequently, by definition, computer software cannot be engineered. ..."

    http://tech.slashdot.org/comments.pl?sid=1258979&cid=28236833

    ReplyDelete
  2. Thanks for the comment. i will look though it.

    ReplyDelete
  3. the programer must be genius!

    ReplyDelete
  4. Nice write up, and I think that software engineering is both art and science in some way. Thanks for sharing your insight bout this.

    search engine marketing company Los Angeles

    ReplyDelete
  5. For me, it's both. What is art in the first place?-- It is an activity where you epress ideas from your mind. Art shows "Flexiblity" to satisfy idea(s). Same as how softwares are done. They have rules and procedures. But then, software engineers do everything to satisfy the needs and demands of their clients. How can a client appreciate a product if it wasn't his/her desired product? Indeed, we need to do things for money matters. But then, it is also the goal of Software Engineers to satisfy the demands of their customers.So that good relationships between clients and software engineers will come in place "For a Higher Rate".

    Science---- To organize your work you'll need to undergo in a scientific method. It is not all expressions and ideas. It needs to have reliable process. If you're not organized, everything will fall into scrath. Unorganized will have more trial and error. Plan-Consult-Work-Plan-Consult-Work....an so on. Always have goal.

    SE is a combination of the heart and mind.

    ReplyDelete
  6. Software Engineering: Art or Science?
    Software Engineering for me is both Art and Science. However in building a software application you should follow certain procedures. But unlike in art, you should not put to the software application you build what nice or beautiful to yourself, but you shall also if you can satisfy your client. You can do this by consulting some experts to the field that your application will be use. In building a software application it’s not only the programmer who becomes the artist but also other members of the team. Unlike in art you could not a masterpiece by yourself. In order to make a masterpiece you should consult and do it with the help of other members of the team. In artist perspective you should to consider the market trends, target markets and economic issues. In science you should have a pre defined set of theories and use of proven software development methods such as agile or Rational Unified Process. There is no such thing or law that science and art could coexist. The combination of art and science could somehow result to a masterpiece.

    ReplyDelete
  7. Viewing Software Engineering as art without the application of science or vice versa may cause the field obsolete. As the field applies science in the first place, scientific method in trying to solve specific problems and then application of art to make the projects they are concerned easy to manipulate by users(the usage efficiency) and elegant ofcourse. Then Software Engineering is not only science, not only art but the combination of both like "two head are better than one", science without art is a trash, and art without science is disgusting. Therefore Software Engineering is seen as both art and science not only in the manner on how they deal with problems but also in creating something that is beyond what we expect.

    ReplyDelete
  8. In dealing with software development, there are two things that should have to consider. First, the software must be stable and reliable to prevent unwanted bugs and crashing. Second, the software should have an outer appearance that will capture the eyes of the user and to guide the user from using the application correctly. Therefore, science and art should work hand in hand in software engineering. Without art, the application cannot give first impressions to the customer on how reliable and stable the software is. Without science, the application would become a "vegetable", resulting to poor quality of the software.

    ReplyDelete
  9. First let’s look into the definitions of science and art. Science is a particular branch of knowledge accumulated by systematic study and organized by general principles; "mathematics is the basis for much scientific knowledge”. Art is human effort to imitate, supplement, alter, or counteract the work of nature. From these definitions, I could say that Software Engineering is both art and science. It is science in a way that software engineers apply those scientific methods as an approach to the problem. Science helps software engineers in creating and building high quality in low cost software. Science is very significant not only in software engineering but also in other field of courses. Now we have our high quality in low cost software. But what is high quality in low cost software if the client finds it so naive and boring. Art will now comes in. With the use of our artists, we can produce stylish software. They were the one in charge of the design of the software. In a development team, science and art is very important. Science without art is boring. Art without science is for display only. A stylish GUI is useless if the software runs so slow and hasn’t met the expectations of the client. Art and Science is very essential in software engineering.

    ReplyDelete
  10. Software engineering is a science with a bit of art in it. It is a science because it follows a set of procedure. Developers have been using procedures in developing software, be it large scale or small scale. One example of these processes is the famous “waterfall model” which is: requirements gathering, software design, implementation, verification/testing and then, maintenance.
    The art in software engineering is in the “creativity or skill” of the developers in designing the software to be efficient. Also, sometimes it becomes an art if there are some graphics involved, one example are video games. This is where science, technology and art really mix together.

    ReplyDelete
  11. In my point of view, Software Engineering is both. First, what is Science and Art? Science refers to any systematic knowledge-base or prescriptive practice that is capable of resulting in a prediction or predictable type of outcome. Art is the process or product of deliberately arranging elements in a way that appeals to the senses or emotions.

    Imagine a software or system that has the full proficiency and capacity but not handy and doesn't have what the users and clients taste of appeal. Or imagine a software or system that is very easy to utilize and it's in the trends of users but has defects. Its science side makes it workable and usable while its art side makes it appealing and complex to other system and to users.

    We can also describe the two has our hands. Many say that right-handed are the logical type while the left-handed are the artistic type. For me, same thing goes to Science and Art. Software Engineering is a hard profession that one set of skills either Science or Art won't be enough. It's like you can't carry a heavy load with just one hand.

    ReplyDelete
  12. When we say Art it is the process or product of deliberately arranging elements in a way that appeals to the senses or emotions or modes of expression. To apply the concept of art in software engineering there is no such thing as guidelines or guiding principle in building software application. We follow what our desires on what we think is the best for our target user. We should also consider some factors that are to beforehand. We must be in trend to technology because people tend o be more particular on which they prefer to use especially when it goes to the cost of the product economically and its features. While Science is our knowledge attained through study or practice. Software engineering as science, the application of our software knowledge in software development processes and life cycle models which is to produce useful models of reality. Therefore our creativity and highly skilled techniques will be our systematic approach to achieve our goals. And so, software engineering is both an art and science, the work of art and science is perfect blend to hit our target’s need and wants.

    ReplyDelete
  13. Without science, software engineering will just be an art. Art is made with the intention of stimulating thoughts and emotions. Software engineers craft there masterpiece by developing software applications in a way that it satisfies the needs of its clients. Art also is made to make products of deliberately arranging elements in a way that appeals to the senses or emotions. In the other hand, as they craft their masterpiece, they follow certain way of doing it as of science that is referred to as a system of acquiring knowledge based on scientific method. Engineering is a branch of science. Therefore engineering is science. We cannot separate science from software engineering as well as software engineering into arts.

    ReplyDelete
  14. Software engineering supposed to be an art and a science. Art as an understanding the perception of client and science as the application.

    ReplyDelete
  15. Software enginnering is both art and science.
    Art, to think beyond the limitation of the client or customer, like an artist. Creating creative ideas to please the audience or the user. For others, Software Engineering is not related to science, well they are wrong about that. Literally speaking, Engineering deals with math and science. Software carries the title Engineering so there's a connection on it. On the other hand, science have they called methods like scientific methods to prove somethings right. They use principles to support thier ideas. Like Software Engineering, it also use the same principles.

    ReplyDelete