Software development and psychology

Source: Internet
Author: User
Developers are the most important participants in software development. How to motivate developers to invest enthusiastically in project development? I thought of psychology. Next I found an article about the relationship between software development and psychology. I think it is very helpful. From: UML software engineering organization.

Note: although this article has been written for a long time (it was quite suitable for the IT industry to use the word "long" in 1996), it is still dumped by the author's talents after reading it, this is a rare article.

Researchers at the Carnegie Mellon Institute of software development and other colleges spent their whole life defining a Theoretical Discipline (software development theory), and later found that there were still many vague things, they do not hide this. Since its birth, software development has conquered many talented people with charming styles. Some professors, experts, scholars, and business management personnel cannot help but raise the following question: why can't humans define software, interpret it, and understand it deeply? Why can't some talented scientists generalize these puzzles into a scientific engineering discipline or industry standard?

Most of us, especially businessmen, engineers, and academic institution researchers, regard computers and software as a very common thing. They communicate with computers in various absurd ways, computers are deaf to threats and condemnation from users. Software is everywhere, but software often shows failure, strike, and abnormal. There are two main reasons: First, program failure will lead to inaccurate file definition, in the end, the software is characterized by strikes and exceptions. Second, some software development directors conduct random command and force the software to apply some flashy techniques to realize the unrealistic ideas and wonderful dreams of supervisors.

Slow software development and Internet access take most of people's time, and especially, these two aspects are very addictive in the contemporary era. Once addicted, normal people will also become slaves to file processing, file uploading and downloading, most of which will be attributed to the disadvantages of managing its software. At this time, we have to be confused: We can build skyscrapers, fast racing cars and high-performance electronic products, we can even understand quantum mechanics and sub-atoms. Why can't we develop high-quality software?

[The truth behind the mystery]

Software development is essentially a mental activity based on human thinking. computers and software running on them are a mirror of human brain activity, therefore, software development also faces some inherent problems of psychology and spirituality. As we all know, all the purposes of psychology are nothing more than understanding the elusive human soul, which some medical professionals study. Compared with software development, the situation may be worse, because software development is only a model of human intellectual activity after all, it comes from human intellectual thinking. Whether you admit it or not, intellectual activity is only part of the soul action.

In many aspects, the relationship between software and psychology is closer than that between Engineering, Technology, and mathematics. This is because software directly comes from the thinking of the human soul, superior software often relies on the creativity of the soul. Compared with art, software lacks the beauty of art; compared with natural science, it lacks a little formality. In addition, software can only be a psychological imitation of software developers.

Software reflects the psychological activities of software developers. Many factors will take effect in this psychological activity, such as the developer himself, the development environment, and the system. The developer himself means that the developer himself has some psychological activities during the software development process; the development environment refers to the process of all computer hardware, computer software and software development; the system includes all people, all development environments, parts, organizational relationships, and other things that help achieve the goal.

Software is as flexible as a human being. It is influenced by intelligence, imagination, fear, hope, and many other emotions. It reflects developers' views, understanding of the target, their feelings for the customer, their sensitivity to the concept, their profound ideas, and their respect for the authority. If you want to use a computer to make a better product, software development is the core, and it represents the essence of the entire system. What gives software products a unique style and feeling? From the Perspective of humans: personality.

[No angry personality]

Does software have personality? If you ask me this question, I will blurt out: Of course. When software development is completed, a set of words will be formed for communication, internal analysis logic, video/audio support, and memory. From the perspective of contemporary technology, these resources are theoretically unlimited. Where is the problem? The problem arises in the mess set by its developers. Software developers were not affected at the beginning. Later, as the scale expanded, they joined a number of foreign computer experts, as well as a director of a command department, which all disrupted the work of developers.

First of all, we should point out that words are necessary. Whether used for external communication or internal communication, words constitute the foundation of the thinking module. If a person does not have a word, he cannot think, the reason why humans can communicate with cold machines lies in the existence of words. Computers can easily be taught to respond to certain words, and their capabilities are unlimited. But what's wrong? First of all, although a computer has the potential to understand unlimited words, its human masters are usually limited. Therefore, humans think that everything should be as simple and short as possible, in fact, computers with high performance must be able to look at humans with low capabilities. In addition, if the software has a large vocabulary, it will certainly become very large and complex, difficult to understand, develop, and maintain. Therefore, although computers have unlimited capabilities, they must also put the golden mantra that developers have prepared for them.

[Creators and creativity]

The pottery can is the owner of the pottery can, And the pottery can never exceed the ability of the pottery. This fact also applies to the relationship between computers and software developers. programmers can never let computers do anything beyond their imagination. Of course, this does not mean that a programmer cannot do anything more than a human computer can do. It means that if he cannot imagine it, he cannot do it. Of course, the same principle applies to errors. A programmer has a small mistake. (Note: programmers generally do not think of where the error exists. If they recognize it, they will correct it, the error is gone. That is to say, errors are beyond the imagination of programmers. This will allow computers to do things that we humans cannot understand.

System-level programmers are facing great challenges. With the help of computers, they are no different from the gods. He can do anything he can think of, and the computer listens to his command and whatever command he gives. He is able to show his talents, his thoughts that are not known to most people, and the spirit of roaming in the virtual world through his creativity. At a certain time point, his human nature will be broken through again to reach a new realm and height.

Although a programmer is very powerful and his technology gradually surpasses his intelligence, he will soon find that he must find a job to support himself. Thinking that he cannot fabricate his daily necessities out of thin air, he must bow his head to those who can provide him with clothing, food, shelter, and travel, so he had to follow the needs of others, the color selected, and the ideas of others. All he could do was ship the goods on time according to others' requirements. Although a programmer has the ability to be arrogant, his life will soon be buried in the daily trivial tasks like physical workers. An outstanding genius succumb to the pressure of life, giving his creativity to a boss or a capricious customer, consortium to do some maintenance, or as a slave of configuration control, why? Why do programmers allow others to control their lives?

[Business cycle]

After the company decides to do some software, the programmer's job is to let the software jump up and sing. The tester's job is to find out the software error and then the customer buys the software, especially the software that customers like to buy. But who told the customer what to buy? The customer's purchase behavior is driven by a capricious mood. He buys what he wants, what he needs, or what he needs. No one knows what drives it all? However, the commercial cycle is like a gyro, where it keeps moving: development, testing, delivery, and elimination.

Software seems to have the greatest flexibility among all products in the real world. It can be expanded, upgraded, or even formed in a cycle with the programmer's likes and dislikes, the customer's requirements, the boss's instructions, and the influence or length or short of bugs; it may take several years, or be short for a moment. The software development cycle is in the hands of the designer. It can be long, short, large, and wide. It can also add functions, be upgraded, or even spiral. Why is it so messy?

The main reason is that flexibility leads to such confusion. You may think that there are so many variables, so many judgment points, and so many unlimited options in the software. Like human thinking, software must also be supported by an operating system. The operating system is always running and cannot be stopped at all times, busy with storage, logical operations, audio and video processing, and communication with other components; and some tasks can be completed in an instant, but the operating system also needs to ask, and soon the system is very messy, just strike. You need to know that computers do not like clutter like humans.

In fact, the more you think about computers, the more you will find that computers are a mirror of humans. In the computer, you will find some mental activities of our human beings: the flash of our beam, our stupid mistakes, and its vivid imitation of our human activities, it transforms our human thoughts into mechanical devices, electronic transfer devices, actually identifiable devices, and then gives us the feedback we need. Of course, sometimes it may not be so perfect, it may be a wrong call, or it is simply wrong.

Once the software has been written, its personality gradually becomes apparent. Programming for dull monsters will inevitably give a dull soul. Is it a robotic soul or a talented soul? Maybe both of them are available, but the most likely is an efficient helper with a strange character and a ridiculous disorder. Why are these problems? You need to know what we need. Why is it so messy? Face up to the following fact: the owner creates a monster, and we are the owner.

Computers should be more stable than we humans, because they have no feelings, and they have always been the embodiment of objectivity, logic, and correctness. At the same time, they will not argue because they have no feelings; it can be rationalized, but it cannot be argued. Although it has no feelings, sometimes it makes us angry. Sometimes people get angry and lead to confusion. They yell at this deaf and dumb thing like a dead person. It is not human, it is completely reasonable. There is one thing, it may not be in the future, it is love. It has no life, so it does not love; it does not hate, of course it does not have love, it does not have thoughts, but it is objective, very logical, fast and efficient, but it is also dumb.

Computer humor]

Many comments that apply to humans are also commonly used on computers, which is a bit ridiculous. Why are there so many opposite comments: smart and stupid, outstanding and absurd, rational and unreasonable, rapid disappearance and re-emergence of errors, etc. This is the computer's humor. It has the ability to make errors and make them look perfect, even accurate to the tenth place after the decimal point. Surprised?

A common computer is mature between a dog and a three-year-old child, this may be the reason why we often hear sound from computer users, such as "Voice", "wow", "Oh", and "no-no, does that sound like a genius or an adult? The words caused by these rigid partners are so childish. How should we comment on its creators, programmers, and users? Is it just a child's toy? Are we going back to the children's age? This may be a question of psychology. Maybe we are going to consult a psychiatrist.

This ridiculous situation is everywhere: some well-experienced experts talk about single-tone words, such as "ha", "Oh", and "yes. Humans have always been very knowledgeable about what they want to learn, learn what they want to invent, and master something. But do we humans make progress or even worse? If this is the pursuit of human simplicity, we may still be able to say the past, but is this the pursuit of simplicity or naive performance? I think the answer to the computer is "naive ". If a computer can speak, it will definitely say that humans are naive, stupid, and dementia. It will say, "You stupid guy, why do you program me without my consent, you know that I have my thoughts too. "or" You have omitted a comma. How do you ask me to do things for you and read your thoughts?" And so on.

Interesting, right? Computers are similar to humans, and they can also say something like humans. Why? Is computer or human? There is ample evidence that both are correct, and both are a bit silly, because computers are a mirror of humanity and they should and indeed reflect the talents of its creators. Can a stupid person call a stupid person as a stupid person? Of course we can. We can also learn about ourselves from other aspects we know.

[Causes of mental disorder]

There are many factors that can affect our lives, but fortunately we humans have our own will and can make decisions on our own. No matter how much pressure the outside world puts on him, he can decide his own. But the computer has no will. It only follows the code. No matter whether the code is simple or complex, trivial or very important, long or short, the computer will execute it step by step. A slave who completely obeys the master should not take responsibility. The master asked him to do so, but who is the master of the computer? Is it a programmer, a supervisor, a CTO, or a CEO? Or are customers who can decide the market with capricious thoughts?

There are also many factors that can ultimately determine the personality of computer products. For example, when the robot industry becomes more and more mature, the out-of-control personality becomes more and more obvious. But in any case, a programmer has the will to take full responsibility for his creations. Supervisors are responsible for development efficiency, CIOs are responsible for flexibility, and CEOs are responsible for profit. Low programmers can only be mentioned when a program fails. However, developers must be responsible for the product, his product is a mirror of his psychological behavior.

Now we have switched the entire circle. We started with programmers, and now we are back to the psychological factors of programmers concentrated in code. Of course, with the improvement of the ultra-large scale production capacity, you can copy the personality of this kind of listening device without limit and place it on the user's desktop. However, the psychological components of programmers, including intelligence, vocabulary storage, and memory, still play a definite role. What computers lack is feelings, conscience, Will, and love. The will is not included because there are many choices, but sometimes there is no freedom to choose. When a computer becomes a slave to code, its will cannot be discussed.

[Computer products are a kind of mental disorder and an image of imperfect creators]

Solomon once said, "There is no new thing in the sun." Is computer a new thing? Obviously not. It just gives us what we give it. It accepts our instructions and turns it into something that can help or please us. It took us a few hours, and then it gave us a result at lightning speed. The results of several hours of thinking and processing can only be instantly fed back, and they are not perfect.

We inject logic algorithms, Will activities, and insights into the computer, and what we get is just an instant result, this result is no better than our assumptions, logical reasoning, and academic skills. We have not changed. Our products, whether automatic or manual, reflect this point. After two generations of research efforts on computer science, we originally intended to define a set of words for computer science, and now it seems that we do not have any connectivity. In fact, our products are ourselves.

[Conclusion]

Computers, software, and computer products will not be classified soon. They are all related to the psychological aspects of software developers. As for the subject of spirit, inspiration, and psychology, there are still some profound questions that have not been solved. It is far beyond our ability to understand creativity and other things such as humans.

Computer technology is sometimes beneficial, sometimes harmful, sometimes successful, sometimes failed, and sometimes stopped. It is the same as everything created in the world. Even good Computers won't replicate human capabilities, and will never. Think about how to make a computer without a basic vocabulary, and then learn to think, associate, debate, and love, to work for life, to store all the details of life, and so on!

A formalist who feels good about himself thinks that he can define a software development process, and now he seems to have made a big mistake. They do not understand the beginning or the consequences. Some academic institutions once tried to give up on a temporary basis; business groups never attack code; software giants put a huge amount of energy into coding, pretending to do something sacred to serve humanity. In fact, it's all about humans watching themselves in the mirror. Computers are laughing at us!

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.