Many of my friends who work in the IT department of the Bank spoke to me. The self-maintained system is very SB, the framework is old and weak, the programming language syntax is cumbersome, and there are many bugs .... However, due to security and cost considerations, the company has not updated many of its partners working in the IT department of the bank. The self-maintained system is very SB, the framework is old and weak, the programming language syntax is cumbersome, and there are many bugs .... However, due to security and cost considerations, the company has not updated the reply content: When working, the anger is high, and all kinds of sarcasm;
I am glad to leave;
Two years later, I was deeply touched by the inspiration (or lessons) from this stupid system;
When I regret maintenance in three years, I complained too much and acted too little;
Five years later, I realized that the reason for my high anger was not because the system was stupid, but that I could not control it;
Eight years later, the "stupid" system needs to be maintained again;
Ten years later, I realized, "the essence of this world is chaos, not an orderly measure."
Even the boundaries between new and old technologies began to blur.
In fact, you are not modest enough to respect yourself.
Working extends tively with Legacy Code
The Software Craftsman: Professionalism, Pragmatism, Pride
Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman
I am fortunate to have experienced such a thing.
This system is an investment order system,
The customer is a major securities company in China, with a market share of 80% in a certain segment.. When the financial industry was good, we came to this company. After a long time, I found that it was not the same thing as I imagined.
At that time, the system was launched for about eight years. Bad systems are like this-outdated frameworks, missing documents, redundant functions, and chaotic version management. The first batch of developers had one more left. during this period, four or five developers were changed, with different ideas. Even few code comments, or only the parties can understand the code.
People later
Only dare to add code, dare not easily modify code. Everything
Stability first, Performance considerations, code elegance and easy to read all rely on the edge station.
Those who say that they want to rewrite the Project speak easily, and there are more complex projects than student achievement management systems (graduation design by many people ). As far as the system is concerned, the complexity and scale of the system are not the same. It is even harder to modify the code of the resigned employee. In the end, technology alone is not enough, and a large number of business logic
Knowledge of securities and futures is requiredBefore you can start (for this reason, I have also passed the securities qualification certificate ).
Not only is the system bad, but the company's management method at that time is also very problematic. The sales staff of the company have no business level. they only know that money is collected, not only can they not afford the pre-sales work,
What's even more amazing is to leave the programmer's phone number to the customer.If necessary, call the programmer to help with the change. Big Joke! I will explain the consequences to people not in the software industry:
1. unreasonable demands should be blocked, at least through group analysis. Many programmers do whatever they need, causing great harm.
2. duplicate wheel building, or the customer needs to take a tricycle as a tricycle, but there is no need for a ready-made car.
3. disrupt the development plan. the customer's needs are endless. the customer is always making the most loud demand on the side of the hand, rather than the real urgent demand.
4. too many customized projects cannot be integrated into a general edition, making future maintenance more difficult.
Some colleagues did not recognize the danger at all. Instead, they thought they were familiar with the customer and thought they were worth more. Sigh.
"Software on demand" and "hundred projects" are two good books. The company's management methods and system defects are embodied in these two books. I have been away in this company for less than a year. I often smile when I read these two books, but I feel angry but fortunate. Part of the answer to the first challenge: Some systems are stupid and don't have to be difficult for themselves. Some are technical personnel, some are too old-fashioned, and some are management personnel.
The complexity of some projects comes from the demand content, while the complexity of others comes from the brain of people. the complexity of the latter is the elimination of software theories.
The existence of software engineering theory aims to reduce the human factors and complexity of software projects, make it easier for participants to fulfill their needs, reduce bugs, and reduce delays.
In other words, the existence of software theory proves that there are many projects in the world.
Dijela said that object orientation is simply a shit, because he is a great God and does not need to go to a challenge of various changes as I waited, but we are not a great God, while traveling to others' pitfalls, they are still embedding mines at will and randomly bombing others or themselves.
In the face of a big pitfall, you can challenge yourself or leave yourself alone-it's not hard to find a job if you're not good-but if you don't admit that he is a big pitfall, there will be problems, if programmers think so, they may make their careers unhappy. if the project manager thinks so, they will make your programmers unhappy.
The fear does not solve the problem. Obviously, it is a big pitfall, and it is as awesome as the stock market knows that the bear has not been cut off, so don't complain about it.
Maybe after many years, I think of your youth. I think that was a simple problem, but I believe that first you will rarely have a clear impression on a muddy project. second, I will discuss the probability of regret, it's even harder to get stuck with regret medicine to take a framework that is not needed at the level of the majority. In mediocre or even poor system design, try to make the modules shared by you stable, easy to use, and easy to maintain.
On the other hand, I thought that I had written a good framework, set up a fairly good shelf, and was messed up by maintenance personnel, in turn, the person who maintains the system said, ah, this system is really poorly designed, so it is really bad. Congratulations, you have all made a sense of the leaders of the country, and you have a story about the bad code. If you are not careful, you will become the angle of subsequent stories. Maintaining a silly system;
This silly system was not maintained before;
This silly system is only maintained by me currently;
When I applied for a job, I told me that I would switch the system soon and switch this silly system to a awesome system;
I was so stupid that I believed this;
Everyone thinks this system is stupid;
I have proposed N solutions that make it less silly. everyone said yes after reading them;
The previous result will cost some money, and everyone will say it will be worth a while;
The last result is that the system is still stupid;
Although a dumb system is dumb, it seems more dumb to use it, so the company cannot use it;
This silly system has also become a good excuse for everyone, although many times it is innocent; so I think it is also a dumb in the eyes of everyone;
How can I save you from being stupid ......
The above is written in May 8, 2015.
Bytes ------------------------------------------------------------------------------------------------
The following is updated on August 1, May 19, 2016.
I did not expect to update it again in a year!
The reason for the update is that I am leaving.
You may be concerned about how this stupid system works? The answer is that it is still strong and stubborn!
In fact, I have a lot of stories about this system, but the last time I answered the question, I cut it down and decided to say it in a joke. My work is not about O & M, but I have fully experienced the hard work of O & M in this position! I joined the business department leaders multiple times to report the budget plan, but were canceled for different reasons! I used to promote the project at the price of resignation at two levels (the higher the level is the taboo in the workplace, so I took the project solution and the resignation report in one hand), and finally the project was successfully approved, however, when the project was just started, the company finally moved to the project, causing the project to stop!
In the end, I was disheartened this year, refused to retain the company, and decided to leave!
Sometimes I think it is ridiculous, because if I leave, it is very likely that the system will switch. In the past few years, the system has become more and more cumbersome, and historical redundant data has become more and more. conflicts with the inexplicable version of Windows 7 (the system design is based on XP) have gradually emerged, and suppliers have gradually abandoned the support of this product series. We have been repairing, repairing, and repairing. The business, finance, database, and system can only be understood by myself. I cannot find any replacement staff for this withdrawal!
What is the optimal choice for the company? How much is it to recruit a team for O & M? I don't think so! The company's best choice is: switching the system not only solves the O & M problem, but also solves the system's historical issues! In other words, the influence of my resignation is to fulfill my biggest wish when I am in service! I have seen the "model layer" and "html" and javascript. You can't say it's silly. nobody is younger. Really awesome programmers are rare. However, if a project is really created by a great programmer team, it may be difficult to establish a foothold in such a team with the ability of the subject.
Therefore, we should improve ourselves. If the big framework is not easy to change, it will start with a small part of the module. Zizi Sun and Sun are infinite.
I am anonymous because I am maintaining a bad system, and I don't want my colleagues or superiors to see my views on the current system, so as not to affect the military.
Now, let's talk about my current position as an architect.
Then why should we say it's rotten? I did not do this. I launched the Internet XX system in three months. do you think it may not be bad?
What? How do you feel?
I feel good.And I have all responsibilities from my predecessors.
Okay, no kidding. it's really okay.
The following analyzes why the analysis is poor. if you don't want to see the analysis process, you can jump to the end and look at italics, which is my real feeling.
- Let's talk about why it is so bad.:
- BecauseTime windowIt must be launched during this time period. Otherwise, the store will not be available in this village. (well, who, X, why don't you tell me earlier ?)
- Product personnelI don't have time to think about it (maybe I'm not capable). many of them are shoot their heads. all business dimensions in the system are intertwined.
- R & D personnelThere is no time to make your mind (maybe not capable). many of them are about how fast it is. what security, performance, scalability, and robustness are all shit. what can be developed is the product, the online model is always prototype.
- TesterYou don't have time to perform a thorough test (maybe not capable). you need to perform the test three times a day. I reported a bug in front of my head, and you changed your requirements. What security, performance, scalability, and robustness are all shit. what can be tested is the product, and what cannot be online is always the prototype.
- No architect or good architect(This is the main reason, and this is also the reason for my existence). Is it a special architect? Don't tell me what you don't have. you can't develop any products.
- Command by senior management personnel(It is good to be motivated, but you must do what you can, but you should not be greedy.) your major is flickering, amount, no, it is a guiding direction, not software development or product design, specialized in the industry. I am not as good as you, but I am not as good as you for guidance. However, please trust our professionals in software development and product design.
2.
Let's talk about how:
- Change one word
- Split another word
- Another word
- Last word tolerance
- The last word (really the last word) is money!
Voiceover: why not elaborate?
Me: I am telling you the details. I am still confused. I will pay the tuition fee first.
3.
Conclusion:
(The students talking in the front row are quiet. do not disturb the students sleeping in the back. The most important point is .)
I divide things
Natural disastersAnd
Man-made disasters.
For
Natural disastersIn addition to solving the problem, we can close our mouths. You are solving more and more problems. one day, you may find that you have gone so far. This proves that you have grown up. you can contact Yao Jiaxin, the boss, you can talk to your boss. well, I mean salary. Thank you for understanding it!
For
Man-made disastersThe principle I stick to is: second and second again, no more than three, or this person should leave! If he doesn't leave, you can either endure or leave!
As for losing your temper, complaining .....
Of course, it must be permitted !!!!!!
If you don't vent your emotions, it will affect my work!
No emotion. it's dead!
As for who to let out, I never let out with my wife, because I can't beat her!
There are always people in the black pot to carry back, of course, the boss cannot carry back, VP you can not afford. Therefore, I suggest you go to the gym to prevent them from being overwhelmed by tests and products :)
Above!