Source code

home page  »  file  »  Source code  »  After 12 years of delay and 6 million lines of code, what does the world's worst software development project look like?

After 12 years of delay and 6 million lines of code, what does the world's worst software development project look like?

 1.jpg

This article was written on June 24, 2008, and today it is exactly ten years. Recently, I don't know how it suddenly became popular on social media in the United States. We have excerpted some of them here See. The original author used "the project from hell" to describe this extremely terrible project.

Let's see how bad it is:

  1. More than 6 million lines of C++code

  2. More than 50000 classes

  3. The C++style used in the code is outdated, and only one compiler version is supported, and this compiler version only exists in an operating system that is no longer maintained

  4. CORBA based

  5. The company providing database software has gone bankrupt

  6. There are several layers on each layer to deal with GUI, none of which is actually maintained by the author

  7. It takes 48 hours to build on 32 parallel machines

  8. Running a user interface requires 40 to 50 synchronization processes

  9. No dynamic library link: the size of the executable file is about several hundred megabytes

  10. Starting time is about 15 minutes

  11. Average time between crashes: 30 seconds to 30 minutes

Next, let me take a look at the development experience of the worst project in the world.

Development experience

In 1996, the French government planned to develop a software with low complexity, which was outsourced to a large French technology company. The government has paid millions of euros in advance and is expected to complete the development in two or three years.

Soon, the company hired several developers to start the work. As cash began to flow in, the team size doubled every three months or so.

Seven years later, the team has not yet developed a decent product. The team faces a fine of thousands of euros per day due to overdue. The management decided to reduce costs, fired all previous developers, and hired many new developers with little development experience.

Ten years later, in view of the poor situation of the project, the middle managers decided to hire some people with software engineering experience to get the project back on track. During this period, the average frequency of personnel changes is 3 months (the shortest legal time to leave after employment in France).

Twelve years later, the project continued. The company made up for the daily punishment by submitting more and more change requests to the government.

It is said that several years later, the boss of the main project was finally put in prison for fraud.

User experience

In addition to spending more than 10 years, the user experience is also a mess. Take a random example:

A developer was asked to check why the right click interface application would not respond. After several days of careful inspection, he found that right clicking works normally. "Just" takes about 45 minutes to pop up the menu. Because every time you right-click the main window, the menu will be generated dynamically from very large content.

In some cases, users report that "loading data from CD-ROM" does not work at all. It took several weeks to figure out this problem. At last, the bug report was marked as' solved 'because the data was actually being loaded. The only thing is that it takes 7 days to read 700M data.

What did you do wrong

So what did the team do wrong to create such a "hell class" project?

First, this project is developed in C++. Not that C++is bad, but that C++is one of the most complex computer languages in the world. Faced with such an endless complex maze, many geeks go deep into the study without fear, and finally have to encounter a lot of problems. Many people quickly turn to other languages after they have been exposed to C++. In this project, it is really a "purgatory" for so many newcomers without any software engineering experience.

Secondly, this project has 6 million lines of code. Maintaining so many lines of code in any language is a daunting task. Imagine that a team must maintain 6 million lines of code, which is crazy in the field of software engineering. Speaking of the image point, if you want to read all the lines at the speed of one line per second, you will spend 70 days in front of the screen without sleep.

Next is rough version control. After several years of the project, someone in the team proposed the idea of using version control tools. The first attempt was not satisfactory, so the team switched to another system, and then moved to another system several years later, losing all history with each change. The final tool selected is a "disaster" with a graphical user interface. A team composed of four people is specially set up to deal with most maintenance problems on version control software, including the following:

– Making the first checkout requires an appointment with the version control team, which is usually authorized one week later.

– It is not allowed to edit the file without the authorization of the middle management. The manager must be informed in advance of which documents to edit, and then send an official license request, and then submit it to the version control team for implementation within a few days.

– Each modification of the code will trigger a branch, which means that all received modifications must be merged. You may think that it is rare for two people to work on the same document, but it turns out that most of the work occurs in the same document.

– Checkin needs to go through a painful process. Through this process, your code is reviewed by automated error detection software, and finally reviewed by intermediate managers. Undoubtedly, this does not solve the problem that bugs grow faster than developers can remove them. A closer look at the number of registration errors shows that each defect correction brings twice as many errors as the correction.

– Version control is really simple. The old software is version 1, today's software is version 2, and the future software is version 3. No one really knows which version has been delivered to the customer.

Then there is the factor of Peopleware. As the saying goes: pay is proportional to return. Since many people have no experience in software engineering, it must not be surprising that bugs keep popping up. A really smart manager must realize that in a pure software project, human cost is the main source of cost. Instead of following this rule, the company decided to fire all those with development experience, but left all project managers in the company.

There are 55 people, 20 developers and 35 managers in the team. Yes, there are more managers than actual developers. Managers constantly organize meetings and repeatedly demonstrate the same PPT, while developers chat in the spacious open office to kill time.

Few managers have experience in software engineering. At that time, SCO was suing IBM for Linux. Even though the whole thing was just a bluff, it did work for these people, who all knew that they would soon have to pay for free software. None of them mentioned "free software", but they all know "free software". Needless to say, this project uses GNU libraries everywhere. These people have no idea that this will turn the whole project into a huge project that is incompatible with GNU. However, considering the terrible quality of this project, no one will insist that they release the software source code.

The last thing to say is poor human management. Just give a few examples and you will understand:

– It is not allowed to go to work after 9 o'clock. One day, the on-site manager stayed behind the door and fired everyone who came in after 9:01 a.m., including some managers and sales staff.

– Smokers need to go out from time to time, so they will do things slowly. The management tried to force everyone to stop smoking, but it didn't work.

– Coffee drinkers write slower than non coffee drinkers, so the coffee machine will "break down" for several days every month.

– When officials visit, they will turn off the coffee machine, leaving the impression that everyone is working.

– The toilet is the most disgusting I've ever seen. They may think that it is better to spend less time in the toilet and work more time.

Finally, if you think your work is too bad, think about this project

fabulous ( zero )

This article is written by Contributors Author, article address: https://blog.isoyu.com/archives/tuolezhengzheng12nian6baiwanxingdaimaquanshijiezuilanderuanjiankaifaxiangmuchangshenmeyang.html
use Knowledge Sharing Attribution 4.0 International License Agreement. Unless the reprint/source is indicated, they are all original or translated by this website. Please sign your name before reprinting. Last editing time: June 27, 2018 at 07:30 p.m

Popular articles

Post reply

[Required]

I am a human?

Please wait three seconds after submission to avoid unsubmission and repetition