软件项目失败的20个原因
旺道一键推广 -> 最新发布

由于各种各样的项目管理和技术因素,从过高的期望值到基本的特性更改,软件开发项目经常会偏离轨道,甚至是被宣布失败。

每一个软件项目都是从远大的梦想和宏伟的愿景开始的。或许在另一个世界的某个地方,的确会有一个项目可以实现每一个人的梦想,但是在我们的世界中,软件项目总是跌跌撞撞地走向终点线,有时甚至会越过它。

当然,根据定义,软件项目的失败并不总是非此即彼的事情。你可能会得到运行良好但没人使用的代码。或者你可能会得到不能编译的代码。有时你可以从燃烧的残骸中抢救出一些有用的东西,但最好在它爆炸前逃跑。

当闷热的烂摊子冷却下来,分析就开始了,因为人们想知道是什么地方出了问题。以下是最常见的罪魁祸首。

过少的团队成员

用太少的程序员做太多的事情是一个常见的问题。开发人员在耗尽精力之前只能编写这么多的代码。我曾经在一个团队工作过,在这个团队中,经理认为从敏捷团队中挤出更多工作的正确方法是安排每个“sprint”,让它在前一个sprint之后就立即开始。没有深思熟虑的停顿来找出什么是有效的,什么是无效的。Sprint 42于周三下午1:59结束,Sprint 43就于周三下午2:00开始了。回顾性分析会议通常被安排在下一个sprint开始之后。一些聪明的家伙建议他们将其改名为“马拉松”,但很快就投入了另一份工作。

当然,很难知道究竟有多少程序员才是足够的。有时路障和问题会阻碍我们前进。工作量翻倍也许不是经理的错,但如果你没有足够的人手,你的项目就注定要失败。

团队成员太多

如果太少的程序员可能是不好的,那么太多就可能会更糟,因为网络效应也可能会毁灭一个软件项目。更多的人意味着需要更多的协调,也就意味着更多的会议,它将占用原本编写代码的时间。但是如果你召开的会议不够多,你很快就会发现团队A的API不能与团队B的微服务进行衔接。

如果我们可以通过给项目配备过多的人员来砸钱解决问题,那当然很好,但你不能这样做。

太多的沟通

编写软件是一门孤独的艺术。人类可以一起工作,但只能在有限的时间内。许多开发人员讨厌开会,因为他们需要将自己的思维从沉浸式的逻辑思维转向更开放、更社会化的模式。这需要时间。一些团队领导试图通过召开更多的会议来使每个人保持同步以对抗失败。这是一个崇高的努力,但你依旧可以听到齿轮的磨擦声。团队需要分享足够的信息来保持同步,但太多的信息只会浪费大脑周期。

基本功能的变化

理论上,开发人员喜欢认为自己是敏捷的。这就是他们拥抱这个词的原因。但有时敏捷会让人失去平衡。这一切取决于这种转变是否需要对基础框架进行根本性的改变。当只是移动按钮或改变颜色时,很容易变得敏捷。但是,当涉及到需要重新编写数据库模式或处理分片和复制时,就没有一种简单的方法可以优雅地进行调整了。

为工作选择了错误的技术

即使你仔细计划并制定了正确的特性列表,如果使用了错误的技术,事情也可能会失败。例如,数据库被设计为通用和灵活的,但是存在架构上的限制。推动他们去做一些他们不想做的事情,当他们被要求扩展时,他们就会放慢速度,甚至是停止。或者,你可能会开始使用NoSQL数据库,因为它们听起来很酷,但后来发现你确实需要ACID级别的事务来保持一致性,而数据库却不提供这些事务。

缺乏优先级

好的规划者会列出一个特性列表,并对它们进行优先排序。但有时优先事项与实施它们的现实并不一致。在最糟糕的情况下,可能最重要的特性是最难创建的。

你的开发者该怎么做?如果他们专注于最重要的特性,他们将无法取得任何进展,并且可能最终无法交付任何功能。但是如果他们开始完成那些简单的特性,他们就可能会得到一些毫无价值的东西。

好的计划所需要的不仅仅是一张清单。对远景的架构必须考虑到需求和交付它们的成本。

市场窗口的关闭

有时候这不是程序员的错。我曾经的一个项目是把一本最畅销的参考书变成一个应用程序。在互联网出现之前的几年里,这本书非常畅销。该公司计划利用这一需求,制作一个交互式的版本,让人们可以对数据进行排序和搜索。编程团队交付的软件包含了书中的所有内容,但比书本身更快、更漂亮、更轻。但是没有人想要它了。因为已经有足够多的其他来源了,没有人需要另一个应用程序来做几乎和新闻网站一样的事情。

有时候一个想法看起来很不错,但市场已经改变了。

糟糕的架构决策

在一个项目中,我的任务是更改数据库中某一行中的一个数字。当用户完成注册后,我要将用户的id号添加到最新的订单中。听起来很简单,对吧?但是系统是建立在微服务架构上的,我不能通过编写一行代码来告诉数据库更新该列来解决这个问题。不行。架构的计划是在现有堆栈中添加一个新的微服务调用,即使这样做也很困难,因为我的第一个微服务调用需要触发另一个微服务调用等等。

最后,创建这个微服务网络的架构奇才告诉我,这一切都非常简单,并勾勒出了一条贯穿整个体系结构五层的蜿蜒路径。我的工作是向5个不同的微服务添加5个新的API调用,这也意味着需要为每个层添加5组自动化测试。这些年来,每个API都是由不同的团队开发的,这就要求我理解和模仿五种不同的编码风格。所有的一切就是为了改变一个数字。

架构决策可能会持续一生--尤其是当你的自我意识已经完全投入其中而你无法改变它的时候。项目经理必须时刻注意主架构何时会不起作用,并做出重大决策。

政治冲突

将技术故障归咎于政治因素似乎有些含糊其辞,但事实已经越来越真实了。随着项目的扩大和跨越多个组织,出现派系和团队来争夺控制权、资源和最终权力也就不足为奇了。

政治派系不同于真正的技术差异。通常有一些技术标准或代码库会以不同的方式做同样的事情。以XML和JSON为例。我能感觉到这两种技术的粉丝都急于解释为什么它们不一样,以及为什么他们最喜欢的选择是正确的。但是当一个团队的一部分喜欢一个选择,而另一部分则最尊重有竞争关系的另一方时,摩擦就会把他们分开。

随着架构师将应用程序拆分为多个更小的服务和API,这种情况将变得更加常见。不同的团体最终会控制这些,但他们不会总是和睦相处。如果A组喜欢JSON,而B组喜欢XML,那么你的团队要么需要同时实现它们,要么更改其中一个。所有这三种情况,对于必须同时与A组和B组合作的团队来说都是一种痛苦。

押注于还没有准备好投入生产的技术

程序员喜欢最新的工具和框架。他们愿意相信,新方法将扫除上一代人遗留下来的所有糟粕。

但通常情况下,下一代的技术可能还没有准备好投入生产。新功能或许看起来很完美,但通常会有一些不太明显的缺陷。有时代码只支持少数的文件类型,或者只支持几个数据库的接口。他们向你保证,其他产品很快就会推出,但是你的项目需要在这个月就发布,而“很快”则可能意味着需要6个月或更多的时间才能完成所需的特性。

押注于即将过时的技术

根据我的经验,旧的技术通常更可靠,更经得起考验,但这并不意味着旧技术是完美的。即使软件项目已经投入使用,也可能会缺少对软件项目至关重要的特性。更糟糕的是,押注于老技术可能会让你错过未来可能出现的变化。新的思想、协议和文件格式出现了,但它们可能还无法实现。如果竞争团队的某个人坚持认为你应该支持某种新协议,那么旧的技术将会带来伤害。

不切实际的截止日期

截止日期是棘手的。许多项目需要在特定的季节或事件之前进入市场。然而,当第一次写下截止日期时,开发人员可能还没有发现他们前进道路上的障碍。然后,如果项目失败,并且没有启动软件,事件就过去了,那么整个项目就会被视为失败,即使代码已经准备好顺利运行。截止日期可以帮助每个人集中精力,齐心协力,但也可能会让人产生不切实际的期望。

无法预见的竞争

一个好的产品经理在进入市场之前会调查竞争情况,但是没有人能预测什么样的竞争会突然出现。如果新的竞争对手引入了你必须复制的新特性,请参阅上面关于特性更改和优先级不匹配的部分。

匆忙的流程

许多软件项目都是从想要修复某些东西的个人或团队的愿景开始的。他们可能会想出“Snapchat for Y”或“Uber for Y”这样的短语,然后就期望产品团队能像Snapchat或Uber一样反应迅速。问题在于,确定项目的范围、描绘数据流和设想UI的工作量通常是编写代码的十倍。而幻想家们想要马上将想法变成代码。

线框图、数据库模式和用户描述不是一蹴而就的,而是工作中必不可少的一部分。但大多数人认为软件项目只是编写代码来实现一个想法而已。

错误地相信软件的力量

梦想家常常对软件改变世界的力量抱有不切实际的信念。很多人以为社交媒体会把我们团结在一起,但不知为何,它只是暴露了一直以来都很明显的断层线。软件项目通常是以幻灯片开始的,这些幻灯片承诺将彻底改变世界的某个角落。然后,当向数据库中塞入数据并不能改变任何人时,人们就会感到愤怒、无聊、困惑甚至更糟。他们说,这个软件被破坏了,因为它未能实现大家所期待的神奇转变。

许多软件项目可以编译、通过QA、发布,甚至获得不错的评审,但却最终未能实现幻灯片上的任何承诺,因为那些改变世界的承诺是不可能的。

邪恶的分包商

我们喜欢那些提供库和工具的厂商,这些库和工具使得我们只需要使用几行代码就能创造奇迹。但是偶尔,他们会听到自己的力量,并利用它来摧毁一个项目。版本1.0的预算表非常好,以至于管理层会毫不犹豫地批准版本2.0。然后供应商就可能会通过三倍或五倍的价格来挤压我们。

即使供应商不是故意这样做的,也可以感受到这种影响。免费的库可以让一个项目看起来非常便宜。然后,当需求飙升,第二个版本扩大了需求时,实际价格就会开始上升了。

翻天覆地的巨变

在大流行和抗议的一年里,没有什么比时代精神改变得更快了。该项目是否将强大的隐私保护作为了一个核心特征?唉。大流行使得每个人都对追踪接触者感兴趣了。有人想专注于商务旅行吗?唉。酒店业已经崩溃了。需要一年或更长时间的大型软件项目可能有被灾难性事件中断的风险。一开始看起来似乎是个很不错的想法,但到了要付诸实践的时候,就可能会变得毫无希望、毫无意义。

技术迁移

不仅仅是世界的变化。科技界的潮流变化也会产生同样的效果。NoSQL曾经是一个天才的想法,它能够将我们从关系模式中解放出来。然后又有人意识到文件的膨胀是因为每个记录都带有一个本地模式。虽然一个好的敏捷开发团队可以在技术的巨大变化改变领导层和客户的态度时进行调整。但是即使是最敏捷的团队也不能处理那些会把他们的架构计划全部搞垮的重大变化。这个系统是建立在假设X是一个好主意的前提下的,而在突然之间X变成了一个垃圾。或许有时候最好的选择是把它炸掉,然后再重新开始。

太多附庸

一些软件项目的起步很好,甚至被成功地发布了。然后就会有人添加了一到三个额外的特性,将新代码移植到现有的版本上,使代码继续蹒跚前行。英勇的开发人员可能会多次实现这个目标,特别是在最初的架构师计划良好的情况下。但是在某个时候,基础就崩溃了。可能是数据库无法处理负载。可能是需要太多连接来满足各种查询。好的软件可能会变得过于臃肿,有时只是因为一些小小的改进把它推到了边缘。

目标的改变

最初的计划是建立一个数据库来跟踪客户支出,以帮助制定营销计划。后来,一些天才又增加了一个功能,试图利用人工智能来将消费与天气预报联系起来。或者有人想让这个软件自动为搜索引擎广告出价。改变目标也可能会颠覆一个项目。

很少有变化会自己毁掉一切。但是新的目标可能会揭示弱点并触发失败的模式。也许是这个团队现在太小了,无法成功地完成这个项目。也许是其技术基础对于新方法来说非常低效。总之,当决定改变目标时,每个人都会很难预料到这些烦躁的组合。

教育培训机构-如何策划节日招生?
做教育培训,最重要的事情莫过于招生了。面对不同的学员,招生方…于招生。目标不同,活动策划也会不一样。② 活动主题要鲜明不仅主题要鲜明,主题之间要有连续性。就像看连续剧一样,一集接一集,一环扣一环。策划好一系列活动,一个接一个来,从多个角度延续活动的宣传,突出主题,引起关注度。常用的招生方式有:体验课招…-------------想要获得更多运营技巧、doc文案,
教育培训:如何提高满班率和续班率
什么是满班率?就是实际人数除以计划招生人数,这个值就是满班率…员有流失是正常的,但要保证一个概率。在保障老学员续期的基础上,我们也要大胆创新,开设网络课程,拓宽招生区域。实地课程录制后,进一步发行到商弈云课上,通过商弈云课系统转成真实流量,网上有人点击观看,点赞,可以按点播量分佣金。助你在日常的营销推…-----------------------想要获得更多运
培训机构难盈利的问题出在哪里,如何实现盈利?
竞争白热化实地培训班、托管辅导班竞争白热化了,利润越来越稀薄…现没有多少盈利。还有一部分负责人在刚招生时,掌握了不少资金,开始盲目扩张,盲目做课程推广,以期待获得更多生源和收费,从而使培训班陷入了这种恶性循环的陷阱里。其实这些到手的钱,并不是你的利润,而是你未来要支出的钱。如遇到行业快速发展时期,或者…-----想要获得更多运营技巧、doc文件,请“关注”并“转
“差异化”经营是网络培训赚钱的关键所在
“差异化经营”这个词,相信大多数人都耳熟能详,但要做到的却是…。在现有的基础上更新升级或者资源整合就是对现有的产品或者技术,进行升级版本,或者通过一些资源整合,成一个项目。你的技能以前是用来生产或制造产品,现在是把技能升级成知识培训,转换云课堂。直白一点就是可以让老师自行录好课程并上传到学校的商弈云课…在着缺点和不足之处。在创新改革时,要从功能、服务、价格等方面
教育培训行业是如何运作的?
以前读书时,学校附近有个小摊卖鸡蛋灌饼。刚开始的时候只有一家….%,剩下的一对一和多人大班其实市场份额都很小。家长报培训班,是希望孩子能够学到知识。老师通过课上教学和课后辅导来满足孩子的需求,达到成绩提高的目标。我见过上百人的大培训班,为什么一个班这么多人?因为是名师讲课,但人太多坐后面,基本听不到重…是你的核心竞争力。想要得到用户的认同,你就必须做到产品质量好
旺道:实体店怎么做网络营销?
年纪大了,体力不好了,便赚不了什么钱了。所以,一定要在年轻的…写文案都是非常头痛的事情,那么下面我会给大家提供一个解决方案。在互联网营销系统里面有很多细节营销,软文营销就是其中一种,但好多小白头痛写文章,所以可以用这个方法也一样可以植入广告语,或者是图片广告,轮显切换广告,使用 旺道营销系统,也就是每…以帮你吸引海量精准粉丝。有了粉丝,你通过广告、产品、服务就可
旺道:圈里圈外,铁饭碗距离瓷饭碗究竟有多远?
中国人爱混圈子,从线下一直混到线上,各种奇形怪状的圈子勾勒出…不能推则敷衍了事,盼着混到主任科员退休;一种是老黄牛式,踏踏实实、兢兢业业工作,但拙于人际关系,活干得最多,但依旧不见晋升迹象;还有一种是提线木偶式,你扯一下线他动一下,好像脑子和身体是分离的。我突然一拍脑袋,这是提前衰老的迹象啊,工作内容…即使选择留在铁饭碗圈里,也应保有随时离开的思想警惕和进行必要
旺道:微信要双开了,朋友圈推广更好做了
现在手机只能登一个微信,如两个,三个微信的小伙伴们就只能退出…动推广工具、 设置头像点击头像图标,点“+”选择图片,可以上传你的企业,个人头像,产品服务等。旺道微信朋友圈广告免费朋友圈广告-旺道、 设置推广主题点“广告”,再点“+”设置推广的主题(类别),填好中文主题,以及你的网址。教你不花一分钱做朋…简直就是一劳永逸哟。如果你点开发布的文章看不到广告,那就是你
旺道:如何能让网站多个关键词排名百度首页?
最近接了一个单,做婴儿游泳馆加盟的。优化推广范围是全国,但是…泳馆加盟哪家好”、“婴儿游泳加盟多少钱”这类与我息息相关的词。如何能让网站多个关键词排名百度首页?但客户并不认同,客户说这个词指数低,或者说搜的人不多。是,这是一方面原因。但是,指数低有什么关系,你是卖产品还是卖指数。搜的人不多有什么关系,…实现广告效果最大化,来满足大众化的广告需求。对于这样的四两拔
旺道:如何成为网络营销达人?这个技能帮你节省80%的时间
在某次名师讲坛上,听到了一个让人警醒的故事。说有个村子缺水,…准的产品。现在已经不是新鲜事物,好多企业因为百度竞价的高额费用,头疼不已,所以做网站关键词优化排名,成为了企业必选的推广项目。做优化也要做到有成效,不然就是一分钱也是昂贵的。用 旺道智能机器人 就可以持续代替人工去做,它非常聪明,只要你够耐…手,设备先进,你多努力奔跑也于事无补。简单说,要去一个地方,

此文章来源来互联网,如果你有任何版权冲突,可以联络我们,微信号:WANCOME,QQ:1444641。加我们时,请说明来意,我们将优先处理你的问题。




商弈云推  | 圈广告  | 跨圈推  | 圈推广  | 圈营销
粤ICP备10213132号
旺道商标注册证号:8608864
Copyright © 2016 环企网络信息科技有限公司 版权所有