阅读更多
在项目开发中,你会倾向于质量还是速度?当然,两者都很重要,理想的情况是,在规定的时间段内高质量的完成所有的东西。但是往往现实是比较残酷的,很少会给你这种机会,使得这两者不能兼得。

在快节奏的开发工作中,你必须争分夺秒,以在最后期限之前项目能够如期交付。但时间一紧,就容易忽视代码的质量和规范,或者不去写测试用例。反过来,如果太过追求项目的质量,则会拖延进度。

当客户需要你尽快交出成品的时候,要么使产品中的一部分整洁美观的,要么使产品是完整的,但有些部分不尽如人意。那么如何在这两者之间找到一个平衡点呢?来看开发者Matt Aebersold的建议。

项目开始时就注重代码质量会加快进度

好的代码是一种“艺术”,优雅、整洁、易于阅读、团队协作也比较容易。这是我们应该在每一天都要努力的方向。如果项目一开始就注重代码的质量,那么在项目中后期,事情将会变得简单。比如,创建一个JS文件来保存所有配置级别的变量,那么在后期需要调整一些类似于动画速度和延迟时间方面的东西时,就会变得易如反掌。

按计划完成,留出改进时间

在开发者关于这方面的探讨中,速度往往容易引发争论。我支持快速开发的原因有很多,其中最主要的是要按时或更早地将任务完成,然后留给改进工作更多的时间,这可以使得产品人员和客户都高兴。

有时简单是最合适的方式

毫无疑问,创建一个框架可以加快开发速度,但不是一切都适合使用框架。比如一个非常简单的需求,可能只需要一个简单的标签或这脚本就能够解决问题,而你非要去花费时间构建一个创新的方式或工作流程,这是毫无必要的。

开发项目中,从大的框架到小的脚本,都可以用在项目中,但是一个优秀的开发会去挑选什么才是最适合该项目的东西,而不是在所有情况下都使用最复杂的技术。

找出项目中什么才是最重要的

在项目开发过程中,你应该考虑大部分时间应该花在什么地方。例如,如果该网站不需要复杂的JavaScript,那么就不要添加一些JavaScript框架和模块,因为这需要时间和精力。相反,一个简单的脚本文件,甚至是一些内联JavaScript代码就会工作得很好。这样一来,你可以花更多的时间在网站上的其余部分。

如果项目是你个人的,那就花费所有时间确保把每一行代码都写好,将其优化到最简洁的形式。如果项目必须在某个时间内完成,那么就选择一条能到达终点的最短路径。我在过去5年内,95%的情况都是后者,我也在努力在最短的时间内完成高质量的工作。

英文原文:Should you code well or code fast?
1
8
评论 共 27 条 请登录后发表评论
27 楼 cici9898_007 2014-01-29 16:45
评论怎么没有看到啊。。。。。
26 楼 cici9898_007 2014-01-29 16:44
没看到嘛。。。
25 楼 cici9898_007 2014-01-29 16:44
如果没有质量,再快的速度也是白搭,白做。
24 楼 lshhjxlj 2014-01-19 13:03
质量才是根本啊!
23 楼 DR-YangLong 2014-01-09 09:29
成本,进度,质量是所有工程学科都要涉及的。我的感受是在软件开发中需求的开发和管理非常重要,会影响整个项目,前期做好必要的工作,可以节省后期的时间,还有编程人员的编程习惯,会影响团队的合作和项目进度。工作时间不长,一点愚见。
22 楼 晨必须的 2014-01-07 16:59
速度和质量不是对立的,速度是影响质量的一个份子,质量包括速度
21 楼 hardPass 2013-12-23 23:17
整体看,速度大于质量。
局部看,一般是更注重质量,毕竟是技术人员,有时候甚至为了完美,常常在用了太多时间后,恍然大悟——钻牛角尖了。
20 楼 xiaobadi 2013-12-23 16:54
先完成再完美
19 楼 zhuchao_ko 2013-12-23 15:44
把时间分成10份,2份进度,8份质量。
18 楼 BuN_Ny 2013-12-23 13:30
BuN_Ny 写道
zhangping2056 写道
可以在保证质量和进度的情况下,砍掉一些优先级较低的功能,如果客户不愿意砍功能,则要向客户说明进度和质量风险,由客户来决定应该如何做

客户A说,我只要求1月1号前做系统做完,具体功能你找B谈。B说,我需要功能a,b,c,d,e...,你说,d不重要,先不做,否则1月1号前做不完。B说,那不行,这个功能必须有,进度问题你找A谈,反正功能我都要。

于是只好把AB叫到一起,发现他们是平级关系,只能把他们的老大C叫来,C说,我只能宏观把控一下,具体细节我也不懂,进度的事由A负责,功能的事由B负责,你跟他们谈就行。
17 楼 BuN_Ny 2013-12-23 13:27
zhangping2056 写道
可以在保证质量和进度的情况下,砍掉一些优先级较低的功能,如果客户不愿意砍功能,则要向客户说明进度和质量风险,由客户来决定应该如何做

客户A说,我只要求1月1号前做系统做完,具体功能你找B谈。B说,我需要功能a,b,c,d,e...,你说,d不重要,先不做,否则1月1号前做不完。B说,那不行,这个功能必须有,进度问题你找A谈,反正功能我都要。
16 楼 BUYAOZAIBEIDAOLE 2013-12-23 09:57
我更加倾向于 速度和质量的结合,因为最重要的目标,是通过持续不断地及早交付有价值的软件,这也是为了客户的竞争优势。
15 楼 mike.liu 2013-12-20 18:50
虽然质量和效率,从组合上分为4种:
高质高效
低质低效
高质低效
低质高效

但是实际上,只会存在前面前面两种情况。后面两种情况及其罕见。
14 楼 Kevin12 2013-12-20 17:48
赞成2楼说的,团队要有统一的价值观,要有良好的代码规范,统一管理,相互协作。这样团队成员之间写的代码都很清晰,其他人看了很容易理解,就不会耽误进度,如遇到技术问题又不知道如何解决时候,先找项目经理讨论,或者团队成员间讨论,快速寻找可行方案。如果真要分出质量还是速度重要,通用代码要求质量,功能模块要求速度。
13 楼 faraway 2013-12-20 16:40
很多人觉得质量重要,但是真正在项目中,想保质量,那可能就意味着无尽值班
12 楼 eksliang 2013-12-20 11:02
我觉得影响代码质量最主要的原因,最核心原因,还是在开发前与开发人员所约定的规范,按照规则写代码,按照规则办事;比如说代码的分层,dao层就只应该负责与数据库打交道,service层负责所有的业务逻辑的实现..web层....,当这种规范定下来后,在开发时就不能因为速度、时间紧而改变这种规范。当时间久了,这种规范深入人心,真正成为一种习惯后,我相信无论是代码的质量还是开发速度,还是程序的可拓展性这些都不是问题。
11 楼 zhangping2056 2013-12-20 09:42
可以在保证质量和进度的情况下,砍掉一些优先级较低的功能,如果客户不愿意砍功能,则要向客户说明进度和质量风险,由客户来决定应该如何做
10 楼 ansjsun 2013-12-19 21:03
质量..速度保持正常就可以.为了提高速度可以砍一些功能..但是不应该凑合糊弄....否则一个烂摊子谁来收拾..可惜明白这个道理的人多.能做到的却不多
9 楼 laogao3232 2013-12-19 17:05
完成的速度是关键,代码的质量尽量兼顾吧、
8 楼 dohkoos 2013-12-19 11:18
如果项目必须在某个时间内完成,那么就选择一条能到达终点的最短路径。我在过去5年内,95%的情况都是后者,我也在努力在最短的时间内完成高质量的工作。

大部分都是速度优先。即使有人嘴上说着质量优先,可在实际中也是速度优先。
只要质量不是太烂,速度越快,利润越高。如果你是老板,你选哪样。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 项目开发中,质量和速度哪个更重要?

    项目管理工作流 ...在项目开发中,你会倾向于质量还是速度?当然,两者都很重要,理想的情况是,在规定的时间段内高质量的完成所有的东西。但是往往现实是比较残酷的,很少会给你这种机会,使得这两者不能

  • 开发高质量的软件要付出什么样的代价?

    点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!本文转载自公众号:InfoQ作者丨Martin Fowler译者丨刘志勇在软件开发项目中,常见的争论之一是...

  • 项目开发中,质量和进度哪个更重要?

    在项目开发中,你会倾向于质量还是速度?当然,两者都很重要,理想的情况是,在规定的时间段内高质量的完成所有的东西。但是往往现实是比较残酷的,很少会给你这种机会,使得这两者不能兼得。在快节奏的开发工作中,...

  • 项目管理之敏捷开发之道

    在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于...

  • DevOps 和敏捷开发的区别是什么?

    聚焦源代码安全,网罗国内外最新资讯!编译:代码卫士DevOps 和敏捷是较为流行的软件开发方法论。第十四份敏捷年度报告指出, 95%和76%的受访人员分别表示其所在组织机构已采用敏捷开发...

  • 【阅读笔记】精益开发实践用看板管理大型项目

    精益开发实践用看板管理大型项目

  • 【DevCloud · 敏捷智库】暴走在发布前夜的开发,你怕不怕?

    在一次企业交流会上,一个公司的CEO提道,“我们公司做敏捷开发的转型有一段时间了,采用的是4周一迭代,相比之前的瀑布式开发,我们可以在每一个月就让客户看到我们的成果物,这确实为公司和客户搭建起了良好的沟通...

  • 【IoT】产品开发:产品开发战略指南:如何获得竞争优势?

    产品开发战略是指应用于产品开发过程的企业战略,产品的年度战略规划流程是公司整体战略规划的一个小方面,更大的战略计划提供了一个“北极星”来指导和部署公司内部的全部资本和资产。 产品开发战略以多种方式与...

  • Android开发项目计划书

    1 项目介绍.... 1 1.1 项目背景... 1 1.2 产品目的... 2 1.3 应用领域... 2 1.4 可行性分析... 3 1.4.1 技术可行性分析.... 3 1.4.2 经济可行性分析.... 3 1.4.3 操作可行性.... 3 2 产品服务.... 5 2.1...

  • Vue项目构建开发入门

    开篇:Vue CLI 3 项目构建基础 大家好,当你点进这个标题,开始阅读本章的时候,说明你对 Vue.js 是充满好奇心和求知欲的。我之前写过一篇文章,这样评价 Vue.js,称它是“简单却不失优雅,小巧而不乏大匠”的作品,...

  • 技术文档(3)前端开发—vue项目—规范文档

    前端开发—vue项目—规范文档

  • 求建议:二本计算机专业,考研还是就业做开发?

    会考虑这个,单纯是因为从现状出发:我是计算机加日语专业的学生,然而可笑的是,学校的计算机课程无论从学时上还是教学质量上来看都不如日语。往届毕业生中,也有很多人选择赴日,多半是先留学后工作。学校的老师...

  • 如何提高软件开发团队的协作效率

    软件开发是一项团队活动,必然需要团队成员间的交流与协作。由此,如何提高团队协作的效率便成为大家共同关注的话题。我们请到三位嘉宾将结合自己的实践经验与大家一起探讨。 金仕达卫宁软件科技有限公司首席架构师...

  • 敏捷开发和devops介绍,看了包会!

    1. 瀑布流开发模式介绍 一种曾经广泛流行的软件开发模式。 一种重视文档,强调顺序的...瀑布模型适用于需求确定后变动小的项目 2. 敏捷开发模式介绍 当今广泛流行的软件开发模式。 强调快速迭代,尽早交付的开发流程。

  • PMP 项目管理 考前专题(02)敏捷开发专题总结

    PMP 项目管理 考前专题(02)敏捷开发专题总结 PMP 项目管理 考前专题(03)考前 关键知识点 查缺补漏 PMP 项目管理 考前专题(04)考试 答题原则与套路总结 本模块分享的内容:PMP 项目管理 考前专题(02)...

  • 都在谈中台,究竟什么是中台?

    作者丨何少甫编辑丨张晓楠市面上有关中台的“应景儿”文章越来越多,但是讲概念的多、有干货的少,毕竟中台虽然热,但是还缺少真刀真枪的实践。而恰恰本文作者,就是一位中台的实践者...

  • 大数据相关开源项目汇总

    **在2007年facebook提交Apache基金会将Thrift作为一个开源项目,对于当时的facebook来说创造thrift是为了解决facebook系统中各系统间大数据量的传输通信以及系统之间语言环境不同需要跨平台的特性。 ** Chukwa ...

  • 信息系统开发与管理简答题、应用题和名词解释题汇总

    主要包括操作系统、数据库管理系统、应用开发工具和各种服务器软件等 以规模和操作系统为分类标准,企业级信息化建设中有哪些常见的服务器? 服务器有多种分类标准: (1)按规模划分。分为超级计算机、大型机、小型...

  • 读《借助开源项目,学习软件开发》总结

    读《借助开源项目,学习软件开发》总结 GitBook文章源地址:文章源地址 一.前言 准备条件:(1)一台能上网的电脑(2)首选系统Ubuntu,其次Windows 二.开始 (1)软件开发能力体系: 低 基础知识:计算机、...

  • 有哪些好用的低代码开发平台(2)

    码开发平台公司,以帮助更多组织,更快速度、更易迭代、更低成 本建设关键业务系统为使命,专注于领域模型驱动开发,帮助中大 型企业快速搭建核心业务系统,同时赋能生态伙伴快速实现定制化 垂直行业解决方案,助力...

Global site tag (gtag.js) - Google Analytics