At work, I came into contact with the software developed by Indian software companies: the entire system architecture is very clear, and all functions are implemented according to our requirements, which is quite stable. However, when you open the specific code, the code is too long and the level is not the same. Some of our own programmers have a strange saying that their level is really low. But! Indians can grasp the software as a whole, complete the software, and get quite good design documents. While the Chinese are wondering about the data structure and algorithm, the interface staff will think about the outlook or Visual Studio interface before coding. In the end, I became a code expert and proficient in some specific development tools, but I cannot guarantee that I can develop a software stably and completely.
?? A simple example:
?? A list is required in the software to indicate the transactions we process. This type of table will become very large when the business is busy. The Chinese use a two-way linked list to write the Linked List class with the data structure book. The Indians opened a large array and then started to work. Why are Indians not using linked lists? 1. The devices (minicomputers) You provide have at least MB of memory, which is nothing to waste. 2. Convenient array access and high efficiency. I can see that when I get something, I just need to write code. Is it different from performing software analysis? A few of my colleagues came back from India just a few days ago to communicate with us. The company is a level 4 CMMS company. What I feel:
?? 1. process over project
?? 2. QC (that is, QA) is independent of the R & D department. It specifically checks whether the development process of the R & D department follows the established process. if QC finds that the process is incorrect, it will directly report it to the senior management, and the project will definitely stop.
?? 3. The so-called project manager (PC) is generally upgraded from the coding personnel. It is not so technical-savvy. Generally, it has at least four years of experience.
?? 4. PC is mainly used to develop a development plan, coordinate and fill in various forms.
?? 5. All things (including drafts) have documents.
?? 6. The detailed documentation must be encoded only for this document. Generally, the time for writing documents accounts for 60%, and the encoding time is very short.
?? 7. There are various detailed review (peer review), within the project team, between the project teams, and between the customer's...
?? 8. The plan is very detailed and can indeed reach the hour level, but the actual situation is still relatively large, so they also have to work overtime.
?? Learn UML, Rose, and RUP first. do not always find evidence. At the level of software development in China, it is difficult to give you a good example. OK? The Chinese always want to see a thing with a test field, and the rice grows well before changing rice. If you want to know the application of the above software development model abroad, you can look at the story on the rational web page. Just do it! In a word, China's software development level is very low. India's software companies can let high school students compile code, and their software engineering level can be imagined. Of course, if you are a very good programmer. It is estimated that it is awkward because programmers in China are hard to accept software engineering. You can test yourself to see if you are suitable for Learning Software Engineering:
?? 1. Can't you stand a program Program as your project manager?
?? 2. Do you think your boss is uncomfortable with the customers and exaggerating themselves?
?? 3. Do you think the first thought in your head is how to implement it?
?? 4. Do you really admire Stallman, Linus, and Microsoft?
?? 5. Did you suddenly feel bored when coding late at night and bored with your code career?
?? 1. Looking at the leopard-the mythical Indian author: "Kino" we are now in a deep sense of inferiority, and we feel that the low level of software engineering in China is already related to the issue of national inferiority.
?? Their software education level: we recruited Indians and gave them an exam similar to that in China with basic concepts and programming questions. After they are done, we are stunned by the self-recognition experts in China! Their programming questions are just copied? The program structure, annotations, and variable naming are all very similar! On the other hand, everyone in China has their own set of experts. In a new position, the previous program will be defaced first, and then more problematic code will be developed on its own. According to my company statistics, there are more than four csocket versions in one software,
?? Everyone thinks that others are doing poorly, and they need to make another one. Chinese people, in this way, will argue that "we are so creative ". In fact, the software development has long passed through the era of the hero coding, the programmer is already a blue-collar sitting in the office. You have the ability to screw a screw. Code is the lowest level.
?? 2. Project Managers in many of their companies do not understand technology at all. If a project manager in China cannot beat his subordinates technically, his subordinates will be playing tricks with him. The more he is, the more he prefers to be playing tricks. He does not know that the ultimate goal of Software creation is to make money out of others' pockets, however, we are not united internally. Technical experts gather cainiao who worship him technically, and compete with the management. In India, software managers do not understand what they are doing. Many of them are even MBA, or field experts (Industrial Design, geographic experts, etc.), rather than Coding Experts. However, they can lead a large group of well-qualified programmers to do their jobs well without internal disunity. Many Indian programmers have been in a company for a long time and do not know what code they compile all day. The task assigned to them may be the declaration of a function and the functions to be implemented by the function. What about us?
?? 3. The flow rate of their programmers has reached 30%! Their programmer turnover rate (including the flow between internal projects) is as high as 30%, and you can see how well their document level is. Their products do not depend on anyone, and anyone can resign immediately. Product Development will continue to work normally. In China, the boss is afraid of the chief engineer. The technical backbone is self-respecting and resistant to management. Any well-developed plan may be overturned by technicians or left empty with you.
?? 4. Their development plans can be hourly. If a project manager in an Indian company does not go to work, his subordinates may not know what to do. Their plans are generally set to days, with each grassroots developer working 8 hours a day. There are very few companies that can provide monthly plans, and the monthly plans are either impossible or canceled. A developer is given a task by the beginning. At the beginning of the month, he can gradually figure out what it looks like, and then get online and chat. At the end of the month and the end of the month, the coding will start to stay up late.