As long as there are software projects, the world is wondering why they fail so often.
只要有软件项目,世界就会想知道为什么他们经常失败。
I would like to know if there is a list or something equivalent which shows how many software projects fail today. Would be nice if there would be a comparison over the last 20 - 30 years.
我想知道是否有一个列表或类似的东西,显示今天有多少软件项目失败。如果在过去的20 - 30年间进行比较会很好。
You can also add your top reason why a software project fails. Mine is "Requirements are poor or not even existing." which includes also "No (real) customer / user involved".
您还可以添加软件项目失败的主要原因。我的是“要求很差甚至不存在。”其中还包括“无(真实)客户/用户参与”。
EDIT: It is nearly impossible to clearly define the term "fail". Let's say that fail means: The project was more than 10% over budget and time. In my opinion the 10% + / - is a good range for an offer / tender.
编辑:几乎不可能清楚地定义术语“失败”。假设失败意味着:该项目超出预算和时间的10%以上。在我看来,10%+ / - 是一个很好的报价/招标范围。
EDIT: Until now (Feb 11) it seems that most posters agree that a fail of the project is basically a failure of the project management (whatever fail means). But IMHO it comes out, that most developers are not happy with this situation. Perhaps because not the manager get penalized when a project was not successful, but the lazy, incompetent developer teams?
编辑:直到现在(2月11日)似乎大多数海报都认为项目失败基本上是项目管理的失败(无论失败意味着什么)。但恕我直言,大多数开发人员对这种情况并不满意。也许是因为当项目不成功时,经理不会受到惩罚,而是懒惰,无能的开发团队?
When I read the posts I can also hear-out that there is a big "gap" between the developer side and the managment side. The expectations (perhaps also the requirements) seem to be so different, that a project cannot be successful in the end (over time / budget; users are not happy; not all first-prio features implemented; too many bugs because developers were forced to implement in too short timeframes ...)
当我阅读帖子时,我也可以听到开发者方和管理方之间存在很大的“差距”。期望(也许也是要求)似乎是如此不同,一个项目最终不能成功(随着时间的推移/预算;用户不满意;不是所有的第一prio功能实现;太多的错误,因为开发人员*在太短的时间内实施...)
I',m asking myself: How can we improve it? Or do we have the possibility to improve it? Everybody seems to be unsatisfied with the way it goes now. Can we close the gap between these two worlds? Should we (the developers) go on strike and fight for "high quality reqiurements" and "realistic / iteration based time shedules"?
我问自己:我们怎样才能改善它?或者我们是否有可能改进它?每个人似乎对现在的方式都不满意。我们能缩小这两个世界之间的差距吗?我们(开发商)是否应该继续罢工并争取“高质量的反应”和“基于现实/迭代的时间表”?
EDIT: Ralph Westphal and Stefan Lieser have founded a new "community" called: Clean-Code-Developer. The aim of the group is to bring more professionalism into software engineering. Independently if a developer has a degree or tons of years of experience you can be part of this movement.
编辑:Ralph Westphal和Stefan Lieser创建了一个名为“Clean-Code-Developer”的新“社区”。该小组的目标是为软件工程带来更多的专业性。如果开发人员拥有学位或数年的经验,您可以独立参与此活动。
Clean Code Developers live principles like SOLID every day. A professional developer is the biggest reviewer of his own work. And he has an internal value system which helps him to improve and become better.
清洁代码开发人员每天都像SOLID一样遵循原则。专业开发人员是他自己工作的最大评论者。他有一个内部价值体系,可以帮助他改善并变得更好。
Check it out on: Clean Code Developer
请查看:清洁代码开发人员
EDIT: Our company is doing at the moment a thing called "Application Development and Maintenance Benchmarking". This is a service offered by IBM to get a feedback from someone external on your software engineering process quality etc. When we get the results, I will tell you more about it.
编辑:我们公司目前正在做一个名为“应用程序开发和维护基准测试”的事情。这是IBM提供的服务,用于获取外部人员对您的软件工程过程质量等的反馈。当我们得到结果时,我会告诉您更多相关信息。
26 个解决方案
#1
Bad management.
Projects are not successes or failures based on some underlying feature of the project, but on whether they fulfill the needs of the users. (They can fail altogether, in which case there was a gross misstatement of what was possible.) It is mostly in the process of evaluating the feasibility and cost-benefit ratio of the project, and establishing goals, that software projects tend to fail or succeed.
项目不是基于项目的某些基本功能的成功或失败,而是基于它们是否满足用户的需求。 (它们可能完全失败,在这种情况下,对可能的事情存在严重错误。)主要是在评估项目的可行性和成本效益比,确定目标,软件项目往往失败或成功。
There's a disconnect between people who deal with facts and things (like programmers) and people who deal with other people (like sales types and managers). To a programmer, the facts are the facts, and have to be dealt with. To a sales person, the facts are what other people think, and are changeable.
处理事实和事物的人(如程序员)与处理其他人(如销售类型和经理)的人之间存在脱节。对于程序员来说,事实是事实,必须加以处理。对于销售人员来说,事实是其他人的想法,并且是可变的。
There's also differences between tangible and intangible facts. Nobody thinks that workers could build a large bridge in a month if they were really motivated; they can see all the steel and concrete and other stuff that has to be moved and fixed into position. Software is much less tangible, and lacks the physical restrictions: while it is not even theoretically possible to build the bridge within a month, it is conceivable that a team could create a large project within a month, as "all" they have to do is get everything right the first time. It is physically possible to type thousands of lines of code a day; it's just that the chance that they're usable as is is so close to zero it doesn't matter. The actual productivity of a top developer is actually pretty unimpressive in word count, compared to (say) the productivity of a journalist.
有形和无形事实之间也存在差异。如果真的有动力,没有人认为工人可以在一个月内修建一座大桥;他们可以看到所有钢筋混凝土和其他必须移动并固定到位的东西。软件不那么有形,缺乏物理限制:虽然理论上在一个月内建立桥梁甚至没有可能,但可以想象一个团队可以在一个月内创建一个大型项目,因为他们必须做的“全部”第一次就把一切都弄好了。实际上每天可以输入数千行代码;只是它们可以按原样使用的几率非常接近零并不重要。与(比如)记者的生产力相比,*开发者的实际生产力实际上在字数上相当不起眼。
Therefore, those who are used to flexible facts don't have the imposing physical limits to remind them that things can be pushed only so far, no appreciation for what programming actually requires, and no good feel for how much productivity is realistically possible. Moreover, they know how to get their way in negotiations, much more than the average developer, so in negotiations about what's possible they tend to assume more than they can, in the real world, get.
因此,那些习惯于灵活事实的人没有强大的物理限制来提醒他们事情只能推到目前为止,不了解编程实际需要什么,也没有好好感受到实际可行的生产力。此外,他们知道如何在谈判中取得进展,远远超过普通开发人员,所以在谈判中他们倾向于在现实世界中承担的可能性超过他们所能做到的。
In the meantime, software development is inherently fuzzy, because producing the physical product is trivial. I can produce a copy of software quickly and cheaply, once it's been developed. Software development is design work, pure and simple. Anything corresponding to manufacturing is ruthlessly eliminated with such things as compilers and wizards and code generation. The developer, faced with the manager who wants the impossible, finds it hard to say the impossible is actually impossible, because there's no way to say it's actually impossible. Given facts that are unknown enough to feel flexible, the person with strong negotiating skills and determination will typically get the answer he or she wants.
与此同时,软件开发本质上是模糊的,因为生产实物产品是微不足道的。一旦开发完成,我就可以快速而廉价地制作软件副本。软件开发是设计工作,纯粹而简单。通过诸如编译器和向导以及代码生成之类的东西,无情地消除了与制造相对应的任何东西。面对想要不可能的经理的开发人员发现很难说不可能实际上是不可能的,因为没有办法说这实际上是不可能的。鉴于事实不足以让人感到灵活,具有强大谈判技巧和决心的人通常会得到他或她想要的答案。
Given this disconnect, one might ask whose responsibility it is to bridge it. The answer is, in my opinion, clear. The responsibility for understanding how different people think belongs to the people who specialize in dealing with other people. The responsibility for coordinating different types of people belongs to the people whose job it is to coordinate these things. Therefore, managers.
鉴于这种脱节,人们可能会问,应该由谁来弥合它。在我看来,答案很明确。理解不同人的思维方式的责任属于专门与他人打交道的人。协调不同类型人员的责任属于协调这些事情的人。因此,经理。
Managers who do understand software development and developers, and can deal well with other managers, will do well, and their projects will generally succeed. There are still far too many of the other type in the world.
了解软件开发和开发人员,并且能够很好地与其他经理打交道的经理人会做得很好,他们的项目通常会成功。世界上还有太多的其他类型。
#2
Not a direct answer, but I found the Virtual Case File to be a fascinating case study on how a big government-backed well-funded project can still tank.
这不是一个直接的答案,但我发现虚拟案例档案是一个引人入胜的案例研究,研究一个由*支持的大型资金充足的项目如何能够成功。
You can also add your top reason why a software project fails.
您还可以添加软件项目失败的主要原因。
Another IEEE Spectrum Online article "Why Software Fails" examines this very question. It summarizes the major points as follows:
另一篇IEEE Spectrum Online文章“为什么软件失败”检查了这个问题。它总结了以下主要观点:
- Unrealistic or unarticulated project goals
- Inaccurate estimates of needed resources
- Badly defined system requirements
- Poor reporting of the project's status
- Unmanaged risks
- Poor communication among customers, developers, and users
- Use of immature technology
- Inability to handle the project's complexity
- Sloppy development practices
- Poor project management
- Stakeholder politics
- Commercial pressures
不切实际或不明确的项目目标
对所需资源的估计不准确
系统要求定义不明确
报告项目状况不佳
客户,开发人员和用户之间的沟通不畅
使用不成熟的技术
无法处理项目的复杂性
邋development的开发实践
项目管理不善
#3
Poor planning.
#4
It always takes longer than you expect, even when you take Hofstadter's Law into account.
即使考虑到Hofstadter定律,它也总是比您预期的要长。
#5
Mismanagement.
SW project get started by throwing developers against a perceived problem. Business requirements crystallize as the project progresses. New functionality gets added while deadlines stay put. More developers are thrown in. Original project members quit or get fired. By this point too much time, money and resources is invested in the project so it cannot be canceled. As the deadline passes the project is declared finished and successful despite the obvious lack of finished product.
SW项目通过让开发人员针对感知问题开始。随着项目的进展,业务需求趋于明确。在截止日期前加入新功能。投入更多开发人员。原始项目成员退出或被解雇。到目前为止,太多的时间,金钱和资源投入到项目中,因此无法取消。截止日期过后,尽管明显缺乏成品,但项目已宣告完成并取得成功。
Come to think of it - I've jet to see a SW project fail...
来想一想 - 我看到一个SW项目失败了......
#6
Honestly, I think its because most programmers are not very good at what they do(and I don't mean just cranking out code). People on * are probably the exception. I don't know about the rest of you but as a consultant/contract programmer I have worked in or around many places, and the ratio of mediocre or poor programmers to good ones is about 10 to 1.
老实说,我认为这是因为大多数程序员并不擅长他们的工作(我并不仅仅意味着只是编写代码)。 *上的人可能是例外。我不知道你们其他人,但作为一名顾问/合同程序员,我曾在许多地方或周围工作,平庸或差的程序员与好的程序员的比例约为10比1。
One of my strengths has always been estimating accurately and then delivering on time and on or under budget - I always aim for coming in 10% under cost and on time. Then I like to tell my client that because I got things done for less $$ than expected, which of the "extras" would you like to add in?
我的优势之一始终是准确估算,然后准时交付,在预算内或预算不足 - 我总是希望在成本和准时下达到10%。然后我想告诉我的客户,因为我做的事情比预期的少了$$,你想加入哪些“额外”?
Even a perfectly functioning product that is late and/or over budget will be considered a failure by many business managers. Programmers often focus on just the technical aspects of what they do, with little regard for the cost or deadline. You really need to do all three well for it to be deemed successful project. There are many other programmers that could code circles around me without a doubt, but for the person paying for the project, that is rarely enough.
即使是功能完善且迟到和/或超出预算的产品,也会被许多业务经理视为失败。程序员通常只关注他们所做的技术方面,而不考虑成本或截止日期。你真的需要做好这三件事才能被认为是成功的项目。还有很多其他程序员可以毫无疑问地在我周围编码圈子,但对于支付项目的人来说,这很少。
#7
It is because no-one seems to read anymore. Every single reason why projects fails has been analyzed time and time again. You only have to read three books to know why 80% of projects fail:
这是因为似乎没有人再读。项目失败的每一个原因都经过一次又一次的分析。您只需要阅读三本书就可以了解80%的项目失败的原因:
The Deadline: A Novel About Project Management (Tom Demarco, published 1997) It's a great introduction and it's pretty entertaining. Peopleware : Productive Projects and Teams (Tom Demarco, published 1987) The Mythical Man-Month: Essays on Software Engineering (Fred *s, published 1975)
截止日期:关于项目管理的小说(Tom Demarco,1997年出版)这是一个很棒的介绍,非常有趣。 Peopleware:富有成效的项目和团队(Tom Demarco,1987年出版)The Mythical Man-Month:Essays on Software Engineering(Fred *s,1975年出版)
We as a profession simply seem to forget everything every 3-5 years (see "centralised computing is inefficient; let the clients handle it" vs cloud computing).
我们作为一个职业似乎每3 - 5年就会忘记一切(参见“集中计算效率低下;让客户处理它”与云计算相比)。
#8
(From a programmers point of view - I'm not a project managemer, but I've often been involved in the process).
(从程序员的角度来看 - 我不是项目管理员,但我经常参与这个过程)。
A number of people have mentioned that bad programmers are endemic. But I think this is true in another sense as well - we're all bad programmers in that we find it difficult to anticipate complexity, an unavoidable issue that 50 years of magic bullet estimation and planning schemes have failed to solve.
很多人都提到坏程序员是地方性的。但我认为在另一种意义上也是如此 - 我们都是糟糕的程序员,因为我们发现难以预测复杂性,这是50年的魔法估计和计划方案未能解决的不可避免的问题。
Anticipating the side effects of large projects gets exponentially more difficult as projects grow. This is a dull truism, for sure, but for me it means that on any project I've worked on where I've been involved in the estimating process I've run into some case where there's an unanticipated consequence of a design decision that causes everything to come to a grinding halt, or at least a few days of bugfixing - just something that nobody foresaw, not any sort of malpractice or stupidity. It's just the nature of a complex enough system.
随着项目的发展,预计大型项目的副作用会越来越难以预测。当然,这是一个沉闷的老生常谈,但对我而言,这意味着在我参与估算过程的任何项目中,我遇到了一些设计决策出现意外后果的情况。导致一切都停止,或至少几天的错误修正 - 只是没有人预见的事情,而不是任何形式的弊端或愚蠢。这只是一个足够复杂系统的本质。
Aside from the built-in uncertainty, there's also a tendency to underestimate things whose outline is known, because the fact that they have less uncertainty makes them seem simpler to implement.
除了内置的不确定性之外,还有一种趋势是低估其轮廓已知的事物,因为它们具有较少的不确定性使得它们看起来更简单。
So the uncertain stuff gets magnified, the clear stuff gets minimized, and what really kills you is the thing that you didn't think would be uncertain.
因此,不确定的东西会被放大,清晰的东西会被最小化,真正杀死你的东西就是你认为不会不确定的东西。
#9
The number one reason: a failure of project management.
首要原因是:项目管理失败。
A PM's raison d'etre is to make a project succeed, ergo a project failure is their failure. Certainly there are factors beyond their control, but it's still within the PM's job description to manage that risk, and the only get out clauses should be someone higher up the food chain taking decision control (which is a terrible thing to do to a PM) or acts of god.
PM的存在理由是让项目成功,因为项目失败是他们的失败。当然有一些因素无法控制,但它仍然在PM的职责描述中来管理这种风险,而唯一的退出条款应该是在食物链上方做出决策控制的人(这对PM来说是一件可怕的事情)或上帝的行为。
In my experience failures mostly occur when PM work has been fast and loose or non-existant, including when decisions start to flow from sales people and when the client starts decreeing change control. A good PM is priceless.
根据我的经验,失败主要发生在PM工作快速,松散或不存在时,包括决策开始从销售人员流出以及客户何时开始批准变更控制时。一个好的PM是无价的。
#10
Failure is a judgement -- more of an accusation, really.
失败是一种判断 - 更多的是指责,真的。
"The project was more than 10% over budget and time."
“该项目超出预算和时间的10%以上。”
Which budget? Which schedule?
哪个预算?哪个时间表?
6 months ago, I wrote a plan saying it would take 6 months.
6个月前,我写了一个计划,说需要6个月。
3 months ago, the users asked for more stuff. I gave them a plan that said it would take 9 more months.
3个月前,用户要求更多东西。我给了他们一个计划,表示还需要9个月。
Last month I was told that the project was 6 months over budget and therefore a "failure".
上个月我被告知该项目超出预算6个月,因此“失败”。
But wait. It delivered what the users wanted. It was over the "original" estimate. It was under the revised estimate. The users want more. IT wants less.
可是等等。它提供了用户想要的东西。这超过了“原始”估计。这是在修订后的估计数之下。用户想要更多。 IT要少。
#11
I'll approach it from a different aspect than most the rest here.
我将从与其他大多数不同的方面来处理它。
I've noticed a project slowly fail over a period of time. Sure, it's gotten better in that time too--but it still isn't profitable. In this market profitability, and being in the black, means success.
我注意到一个项目在一段时间内缓慢失败。当然,它在那个时候也变得更好 - 但它仍然没有盈利。在这个市场中,盈利能力和黑色,意味着成功。
Why is it failing? I think it's simple: you get what you pay for.
它为什么失败?我认为这很简单:你得到你付出的代价。
Software is like a bank account, not primordial ooze. If you don't put resources into it (time, money, focus, effort) then you won't get anything out of it except failure and cost. So you must invest things into your project, and sometimes the earliest work sets the stage for years to come. You can't throw mud at your computer and expect a new mouse in two years and $10 million dollars later, so likewise there must be effort expended.
软件就像一个银行账户,而不是原始的软泥。如果你没有把资源投入其中(时间,金钱,重点,努力),那么除了失败和成本之外你不会得到任何东西。因此,您必须在项目中投入资金,有时最早的工作将为未来几年奠定基础。你不能在你的计算机上乱扔泥土,并期望在两年内投入一只新的鼠标,然后再投入1000万美元,所以同样必须花费精力。
One of the biggest problems today are "budget developers" in a third-world country. I don't begrudge them their part of the market, but for a well-funded Silicon Valley startup to seek them out and get a budget foundation (framework or even prototype) is to make a poor investment in the future. This very same budget framework is what is causing my friends so much of a hassle today. It works now; it worked when it was written, but it wasn't written well and few even take the time to maintain it. Were the company to stop and rewrite the software the way it should have been written in the first place they wouldn't have all this trouble. Can they afford the time? Nope. They have to make it profitable before they can even thing of it.
今天最大的问题之一是第三世界国家的“预算开发者”。我并不嫉妒他们是市场的一部分,但对于资金充足的硅谷创业公司来说,寻找他们并获得预算基础(框架甚至原型)是为了在未来做出糟糕的投资。这个相同的预算框架正是导致我的朋友今天麻烦的原因。它现在有效;它在编写时起作用,但它写得不好,甚至很少花时间来维护它。公司是否应该按照应该首先编写的方式来停止和重写软件,他们不会遇到所有这些麻烦。他们能负担得起时间吗?不。他们必须先赚钱,然后才能做到这一点。
As the saying goes, "I can make it: cheap, fast or good. Now, pick any two of those." Everyone wants all three, myself included. But if you don't invest the time, planning, and work required to make your project a success from the start ... then don't expect anything you can be proud of later. It'll feel like a forged Mona Lisa where you, and every other engineer like you, can see a defect here and there that shouldn't have been there from the start.
俗话说,“我能做到:便宜,快速或好。现在,挑选其中任何两个。”每个人都想要这三个人,包括我自己。但是,如果你不投入时间,计划和工作,从一开始就让你的项目取得成功......那么不要指望你以后可以为之感到骄傲。感觉就像一个伪造的蒙娜丽莎,你和其他像你一样的工程师都可以看到这里和那里的缺陷从一开始就不应该存在。
So:
- Don't undertake what you cannot afford in: time, money, effort, focus, etc.
- Don't skip planning!
- Don't be afraid to rewrite early when it counts the most. (Later it'll be worse than a trip to the dentist, believe me.)
- Don't underestimate the power of bureaucracy to prevent you from doing it right.
- And don't be cheap where you should spend the most of your time. It will cost you later, guaranteed. And if not you, then someone else will take the bullet for you.
不要承担你无法负担的费用:时间,金钱,努力,专注等。
不要跳过计划!
当它最重要时,不要害怕提前重写。 (相信我,这会比看牙医的旅行更糟糕。)
不要低估官僚机构阻止你做对的权力。
在你应该花费大部分时间的地方不要便宜。保证,以后会花费你。如果不是你,那么其他人会为你取下子弹。
#12
One common mistake is that sales people and technical people do not communicate sufficiently. So the salespeople sell things that are technically not feasable within budget. (And then they run with their bonus :) )
一个常见的错误是销售人员和技术人员没有充分沟通。因此,销售人员在预算范围内销售技术上不可行的东西。 (然后他们用他们的奖金运行:))
#13
Being over budget and time is not a good definition of failure (and actually being in budget and time doesn't always mean success). Take the following examples provided by Hugh Woodward, PMP, in Expert Project Management - Project Success: Looking Beyond Traditional Project Metrics:
超出预算和时间并不是失败的良好定义(实际上在预算和时间并不总是意味着成功)。请参阅Hugh Woodward,PMP在专家项目管理中提供的以下示例 - 项目成功:超越传统项目指标:
Sydney Opera House: With its graceful sails dominating Sydney Harbor, the Sydney Opera House is arguably one of the most recognized buildings in the world. Yet, from a project management perspective, it was a spectacular failure. When construction started in 1959, it was estimated to cost $7 million, and take four years to build. It was finally completed in 1973 for over $100 million.
悉尼歌剧院:悉尼歌剧院以其优美的帆在悉尼港占主导地位,可以说是世界上最知名的建筑之一。然而,从项目管理的角度来看,这是一次惊人的失败。当建筑工程于1959年开始时,估计耗资700万美元,并需要四年时间才能建成。它最终于1973年以超过1亿美元的价格完成。
[...]
Project Orion: This massive effort to develop Kodak's new Advantix photographic system was reputedly very well managed from a project management perspective. PMI recognized it as the 1997 International Project of the Year, and Business Week selected the system as one of the best new products of 1996 (Adams, 1998). But Kodak's stock price has fallen 67% since the introduction of the Advantix system, in part because it failed to anticipate the accelerating switch to digital photography.
项目猎户座:从项目管理的角度来看,开发柯达新的Advantix摄影系统的巨大努力据称得到了很好的管理。 PMI认为它是1997年度国际项目,而商业周刊将该系统选为1996年最佳新产品之一(Adams,1998)。但自推出Advantix系统以来,柯达的股价已经下跌了67%,部分原因是因为它没有预料到加速转向数码摄影。
Corporate Intranet: Finch describes a project that involved the implementation of a corporate intranet to globalize and improve communications. From a traditional project perspective, it failed to meet its success criteria, but not significantly. It was one month late and believed to have been accomplished with a small budget overrun. But both the project manager and senior management viewed the project as successful. The hardware and software had been installed successfully with a minimum of disruption, thereby providing all staff members with access to the corporate intranet. Following implementation, however, employees made only limited use of the intranet facilities. The main objective of the project was therefore not achieved. In this case, both the project manager and senior management focused on an objective that was too narrow.
企业内部网:Finch描述了一个涉及实施企业内部网以实现全球化和改善通信的项目。从传统的项目角度来看,它未能达到其成功标准,但并不显着。这是一个月的晚了,据信是在预算超支的情况下完成的。但项目经理和高级管理层都认为该项目是成功的。硬件和软件安装成功,中断时间最短,从而为所有员工提供访问企业内部网的权限。但是,在实施之后,员工只能有限地使用内部网设施。因此,该项目的主要目标没有实现。在这种情况下,项目经理和高级管理层都关注过于狭隘的目标。
[...]
Manufacturing Plant Optimization: A paper manufacturing company with five plants across North America decided to increase its manufacturing capacity by embarking on a de-bottlenecking program. A project team was formed to install the necessary equipment, and charged with completing the work in 18 months at a cost of $26 million. But almost immediately, the project team was asked to defer major expenditures until an unrelated cash flow problem was resolved. Rather than stop work completely, the team adopted a strategy of prototyping the technologies on which the de-bottlenecking program was based, and actually developed some cheaper and more effective solutions. Even when the project was authorized to proceed, the team continued this same approach. The project eventually spanned five years, but the resulting capacity increase was three times the initial commitment. Not surprisingly, the company immediately appropriated another $40 million to continue the program.
制造工厂优化:一家在北美拥有五家工厂的造纸公司决定通过开展一项去瓶颈计划来提高其制造能力。成立了一个项目小组来安装必要的设备,并负责在18个月内完成工作,费用为2600万美元。但几乎立即,项目团队被要求推迟重大支出,直到一个不相关的现金流问题得到解决。该团队没有完全停止工作,而是采用了一种策略,即对去瓶颈计划所依据的技术进行原型设计,并实际开发出一些更便宜,更有效的解决方案。即使项目被授权继续进行,该团队也继续采用同样的方法。该项目最终延长了五年,但由此产生的产能增长是初始承诺的三倍。毫不奇怪,该公司立即拨款4000万美元继续该计划。
[...]
So in these examples, which ones were truly successful? Examples like the 2002 Winter Olympics and the Batu Hijau Copper Concentrator would suggest that these are truly successful because they not only met the traditional project managers' definition of success, but also met the projects sponsors' perception of success.
那么在这些例子中,哪些是真正的成功?像2002年冬季奥运会和Batu Hijau铜矿选矿厂这样的例子表明,这些都是真正成功的,因为它们不仅满足了传统项目经理对成功的定义,而且还满足了项目赞助商对成功的看法。
As we start to look at the examples like Project Orion, the Corporate Intranet and the Laptop Upgrade, we notice that the traditional metrics start to fail. These projects are considered successes in project managers' definition of success, but failed at meeting the sponsors' success criteria. The project Orion example is quite astounding as this project was recognized by PMI (Project Management International) in 1997 as the International project of the year. Yet it did not increase Kodak's revenue, because they did not foresee the adoption of digital cameras.
当我们开始查看Project Orion,Corporate Intranet和Laptop Upgrade等示例时,我们注意到传统指标开始失败。这些项目被认为是项目经理对成功定义的成功,但未能达到赞助商的成功标准。 Orion的项目非常令人震惊,因为该项目于1997年被PMI(项目管理国际)认可为年度国际项目。但它没有增加柯达的收入,因为他们没有预见到数码相机的采用。
Most interesting are the examples of the Manufacturing Plant Optimization and the Sydney Opera House. They both failed to meet the traditional project managers' success metrics but were in fact considered successes. This is particularly shocking when you see that the Sydney Opera House had a "cost overrun of 1300%" and a "schedule overrun of 250%".
最有趣的是制造工厂优化和悉尼歌剧院的例子。他们都未能满足传统项目经理的成功指标,但实际上被认为是成功的。当你看到悉尼歌剧院的“成本超支1300%”和“超出250%的时间表”时,这尤其令人震惊。
Once we realize that projects can fail to meet the traditional metrics of success, but still be successful to the stakeholders, this creates a quandary for the project manager. How does one really define success? Is it possible that a "Challenged" project could be canceled that would have met the sponsors' needs? Is it also possible to identify a project that should be canceled that is currently on time, on budget and meeting the defined needs?
一旦我们意识到项目无法满足传统的成功指标,但仍然对利益相关者来说是成功的,这就会给项目经理带来困惑。一个人如何真正定义成功?是否有可能取消可能满足赞助商需求的“挑战”项目?是否还可以确定一个应该在当前准时,预算和满足定义的需求的项目?
What do you think of that conclusion? How do you really define success?
你怎么看待这个结论?你如何真正定义成功?
#14
My answer is rather unusual from the rest of this, but quite common around here: killer bugs. I had a project go an extra two weeks (50% extra time) because of one switch in source that I didn't know about until I dug through the source code (there was nothing documented in help or on the web).
我的答案在其他方面相当不寻常,但在这里很常见:杀手锏。我有一个项目需要额外两周(50%的额外时间),因为在我挖掘源代码之前,我不知道有一个源代码切换(帮助或网络上没有任何记录)。
#15
People/companies do not proudly shout about their failures, so many cases wont be ever heard.
人们/公司并不自豪地大吼大叫他们的失败,因此很多案例都听不到。
#16
Poor use of practices and software development methods. In my experience, one of the big reasons a project failed its that the development team use a wrong method to face the software development process. Choosing a methodology without having a good understanding of how it works and what it takes, can bring a time consuming issues to a project, like poor planning.
使用不当的做法和软件开发方法。根据我的经验,项目失败的一个重要原因是开发团队使用错误的方法来面对软件开发过程。选择一种方法而不能很好地理解它的工作原理和方法,可能会给项目带来耗时的问题,比如计划不周。
Also a common problem is also the use of technologies without a previous evaluation of it to understand how it can be applied, and if it brings any value to the project.
另外一个常见的问题是,如果没有先前的评估技术,使用技术来理解如何应用它,以及它是否为项目带来任何价值。
#17
There have been some good studies done on this. I recommend this link from the Construx website (Steve McConnells company).
对此进行了一些很好的研究。我建议从Construx网站(Steve McConnells公司)获取此链接。
#18
The Construx link above is real good!
上面的Construx链接真的很棒!
Many projects are managed on a rosy picture of reality. Managers tend to power talk developers into optimistic estimates. But say a 20 week projects gets "talked down" to 10 weeks. The requirements phase will now be 1 week instead of 2. After 1 week, the requirements aren't finished, but the project moves on. Now you're working on shaky ground-- and on a stretched schedule!
许多项目都是按照现实的美好图景进行管理的。管理人员倾向于让谈话开发人员乐观地估计。但是说,一个20周的项目被“谈到”到10周。需求阶段现在是1周而不是2.在1周后,需求尚未完成,但项目继续进行。现在你正在努力工作 - 并且时间紧迫!
This can be funny. Once there was this old guy in a room opposite mine. His job title was system adminstrator. But the system he was supposed to adminsiter wasn't there. It had never been finished, although management thought it had been. The guy played games for about a year before he got bored and moved on.
这可能很有趣。曾经有一个老家伙在我家对面的房间里。他的职称是系统管理员。但他应该管理的系统并不存在。虽然管理层认为已经完成,但它从未完成。这家伙玩了大约一年的游戏,然后感到无聊并继续前进。
The funniest part? Management put up a new job opening after he left!
最有趣的部分?他离开后,管理层开了一个新职位!
#19
IT Project Failures is a blog about project failures that may have a few answers here if one wants to read about it.
IT项目失败是一个关于项目失败的博客,如果想要阅读它,可能会有一些答案。
Myself, I think a large part of this lands on the question of being able to state exactly what is expected in x months at $y when really the answer is much more open-ended. For example, if a company is replacing an ERP or CRM system, there is a good chance that one isn't going to get all the requirements exactly right and thus there will be some changes, bug fixes and extras that come from taking on such a large project. For an analogy consider how many students entering high school or university could state their precise schedule for all 4 years without taking any classes and actually stick to that in the end. My guess would be very few do that as some people change majors or courses they wanted to take aren't offered or other things happen that change what the expected result is but how is this captured in a project plan that we started here and while we thought we were going there, we ended up way over in spot number three.
我自己,我认为其中很大一部分问题在于能够准确地说明在x个月时的预期结果是什么,而真正的答案是更开放的。例如,如果一家公司正在更换ERP或CRM系统,那么很可能一个人不能完全正确地获得所有要求,因此会有一些变化,错误修复和额外的事情来自一个大项目。举一个类比,考虑进入高中或大学的学生有多少可以在没有参加任何课程的情况下陈述他们所有4年的精确时间表,并最终坚持这一点。我的猜测是很少这样做,因为有些人改变他们想要采取的专业或课程没有提供或其他事情发生改变预期的结果但是如何在我们从这里开始的项目计划中捕获这些我以为我们要去那里,我们最终在现场排名第三。
#20
The last statistic that I heard was that 90% of projects are either over time or over budget. So if you consider that failing, quit a bit.
我听到的最后一个统计数据是,90%的项目要么超出预算,要么超出预算。所以,如果你认为失败了,请稍微退一步。
The reason why it fails mainly lies on process. We as software engineers don't do a good job of gather requirements, and controlling the customer. Because building software is a "mysterious" job to people outside of IT, it is difficult for them to understand why last minute changes are difficult. It's not like building a house and clearly showing them why it isn't possible to quickly add another door to the backside of the house made of brick.
它失败的原因主要在于过程。我们作为软件工程师并不能很好地收集需求和控制客户。因为构建软件对于IT之外的人来说是一项“神秘”工作,所以他们很难理解为什么最后一刻的变化很困难。这不像是建房子,而是清楚地告诉他们为什么不可能在砖砌房子的后面快速增加另一扇门。
#21
Not only software projects go over budget, or take more than scheduled time to complete. Just open the newspaper and look at public projects like bridges.
不仅软件项目超出预算,还需要超过预定的时间才能完成。打开报纸,看看像桥梁这样的公共项目。
But for a software project it is far more easy to cancel everything. If a bridge or building is half finished, there is no way back. Half the infrastructure is in place. It is very visible and it takes money to remove it.
但对于软件项目来说,取消所有内容要容易得多。如果桥梁或建筑物已完成一半,则无法返回。一半的基础设施到位。这是非常明显的,它需要钱来删除它。
For a software project you can press Shift-Delete and nobody notices.
对于软件项目,您可以按Shift-Delete,没有人注意到。
Its just a very hard job to do an accurate cost analysis.
进行准确的成本分析只是一项非常艰巨的工作。
#22
Using the FBI's Virtual Case File system it comes down to poor program management. The program had pre-9/11 requirements and post-9/11 expectations. Had government management done their job there would have been contract mods.
使用FBI的虚拟案例文件系统,它归结为糟糕的程序管理。该计划有9/11之前的要求和9/11之后的预期。如果*管理层完成了他们的工作,就会有合同模式。
http://government.zdnet.com/?p=2518
"Because of an open-ended contract with few safeguards, SAIC reaped more than $100 million as the project became bigger and more complicated, even though its software never worked properly. The company continued to meet the bureau’s requests, accepting payments despite clear signs that the FBI’s approach to the project was badly flawed, according to people who were involved in the project or later reviewed it for the government."
“由于开放式合同几乎没有保障措施,上汽集团收入超过1亿美元,因为该项目变得越来越大,越来越复杂,尽管其软件从未正常运行。公司继续满足该局的要求,尽管有明显的迹象表明接受付款联邦调查局对该项目的处理方式存在严重缺陷,参与该项目或后来为*审查的人员表示。
Although $105,000,000 for 700,000 lines of code comes to $150 per line of code. Not too bad.
虽然700,000行代码的105,000,000美元到每行代码150美元。还不错。
#23
To truly gage whether a project is really successful, the original estimate / budget is probably a poor yardstick. Most engineers tend to underestimate how much time it will take because of political pressure, and they don't know how to estimate anyway. Many managers are poor planners because they want unrealistic deadlines to please their boss, they often don't understand what's involved, and plus it's something they can look at and understand and use as a stick in meetings, as opposed to actually helping solve problems. Practically, it helps businesses make rough projections of expense for budgeting purposes, at least it gives them something the go by.
要真正衡量一个项目是否真的成功,原始估算/预算可能是一个不好的尺度。大多数工程师倾向于低估由于政治压力而需要多长时间,并且他们不知道如何估计。许多经理都是糟糕的策划者,因为他们想要不切实际的最后期限来取悦他们的老板,他们往往不了解所涉及的内容,而且他们可以看到并理解和使用这些东西作为会议的一部分,而不是实际帮助解决问题。实际上,它可以帮助企业对预算目的进行粗略的预算预测,至少可以为他们提供一些经验。
A better measurement of project success would be - are the users happy? Does it help the business make money? How fast will the money gained help recover the cost of the system? These are harder to gauge than a simple plan, though.
更好地衡量项目成功与否 - 用户是否满意?它能帮助企业赚钱吗?获得的资金有多快有助于恢复系统成本?不过,这些比简单的计划更难衡量。
In the end, I've find you're better off delivering on deadline, even if it means working some overtime. It sucks, but that is the reality of it.
最后,我发现你最好在截止日期前交付,即使这意味着加班加点。它很糟糕,但这就是它的现实。
#24
As stated previously the vast majority of people involved in software development to not actually understand how
如前所述,参与软件开发的绝大多数人实际上并不了解如何
- ask the right questions to learn about the problem
- appreciate the users goal and judge expectations
- understand technology available and the related Eco structure
- most of team directly/indirectly involved are poorly skilled.
- do not appreciate or know when they are wrong do they can take action.
提出正确的问题以了解问题
欣赏用户目标并判断期望
了解可用的技术和相关的生态结构
大多数直接/间接参与的团队都是技术娴熟的。
不欣赏或知道什么时候他们错了他们可以采取行动。
Even with perfect requirements and related definitions too many developers don't know what they are doing.
即使有完美的要求和相关的定义,太多的开发人员也不知道他们在做什么。
Just look at the types of questions asked here. Would you go to a doctor that asked the same equivalent question. The scarey thing is that they ask and don't know how to learn or reason.
只需看看这里提出的问题类型。你会去找一个问同样问题的医生吗?可怕的是,他们要求并且不知道如何学习或推理。
#25
Different agendas
Management do not really understand what a developer does, how they produce code and the difficulties encountered. All they care about is the final product delivered on time. But for a developer they care about the technical aspects, well produced code in a solution they our proud of.
管理层并不真正了解开发人员的工作,他们如何生成代码以及遇到的困难。他们所关心的只是按时交付的最终产品。但对于开发人员而言,他们关心技术方面,在我们引以为荣的解决方案中精心制作代码。
Deadlines
I've often heard developers say they wish they could produce better code, and that deadlines often push them into producing something that just works, rather than good code. When these deadlines are unreallistic the problems are exacerbated.
我经常听到开发人员说他们希望能够生成更好的代码,而截止日期通常会促使他们生成一些正常工作的东西,而不是优秀的代码。当这些截止日期不可靠时,问题就会加剧。
#26
I think this thread managed to gather the biggest group of tallented unhappy software developers, engineers, project managers, etc. that it is possible to gather in one place.
我认为这个线程成功地聚集了最大的不满意的软件开发人员,工程师,项目经理等,他们可以聚集在一个地方。
I share point of view with most of the posts stuck here and I think they come out of a lot of suffering through seeing co-workers not doing a good job when job (programming) and success is the most important part of our lives.
我与这里的大多数帖子都持有观点,我认为通过看到同事在工作(编程)和成功是我们生活中最重要的部分时没有做好工作,他们已经走出了很多苦难。
http://www.clean-code-developer.de/ They have an incredible cause! and their philosophy, if taken ahead, could manage to create a new layer of heroes, as the main stream of developers and IT professionals is so ROT these days.
http://www.clean-code-developer.de/他们有一个令人难以置信的事业!他们的理念,如果采取进一步措施,可以设法创造一个新的英雄层,因为这些天开发商和IT专业人员的主流是如此。
I'm working on something similar here in Brazil, 'cos I love our profession of bringing software alive both as PM and software developer (.NET) and I can't stand people who face programming as nothing else but they way out to make big money with almost no effort.
我正在巴西做类似的事情,'我喜欢我们将软件带入PM和软件开发人员(.NET)的职业,我不能忍受那些面对编程的人,除了他们的出路外几乎没有努力的大钱。
... sure I don't consider going overnight in front of the computer geniality. but the few who matter, have done it more than once.
...确定我不考虑在电脑亲切之前过夜。但是少数几个重要的人,已经做过不止一次了。
#1
Bad management.
Projects are not successes or failures based on some underlying feature of the project, but on whether they fulfill the needs of the users. (They can fail altogether, in which case there was a gross misstatement of what was possible.) It is mostly in the process of evaluating the feasibility and cost-benefit ratio of the project, and establishing goals, that software projects tend to fail or succeed.
项目不是基于项目的某些基本功能的成功或失败,而是基于它们是否满足用户的需求。 (它们可能完全失败,在这种情况下,对可能的事情存在严重错误。)主要是在评估项目的可行性和成本效益比,确定目标,软件项目往往失败或成功。
There's a disconnect between people who deal with facts and things (like programmers) and people who deal with other people (like sales types and managers). To a programmer, the facts are the facts, and have to be dealt with. To a sales person, the facts are what other people think, and are changeable.
处理事实和事物的人(如程序员)与处理其他人(如销售类型和经理)的人之间存在脱节。对于程序员来说,事实是事实,必须加以处理。对于销售人员来说,事实是其他人的想法,并且是可变的。
There's also differences between tangible and intangible facts. Nobody thinks that workers could build a large bridge in a month if they were really motivated; they can see all the steel and concrete and other stuff that has to be moved and fixed into position. Software is much less tangible, and lacks the physical restrictions: while it is not even theoretically possible to build the bridge within a month, it is conceivable that a team could create a large project within a month, as "all" they have to do is get everything right the first time. It is physically possible to type thousands of lines of code a day; it's just that the chance that they're usable as is is so close to zero it doesn't matter. The actual productivity of a top developer is actually pretty unimpressive in word count, compared to (say) the productivity of a journalist.
有形和无形事实之间也存在差异。如果真的有动力,没有人认为工人可以在一个月内修建一座大桥;他们可以看到所有钢筋混凝土和其他必须移动并固定到位的东西。软件不那么有形,缺乏物理限制:虽然理论上在一个月内建立桥梁甚至没有可能,但可以想象一个团队可以在一个月内创建一个大型项目,因为他们必须做的“全部”第一次就把一切都弄好了。实际上每天可以输入数千行代码;只是它们可以按原样使用的几率非常接近零并不重要。与(比如)记者的生产力相比,*开发者的实际生产力实际上在字数上相当不起眼。
Therefore, those who are used to flexible facts don't have the imposing physical limits to remind them that things can be pushed only so far, no appreciation for what programming actually requires, and no good feel for how much productivity is realistically possible. Moreover, they know how to get their way in negotiations, much more than the average developer, so in negotiations about what's possible they tend to assume more than they can, in the real world, get.
因此,那些习惯于灵活事实的人没有强大的物理限制来提醒他们事情只能推到目前为止,不了解编程实际需要什么,也没有好好感受到实际可行的生产力。此外,他们知道如何在谈判中取得进展,远远超过普通开发人员,所以在谈判中他们倾向于在现实世界中承担的可能性超过他们所能做到的。
In the meantime, software development is inherently fuzzy, because producing the physical product is trivial. I can produce a copy of software quickly and cheaply, once it's been developed. Software development is design work, pure and simple. Anything corresponding to manufacturing is ruthlessly eliminated with such things as compilers and wizards and code generation. The developer, faced with the manager who wants the impossible, finds it hard to say the impossible is actually impossible, because there's no way to say it's actually impossible. Given facts that are unknown enough to feel flexible, the person with strong negotiating skills and determination will typically get the answer he or she wants.
与此同时,软件开发本质上是模糊的,因为生产实物产品是微不足道的。一旦开发完成,我就可以快速而廉价地制作软件副本。软件开发是设计工作,纯粹而简单。通过诸如编译器和向导以及代码生成之类的东西,无情地消除了与制造相对应的任何东西。面对想要不可能的经理的开发人员发现很难说不可能实际上是不可能的,因为没有办法说这实际上是不可能的。鉴于事实不足以让人感到灵活,具有强大谈判技巧和决心的人通常会得到他或她想要的答案。
Given this disconnect, one might ask whose responsibility it is to bridge it. The answer is, in my opinion, clear. The responsibility for understanding how different people think belongs to the people who specialize in dealing with other people. The responsibility for coordinating different types of people belongs to the people whose job it is to coordinate these things. Therefore, managers.
鉴于这种脱节,人们可能会问,应该由谁来弥合它。在我看来,答案很明确。理解不同人的思维方式的责任属于专门与他人打交道的人。协调不同类型人员的责任属于协调这些事情的人。因此,经理。
Managers who do understand software development and developers, and can deal well with other managers, will do well, and their projects will generally succeed. There are still far too many of the other type in the world.
了解软件开发和开发人员,并且能够很好地与其他经理打交道的经理人会做得很好,他们的项目通常会成功。世界上还有太多的其他类型。
#2
Not a direct answer, but I found the Virtual Case File to be a fascinating case study on how a big government-backed well-funded project can still tank.
这不是一个直接的答案,但我发现虚拟案例档案是一个引人入胜的案例研究,研究一个由*支持的大型资金充足的项目如何能够成功。
You can also add your top reason why a software project fails.
您还可以添加软件项目失败的主要原因。
Another IEEE Spectrum Online article "Why Software Fails" examines this very question. It summarizes the major points as follows:
另一篇IEEE Spectrum Online文章“为什么软件失败”检查了这个问题。它总结了以下主要观点:
- Unrealistic or unarticulated project goals
- Inaccurate estimates of needed resources
- Badly defined system requirements
- Poor reporting of the project's status
- Unmanaged risks
- Poor communication among customers, developers, and users
- Use of immature technology
- Inability to handle the project's complexity
- Sloppy development practices
- Poor project management
- Stakeholder politics
- Commercial pressures
不切实际或不明确的项目目标
对所需资源的估计不准确
系统要求定义不明确
报告项目状况不佳
客户,开发人员和用户之间的沟通不畅
使用不成熟的技术
无法处理项目的复杂性
邋development的开发实践
项目管理不善
#3
Poor planning.
#4
It always takes longer than you expect, even when you take Hofstadter's Law into account.
即使考虑到Hofstadter定律,它也总是比您预期的要长。
#5
Mismanagement.
SW project get started by throwing developers against a perceived problem. Business requirements crystallize as the project progresses. New functionality gets added while deadlines stay put. More developers are thrown in. Original project members quit or get fired. By this point too much time, money and resources is invested in the project so it cannot be canceled. As the deadline passes the project is declared finished and successful despite the obvious lack of finished product.
SW项目通过让开发人员针对感知问题开始。随着项目的进展,业务需求趋于明确。在截止日期前加入新功能。投入更多开发人员。原始项目成员退出或被解雇。到目前为止,太多的时间,金钱和资源投入到项目中,因此无法取消。截止日期过后,尽管明显缺乏成品,但项目已宣告完成并取得成功。
Come to think of it - I've jet to see a SW project fail...
来想一想 - 我看到一个SW项目失败了......
#6
Honestly, I think its because most programmers are not very good at what they do(and I don't mean just cranking out code). People on * are probably the exception. I don't know about the rest of you but as a consultant/contract programmer I have worked in or around many places, and the ratio of mediocre or poor programmers to good ones is about 10 to 1.
老实说,我认为这是因为大多数程序员并不擅长他们的工作(我并不仅仅意味着只是编写代码)。 *上的人可能是例外。我不知道你们其他人,但作为一名顾问/合同程序员,我曾在许多地方或周围工作,平庸或差的程序员与好的程序员的比例约为10比1。
One of my strengths has always been estimating accurately and then delivering on time and on or under budget - I always aim for coming in 10% under cost and on time. Then I like to tell my client that because I got things done for less $$ than expected, which of the "extras" would you like to add in?
我的优势之一始终是准确估算,然后准时交付,在预算内或预算不足 - 我总是希望在成本和准时下达到10%。然后我想告诉我的客户,因为我做的事情比预期的少了$$,你想加入哪些“额外”?
Even a perfectly functioning product that is late and/or over budget will be considered a failure by many business managers. Programmers often focus on just the technical aspects of what they do, with little regard for the cost or deadline. You really need to do all three well for it to be deemed successful project. There are many other programmers that could code circles around me without a doubt, but for the person paying for the project, that is rarely enough.
即使是功能完善且迟到和/或超出预算的产品,也会被许多业务经理视为失败。程序员通常只关注他们所做的技术方面,而不考虑成本或截止日期。你真的需要做好这三件事才能被认为是成功的项目。还有很多其他程序员可以毫无疑问地在我周围编码圈子,但对于支付项目的人来说,这很少。
#7
It is because no-one seems to read anymore. Every single reason why projects fails has been analyzed time and time again. You only have to read three books to know why 80% of projects fail:
这是因为似乎没有人再读。项目失败的每一个原因都经过一次又一次的分析。您只需要阅读三本书就可以了解80%的项目失败的原因:
The Deadline: A Novel About Project Management (Tom Demarco, published 1997) It's a great introduction and it's pretty entertaining. Peopleware : Productive Projects and Teams (Tom Demarco, published 1987) The Mythical Man-Month: Essays on Software Engineering (Fred *s, published 1975)
截止日期:关于项目管理的小说(Tom Demarco,1997年出版)这是一个很棒的介绍,非常有趣。 Peopleware:富有成效的项目和团队(Tom Demarco,1987年出版)The Mythical Man-Month:Essays on Software Engineering(Fred *s,1975年出版)
We as a profession simply seem to forget everything every 3-5 years (see "centralised computing is inefficient; let the clients handle it" vs cloud computing).
我们作为一个职业似乎每3 - 5年就会忘记一切(参见“集中计算效率低下;让客户处理它”与云计算相比)。
#8
(From a programmers point of view - I'm not a project managemer, but I've often been involved in the process).
(从程序员的角度来看 - 我不是项目管理员,但我经常参与这个过程)。
A number of people have mentioned that bad programmers are endemic. But I think this is true in another sense as well - we're all bad programmers in that we find it difficult to anticipate complexity, an unavoidable issue that 50 years of magic bullet estimation and planning schemes have failed to solve.
很多人都提到坏程序员是地方性的。但我认为在另一种意义上也是如此 - 我们都是糟糕的程序员,因为我们发现难以预测复杂性,这是50年的魔法估计和计划方案未能解决的不可避免的问题。
Anticipating the side effects of large projects gets exponentially more difficult as projects grow. This is a dull truism, for sure, but for me it means that on any project I've worked on where I've been involved in the estimating process I've run into some case where there's an unanticipated consequence of a design decision that causes everything to come to a grinding halt, or at least a few days of bugfixing - just something that nobody foresaw, not any sort of malpractice or stupidity. It's just the nature of a complex enough system.
随着项目的发展,预计大型项目的副作用会越来越难以预测。当然,这是一个沉闷的老生常谈,但对我而言,这意味着在我参与估算过程的任何项目中,我遇到了一些设计决策出现意外后果的情况。导致一切都停止,或至少几天的错误修正 - 只是没有人预见的事情,而不是任何形式的弊端或愚蠢。这只是一个足够复杂系统的本质。
Aside from the built-in uncertainty, there's also a tendency to underestimate things whose outline is known, because the fact that they have less uncertainty makes them seem simpler to implement.
除了内置的不确定性之外,还有一种趋势是低估其轮廓已知的事物,因为它们具有较少的不确定性使得它们看起来更简单。
So the uncertain stuff gets magnified, the clear stuff gets minimized, and what really kills you is the thing that you didn't think would be uncertain.
因此,不确定的东西会被放大,清晰的东西会被最小化,真正杀死你的东西就是你认为不会不确定的东西。
#9
The number one reason: a failure of project management.
首要原因是:项目管理失败。
A PM's raison d'etre is to make a project succeed, ergo a project failure is their failure. Certainly there are factors beyond their control, but it's still within the PM's job description to manage that risk, and the only get out clauses should be someone higher up the food chain taking decision control (which is a terrible thing to do to a PM) or acts of god.
PM的存在理由是让项目成功,因为项目失败是他们的失败。当然有一些因素无法控制,但它仍然在PM的职责描述中来管理这种风险,而唯一的退出条款应该是在食物链上方做出决策控制的人(这对PM来说是一件可怕的事情)或上帝的行为。
In my experience failures mostly occur when PM work has been fast and loose or non-existant, including when decisions start to flow from sales people and when the client starts decreeing change control. A good PM is priceless.
根据我的经验,失败主要发生在PM工作快速,松散或不存在时,包括决策开始从销售人员流出以及客户何时开始批准变更控制时。一个好的PM是无价的。
#10
Failure is a judgement -- more of an accusation, really.
失败是一种判断 - 更多的是指责,真的。
"The project was more than 10% over budget and time."
“该项目超出预算和时间的10%以上。”
Which budget? Which schedule?
哪个预算?哪个时间表?
6 months ago, I wrote a plan saying it would take 6 months.
6个月前,我写了一个计划,说需要6个月。
3 months ago, the users asked for more stuff. I gave them a plan that said it would take 9 more months.
3个月前,用户要求更多东西。我给了他们一个计划,表示还需要9个月。
Last month I was told that the project was 6 months over budget and therefore a "failure".
上个月我被告知该项目超出预算6个月,因此“失败”。
But wait. It delivered what the users wanted. It was over the "original" estimate. It was under the revised estimate. The users want more. IT wants less.
可是等等。它提供了用户想要的东西。这超过了“原始”估计。这是在修订后的估计数之下。用户想要更多。 IT要少。
#11
I'll approach it from a different aspect than most the rest here.
我将从与其他大多数不同的方面来处理它。
I've noticed a project slowly fail over a period of time. Sure, it's gotten better in that time too--but it still isn't profitable. In this market profitability, and being in the black, means success.
我注意到一个项目在一段时间内缓慢失败。当然,它在那个时候也变得更好 - 但它仍然没有盈利。在这个市场中,盈利能力和黑色,意味着成功。
Why is it failing? I think it's simple: you get what you pay for.
它为什么失败?我认为这很简单:你得到你付出的代价。
Software is like a bank account, not primordial ooze. If you don't put resources into it (time, money, focus, effort) then you won't get anything out of it except failure and cost. So you must invest things into your project, and sometimes the earliest work sets the stage for years to come. You can't throw mud at your computer and expect a new mouse in two years and $10 million dollars later, so likewise there must be effort expended.
软件就像一个银行账户,而不是原始的软泥。如果你没有把资源投入其中(时间,金钱,重点,努力),那么除了失败和成本之外你不会得到任何东西。因此,您必须在项目中投入资金,有时最早的工作将为未来几年奠定基础。你不能在你的计算机上乱扔泥土,并期望在两年内投入一只新的鼠标,然后再投入1000万美元,所以同样必须花费精力。
One of the biggest problems today are "budget developers" in a third-world country. I don't begrudge them their part of the market, but for a well-funded Silicon Valley startup to seek them out and get a budget foundation (framework or even prototype) is to make a poor investment in the future. This very same budget framework is what is causing my friends so much of a hassle today. It works now; it worked when it was written, but it wasn't written well and few even take the time to maintain it. Were the company to stop and rewrite the software the way it should have been written in the first place they wouldn't have all this trouble. Can they afford the time? Nope. They have to make it profitable before they can even thing of it.
今天最大的问题之一是第三世界国家的“预算开发者”。我并不嫉妒他们是市场的一部分,但对于资金充足的硅谷创业公司来说,寻找他们并获得预算基础(框架甚至原型)是为了在未来做出糟糕的投资。这个相同的预算框架正是导致我的朋友今天麻烦的原因。它现在有效;它在编写时起作用,但它写得不好,甚至很少花时间来维护它。公司是否应该按照应该首先编写的方式来停止和重写软件,他们不会遇到所有这些麻烦。他们能负担得起时间吗?不。他们必须先赚钱,然后才能做到这一点。
As the saying goes, "I can make it: cheap, fast or good. Now, pick any two of those." Everyone wants all three, myself included. But if you don't invest the time, planning, and work required to make your project a success from the start ... then don't expect anything you can be proud of later. It'll feel like a forged Mona Lisa where you, and every other engineer like you, can see a defect here and there that shouldn't have been there from the start.
俗话说,“我能做到:便宜,快速或好。现在,挑选其中任何两个。”每个人都想要这三个人,包括我自己。但是,如果你不投入时间,计划和工作,从一开始就让你的项目取得成功......那么不要指望你以后可以为之感到骄傲。感觉就像一个伪造的蒙娜丽莎,你和其他像你一样的工程师都可以看到这里和那里的缺陷从一开始就不应该存在。
So:
- Don't undertake what you cannot afford in: time, money, effort, focus, etc.
- Don't skip planning!
- Don't be afraid to rewrite early when it counts the most. (Later it'll be worse than a trip to the dentist, believe me.)
- Don't underestimate the power of bureaucracy to prevent you from doing it right.
- And don't be cheap where you should spend the most of your time. It will cost you later, guaranteed. And if not you, then someone else will take the bullet for you.
不要承担你无法负担的费用:时间,金钱,努力,专注等。
不要跳过计划!
当它最重要时,不要害怕提前重写。 (相信我,这会比看牙医的旅行更糟糕。)
不要低估官僚机构阻止你做对的权力。
在你应该花费大部分时间的地方不要便宜。保证,以后会花费你。如果不是你,那么其他人会为你取下子弹。
#12
One common mistake is that sales people and technical people do not communicate sufficiently. So the salespeople sell things that are technically not feasable within budget. (And then they run with their bonus :) )
一个常见的错误是销售人员和技术人员没有充分沟通。因此,销售人员在预算范围内销售技术上不可行的东西。 (然后他们用他们的奖金运行:))
#13
Being over budget and time is not a good definition of failure (and actually being in budget and time doesn't always mean success). Take the following examples provided by Hugh Woodward, PMP, in Expert Project Management - Project Success: Looking Beyond Traditional Project Metrics:
超出预算和时间并不是失败的良好定义(实际上在预算和时间并不总是意味着成功)。请参阅Hugh Woodward,PMP在专家项目管理中提供的以下示例 - 项目成功:超越传统项目指标:
Sydney Opera House: With its graceful sails dominating Sydney Harbor, the Sydney Opera House is arguably one of the most recognized buildings in the world. Yet, from a project management perspective, it was a spectacular failure. When construction started in 1959, it was estimated to cost $7 million, and take four years to build. It was finally completed in 1973 for over $100 million.
悉尼歌剧院:悉尼歌剧院以其优美的帆在悉尼港占主导地位,可以说是世界上最知名的建筑之一。然而,从项目管理的角度来看,这是一次惊人的失败。当建筑工程于1959年开始时,估计耗资700万美元,并需要四年时间才能建成。它最终于1973年以超过1亿美元的价格完成。
[...]
Project Orion: This massive effort to develop Kodak's new Advantix photographic system was reputedly very well managed from a project management perspective. PMI recognized it as the 1997 International Project of the Year, and Business Week selected the system as one of the best new products of 1996 (Adams, 1998). But Kodak's stock price has fallen 67% since the introduction of the Advantix system, in part because it failed to anticipate the accelerating switch to digital photography.
项目猎户座:从项目管理的角度来看,开发柯达新的Advantix摄影系统的巨大努力据称得到了很好的管理。 PMI认为它是1997年度国际项目,而商业周刊将该系统选为1996年最佳新产品之一(Adams,1998)。但自推出Advantix系统以来,柯达的股价已经下跌了67%,部分原因是因为它没有预料到加速转向数码摄影。
Corporate Intranet: Finch describes a project that involved the implementation of a corporate intranet to globalize and improve communications. From a traditional project perspective, it failed to meet its success criteria, but not significantly. It was one month late and believed to have been accomplished with a small budget overrun. But both the project manager and senior management viewed the project as successful. The hardware and software had been installed successfully with a minimum of disruption, thereby providing all staff members with access to the corporate intranet. Following implementation, however, employees made only limited use of the intranet facilities. The main objective of the project was therefore not achieved. In this case, both the project manager and senior management focused on an objective that was too narrow.
企业内部网:Finch描述了一个涉及实施企业内部网以实现全球化和改善通信的项目。从传统的项目角度来看,它未能达到其成功标准,但并不显着。这是一个月的晚了,据信是在预算超支的情况下完成的。但项目经理和高级管理层都认为该项目是成功的。硬件和软件安装成功,中断时间最短,从而为所有员工提供访问企业内部网的权限。但是,在实施之后,员工只能有限地使用内部网设施。因此,该项目的主要目标没有实现。在这种情况下,项目经理和高级管理层都关注过于狭隘的目标。
[...]
Manufacturing Plant Optimization: A paper manufacturing company with five plants across North America decided to increase its manufacturing capacity by embarking on a de-bottlenecking program. A project team was formed to install the necessary equipment, and charged with completing the work in 18 months at a cost of $26 million. But almost immediately, the project team was asked to defer major expenditures until an unrelated cash flow problem was resolved. Rather than stop work completely, the team adopted a strategy of prototyping the technologies on which the de-bottlenecking program was based, and actually developed some cheaper and more effective solutions. Even when the project was authorized to proceed, the team continued this same approach. The project eventually spanned five years, but the resulting capacity increase was three times the initial commitment. Not surprisingly, the company immediately appropriated another $40 million to continue the program.
制造工厂优化:一家在北美拥有五家工厂的造纸公司决定通过开展一项去瓶颈计划来提高其制造能力。成立了一个项目小组来安装必要的设备,并负责在18个月内完成工作,费用为2600万美元。但几乎立即,项目团队被要求推迟重大支出,直到一个不相关的现金流问题得到解决。该团队没有完全停止工作,而是采用了一种策略,即对去瓶颈计划所依据的技术进行原型设计,并实际开发出一些更便宜,更有效的解决方案。即使项目被授权继续进行,该团队也继续采用同样的方法。该项目最终延长了五年,但由此产生的产能增长是初始承诺的三倍。毫不奇怪,该公司立即拨款4000万美元继续该计划。
[...]
So in these examples, which ones were truly successful? Examples like the 2002 Winter Olympics and the Batu Hijau Copper Concentrator would suggest that these are truly successful because they not only met the traditional project managers' definition of success, but also met the projects sponsors' perception of success.
那么在这些例子中,哪些是真正的成功?像2002年冬季奥运会和Batu Hijau铜矿选矿厂这样的例子表明,这些都是真正成功的,因为它们不仅满足了传统项目经理对成功的定义,而且还满足了项目赞助商对成功的看法。
As we start to look at the examples like Project Orion, the Corporate Intranet and the Laptop Upgrade, we notice that the traditional metrics start to fail. These projects are considered successes in project managers' definition of success, but failed at meeting the sponsors' success criteria. The project Orion example is quite astounding as this project was recognized by PMI (Project Management International) in 1997 as the International project of the year. Yet it did not increase Kodak's revenue, because they did not foresee the adoption of digital cameras.
当我们开始查看Project Orion,Corporate Intranet和Laptop Upgrade等示例时,我们注意到传统指标开始失败。这些项目被认为是项目经理对成功定义的成功,但未能达到赞助商的成功标准。 Orion的项目非常令人震惊,因为该项目于1997年被PMI(项目管理国际)认可为年度国际项目。但它没有增加柯达的收入,因为他们没有预见到数码相机的采用。
Most interesting are the examples of the Manufacturing Plant Optimization and the Sydney Opera House. They both failed to meet the traditional project managers' success metrics but were in fact considered successes. This is particularly shocking when you see that the Sydney Opera House had a "cost overrun of 1300%" and a "schedule overrun of 250%".
最有趣的是制造工厂优化和悉尼歌剧院的例子。他们都未能满足传统项目经理的成功指标,但实际上被认为是成功的。当你看到悉尼歌剧院的“成本超支1300%”和“超出250%的时间表”时,这尤其令人震惊。
Once we realize that projects can fail to meet the traditional metrics of success, but still be successful to the stakeholders, this creates a quandary for the project manager. How does one really define success? Is it possible that a "Challenged" project could be canceled that would have met the sponsors' needs? Is it also possible to identify a project that should be canceled that is currently on time, on budget and meeting the defined needs?
一旦我们意识到项目无法满足传统的成功指标,但仍然对利益相关者来说是成功的,这就会给项目经理带来困惑。一个人如何真正定义成功?是否有可能取消可能满足赞助商需求的“挑战”项目?是否还可以确定一个应该在当前准时,预算和满足定义的需求的项目?
What do you think of that conclusion? How do you really define success?
你怎么看待这个结论?你如何真正定义成功?
#14
My answer is rather unusual from the rest of this, but quite common around here: killer bugs. I had a project go an extra two weeks (50% extra time) because of one switch in source that I didn't know about until I dug through the source code (there was nothing documented in help or on the web).
我的答案在其他方面相当不寻常,但在这里很常见:杀手锏。我有一个项目需要额外两周(50%的额外时间),因为在我挖掘源代码之前,我不知道有一个源代码切换(帮助或网络上没有任何记录)。
#15
People/companies do not proudly shout about their failures, so many cases wont be ever heard.
人们/公司并不自豪地大吼大叫他们的失败,因此很多案例都听不到。
#16
Poor use of practices and software development methods. In my experience, one of the big reasons a project failed its that the development team use a wrong method to face the software development process. Choosing a methodology without having a good understanding of how it works and what it takes, can bring a time consuming issues to a project, like poor planning.
使用不当的做法和软件开发方法。根据我的经验,项目失败的一个重要原因是开发团队使用错误的方法来面对软件开发过程。选择一种方法而不能很好地理解它的工作原理和方法,可能会给项目带来耗时的问题,比如计划不周。
Also a common problem is also the use of technologies without a previous evaluation of it to understand how it can be applied, and if it brings any value to the project.
另外一个常见的问题是,如果没有先前的评估技术,使用技术来理解如何应用它,以及它是否为项目带来任何价值。
#17
There have been some good studies done on this. I recommend this link from the Construx website (Steve McConnells company).
对此进行了一些很好的研究。我建议从Construx网站(Steve McConnells公司)获取此链接。
#18
The Construx link above is real good!
上面的Construx链接真的很棒!
Many projects are managed on a rosy picture of reality. Managers tend to power talk developers into optimistic estimates. But say a 20 week projects gets "talked down" to 10 weeks. The requirements phase will now be 1 week instead of 2. After 1 week, the requirements aren't finished, but the project moves on. Now you're working on shaky ground-- and on a stretched schedule!
许多项目都是按照现实的美好图景进行管理的。管理人员倾向于让谈话开发人员乐观地估计。但是说,一个20周的项目被“谈到”到10周。需求阶段现在是1周而不是2.在1周后,需求尚未完成,但项目继续进行。现在你正在努力工作 - 并且时间紧迫!
This can be funny. Once there was this old guy in a room opposite mine. His job title was system adminstrator. But the system he was supposed to adminsiter wasn't there. It had never been finished, although management thought it had been. The guy played games for about a year before he got bored and moved on.
这可能很有趣。曾经有一个老家伙在我家对面的房间里。他的职称是系统管理员。但他应该管理的系统并不存在。虽然管理层认为已经完成,但它从未完成。这家伙玩了大约一年的游戏,然后感到无聊并继续前进。
The funniest part? Management put up a new job opening after he left!
最有趣的部分?他离开后,管理层开了一个新职位!
#19
IT Project Failures is a blog about project failures that may have a few answers here if one wants to read about it.
IT项目失败是一个关于项目失败的博客,如果想要阅读它,可能会有一些答案。
Myself, I think a large part of this lands on the question of being able to state exactly what is expected in x months at $y when really the answer is much more open-ended. For example, if a company is replacing an ERP or CRM system, there is a good chance that one isn't going to get all the requirements exactly right and thus there will be some changes, bug fixes and extras that come from taking on such a large project. For an analogy consider how many students entering high school or university could state their precise schedule for all 4 years without taking any classes and actually stick to that in the end. My guess would be very few do that as some people change majors or courses they wanted to take aren't offered or other things happen that change what the expected result is but how is this captured in a project plan that we started here and while we thought we were going there, we ended up way over in spot number three.
我自己,我认为其中很大一部分问题在于能够准确地说明在x个月时的预期结果是什么,而真正的答案是更开放的。例如,如果一家公司正在更换ERP或CRM系统,那么很可能一个人不能完全正确地获得所有要求,因此会有一些变化,错误修复和额外的事情来自一个大项目。举一个类比,考虑进入高中或大学的学生有多少可以在没有参加任何课程的情况下陈述他们所有4年的精确时间表,并最终坚持这一点。我的猜测是很少这样做,因为有些人改变他们想要采取的专业或课程没有提供或其他事情发生改变预期的结果但是如何在我们从这里开始的项目计划中捕获这些我以为我们要去那里,我们最终在现场排名第三。
#20
The last statistic that I heard was that 90% of projects are either over time or over budget. So if you consider that failing, quit a bit.
我听到的最后一个统计数据是,90%的项目要么超出预算,要么超出预算。所以,如果你认为失败了,请稍微退一步。
The reason why it fails mainly lies on process. We as software engineers don't do a good job of gather requirements, and controlling the customer. Because building software is a "mysterious" job to people outside of IT, it is difficult for them to understand why last minute changes are difficult. It's not like building a house and clearly showing them why it isn't possible to quickly add another door to the backside of the house made of brick.
它失败的原因主要在于过程。我们作为软件工程师并不能很好地收集需求和控制客户。因为构建软件对于IT之外的人来说是一项“神秘”工作,所以他们很难理解为什么最后一刻的变化很困难。这不像是建房子,而是清楚地告诉他们为什么不可能在砖砌房子的后面快速增加另一扇门。
#21
Not only software projects go over budget, or take more than scheduled time to complete. Just open the newspaper and look at public projects like bridges.
不仅软件项目超出预算,还需要超过预定的时间才能完成。打开报纸,看看像桥梁这样的公共项目。
But for a software project it is far more easy to cancel everything. If a bridge or building is half finished, there is no way back. Half the infrastructure is in place. It is very visible and it takes money to remove it.
但对于软件项目来说,取消所有内容要容易得多。如果桥梁或建筑物已完成一半,则无法返回。一半的基础设施到位。这是非常明显的,它需要钱来删除它。
For a software project you can press Shift-Delete and nobody notices.
对于软件项目,您可以按Shift-Delete,没有人注意到。
Its just a very hard job to do an accurate cost analysis.
进行准确的成本分析只是一项非常艰巨的工作。
#22
Using the FBI's Virtual Case File system it comes down to poor program management. The program had pre-9/11 requirements and post-9/11 expectations. Had government management done their job there would have been contract mods.
使用FBI的虚拟案例文件系统,它归结为糟糕的程序管理。该计划有9/11之前的要求和9/11之后的预期。如果*管理层完成了他们的工作,就会有合同模式。
http://government.zdnet.com/?p=2518
"Because of an open-ended contract with few safeguards, SAIC reaped more than $100 million as the project became bigger and more complicated, even though its software never worked properly. The company continued to meet the bureau’s requests, accepting payments despite clear signs that the FBI’s approach to the project was badly flawed, according to people who were involved in the project or later reviewed it for the government."
“由于开放式合同几乎没有保障措施,上汽集团收入超过1亿美元,因为该项目变得越来越大,越来越复杂,尽管其软件从未正常运行。公司继续满足该局的要求,尽管有明显的迹象表明接受付款联邦调查局对该项目的处理方式存在严重缺陷,参与该项目或后来为*审查的人员表示。
Although $105,000,000 for 700,000 lines of code comes to $150 per line of code. Not too bad.
虽然700,000行代码的105,000,000美元到每行代码150美元。还不错。
#23
To truly gage whether a project is really successful, the original estimate / budget is probably a poor yardstick. Most engineers tend to underestimate how much time it will take because of political pressure, and they don't know how to estimate anyway. Many managers are poor planners because they want unrealistic deadlines to please their boss, they often don't understand what's involved, and plus it's something they can look at and understand and use as a stick in meetings, as opposed to actually helping solve problems. Practically, it helps businesses make rough projections of expense for budgeting purposes, at least it gives them something the go by.
要真正衡量一个项目是否真的成功,原始估算/预算可能是一个不好的尺度。大多数工程师倾向于低估由于政治压力而需要多长时间,并且他们不知道如何估计。许多经理都是糟糕的策划者,因为他们想要不切实际的最后期限来取悦他们的老板,他们往往不了解所涉及的内容,而且他们可以看到并理解和使用这些东西作为会议的一部分,而不是实际帮助解决问题。实际上,它可以帮助企业对预算目的进行粗略的预算预测,至少可以为他们提供一些经验。
A better measurement of project success would be - are the users happy? Does it help the business make money? How fast will the money gained help recover the cost of the system? These are harder to gauge than a simple plan, though.
更好地衡量项目成功与否 - 用户是否满意?它能帮助企业赚钱吗?获得的资金有多快有助于恢复系统成本?不过,这些比简单的计划更难衡量。
In the end, I've find you're better off delivering on deadline, even if it means working some overtime. It sucks, but that is the reality of it.
最后,我发现你最好在截止日期前交付,即使这意味着加班加点。它很糟糕,但这就是它的现实。
#24
As stated previously the vast majority of people involved in software development to not actually understand how
如前所述,参与软件开发的绝大多数人实际上并不了解如何
- ask the right questions to learn about the problem
- appreciate the users goal and judge expectations
- understand technology available and the related Eco structure
- most of team directly/indirectly involved are poorly skilled.
- do not appreciate or know when they are wrong do they can take action.
提出正确的问题以了解问题
欣赏用户目标并判断期望
了解可用的技术和相关的生态结构
大多数直接/间接参与的团队都是技术娴熟的。
不欣赏或知道什么时候他们错了他们可以采取行动。
Even with perfect requirements and related definitions too many developers don't know what they are doing.
即使有完美的要求和相关的定义,太多的开发人员也不知道他们在做什么。
Just look at the types of questions asked here. Would you go to a doctor that asked the same equivalent question. The scarey thing is that they ask and don't know how to learn or reason.
只需看看这里提出的问题类型。你会去找一个问同样问题的医生吗?可怕的是,他们要求并且不知道如何学习或推理。
#25
Different agendas
Management do not really understand what a developer does, how they produce code and the difficulties encountered. All they care about is the final product delivered on time. But for a developer they care about the technical aspects, well produced code in a solution they our proud of.
管理层并不真正了解开发人员的工作,他们如何生成代码以及遇到的困难。他们所关心的只是按时交付的最终产品。但对于开发人员而言,他们关心技术方面,在我们引以为荣的解决方案中精心制作代码。
Deadlines
I've often heard developers say they wish they could produce better code, and that deadlines often push them into producing something that just works, rather than good code. When these deadlines are unreallistic the problems are exacerbated.
我经常听到开发人员说他们希望能够生成更好的代码,而截止日期通常会促使他们生成一些正常工作的东西,而不是优秀的代码。当这些截止日期不可靠时,问题就会加剧。
#26
I think this thread managed to gather the biggest group of tallented unhappy software developers, engineers, project managers, etc. that it is possible to gather in one place.
我认为这个线程成功地聚集了最大的不满意的软件开发人员,工程师,项目经理等,他们可以聚集在一个地方。
I share point of view with most of the posts stuck here and I think they come out of a lot of suffering through seeing co-workers not doing a good job when job (programming) and success is the most important part of our lives.
我与这里的大多数帖子都持有观点,我认为通过看到同事在工作(编程)和成功是我们生活中最重要的部分时没有做好工作,他们已经走出了很多苦难。
http://www.clean-code-developer.de/ They have an incredible cause! and their philosophy, if taken ahead, could manage to create a new layer of heroes, as the main stream of developers and IT professionals is so ROT these days.
http://www.clean-code-developer.de/他们有一个令人难以置信的事业!他们的理念,如果采取进一步措施,可以设法创造一个新的英雄层,因为这些天开发商和IT专业人员的主流是如此。
I'm working on something similar here in Brazil, 'cos I love our profession of bringing software alive both as PM and software developer (.NET) and I can't stand people who face programming as nothing else but they way out to make big money with almost no effort.
我正在巴西做类似的事情,'我喜欢我们将软件带入PM和软件开发人员(.NET)的职业,我不能忍受那些面对编程的人,除了他们的出路外几乎没有努力的大钱。
... sure I don't consider going overnight in front of the computer geniality. but the few who matter, have done it more than once.
...确定我不考虑在电脑亲切之前过夜。但是少数几个重要的人,已经做过不止一次了。