最近对敏捷比较感兴趣,正好翻看了《高效程序员的45个习惯-敏捷开发修炼之道》,颇有些感触,倒不是对敏捷的实施方法,而是文中所提的一些习惯之处,觉得习惯的养成可能比具体的敏捷实践要重要得多。所以这里借用下文中标题,谈谈对高效程序员习惯的理解。
一、做事优先
在项目团队开发过程中,出现问题时最高优先级应该是解决问题,而不是找到责任人并进行指责。当然在问题解决之后,可以找到责任人一起分析问题产生的原因,尽量在后期避免再次发生。在团队还是能看见一些成员喜欢“推卸责任”或者“事不关已,高高挂起”,这往往不可取。
二、欲速则不达
必须得承认人是有惰性的,如果个人对自身的要求不高或者项目的进度比较紧的情况下,就容易为了完成任务而“赶进度”,这样造成的后果就是质量太差而花了更多的时间去修复问题。又或者是解决bug的时候只是解决“浅层次”的问题,比如可能存在类似问题的地方不做检查解决、可能只是解决了单个场景的问题等等,结果没有从根本上将问题解决。所以这里要提倡重速度更要重质量,“为了看起来完成任务”的思想要切换成“为了有效地完成任务”,“解决单个问题”要切换成“解决一类问题或根本问题”。
三、对事不对人
在与人沟通具体事情的过程中尽量要保证客观公正,避免夹带过多感情色彩。因为这样才能更好地让大家关注在事情本身,而不至于因为个人情感表达造成对当事人的伤害。这里一方面需要注意对不同的声音持有一个开放的态度,另一方面也需要在沟通过程注意方式方法,比如对事情有不同看法时最好以提问的方式提醒当事人,这样在情感上更加容易接受。
四、有问题要沟通
程序员喜欢钻研问题,但容易陷入死胡同。比如问题比较棘手的时候,往往喜欢闷头研究而不愿求助,最后可能有些问题就会一直比较纠结而得不到很好的解决。而实际的经验一次又一次的告诉我们往往求助之后可能立即豁然开朗或者得到新的解决思路。所以在实际遇到问题时,当然首先需要自己想办法解决,然而在黔驴技穷的时候一定不能将问题捂住,一定要寻求沟通与帮助。另外如果是发现别人的问题,那更加需要及时地提醒,更进一步还可以提供解决方案以供参考。
五、终身学习
信息技术的发展可谓是日新月异,所以需要大量的学习才能保证对知识的敏锐度。书中提到的几个方法值得对待:(1)迭代和增量式的学习:即花固定的不需要太长的时候持续学习;(2)了解最新行情;(3)参加本地的活动:比如讲座或者培训;(4)参加研讨会议;(5)如饥似渴地阅读。总之就是生命不止,学习不息。这方面我有个自认为的最佳实践:学习一方面需要考虑兴趣,喜欢的才高兴去学;另一方面需要考虑整个行业的发展方向,跟着大势起码不容易过时;另外最好能“学以致用”或者“解惑”,这样可以更快地实践检验和得到反馈。
六、投资团队
“教会徒弟,饿死师傅”这样的话经常被当做玩笑话讲,不过实际情况中确实也有不少人存在这样的想法,但是这种想法是非常危险的。如果这样的人做为领导,团队的实力会很难提高,另外自身的水平也会受到很大的局限性。另外现在是个崇尚开源的技术世界,不论是做为领导还是普通的一员,都要乐于分享,保持一个开放的心态,多听多讲必有所获。如果在公司可以定期组织一些分享交流会或者坐谈会,而且形式也不用过于死板,可以轻松愉快点。
七、打破砂锅问到底
凡事多问几个为什么,对于问题要不满足于简单地解决,更进一步要了解问题产生的原因?遇到类似问题怎么解决?怎么解决更好等等。总之重要的不是问题本身,而是问题背后深层次知识的掌握和解决类似问题的方法。
八、客户为大
程序员做为项目的实施人员喜欢从实施的角度考虑问题,而忽视用户的角度,这样往往就造成对需求的理解与用户存在偏差,更有甚者有些程序员直接闭门造车,最后交付的时候与用户所想千差万别。所以程序员一定要多注意以客户(业务)的角度考虑问题,在需求不明确的时候不要埋头若干或想当然地实施,一定要及时与需求方进行沟通确认。
我这里没有讲到太多的编码细节相关的习惯,原书其实提到了很多,还有大量的讲解与示例,而且都有一些实践的技巧讲解。我更多地是谈了些个人的体会,不及书中万一,所以这里推荐下这本书,值得一看。
相关推荐
本书名为《高效程序员的45个习惯 敏捷开发修炼之道》,由Venkat Subramaniam和Andy Hunt两位作者共同撰写。书中所提到的45个习惯,不仅涉及软件开发过程、编程和调试工作,还包括了开发者的个人态度、项目和团队管理...
高效程序员45个习惯,为你的个人拓展提供发展方向
高效程序员的45个习惯 英文完整版 V.Subramaniam, A.Hunt - Practices of an Agile Developer - Working in the Real World. 2006.pdf
高效程序员的10个习惯,学习高效的编程方法。
标题和描述中提到的“高效程序员的10个习惯”,实际上是在强调软件开发领域中,尤其是敏捷开发过程中,程序员应当遵循的一系列最佳实践和心态。这些习惯不仅有助于提升个人的工作效率,还能增强团队协作,最终确保...
高效程序员应该养成的七个习惯
这45个习惯覆盖了态度、学习、开发流程、用户、编程以及团队协作等多个方面,旨在帮助程序员成长为更高效、更优秀的专业人士。 1. **态度篇**: - **做实事**:解决问题,勇于承担责任,避免抱怨和指责。 - **...
Phil Chu 提出的高效程序员的七个习惯是每位IT从业者应当关注和实践的。以下是对这些习惯的详细解析: 1. **理解你的需求**:正确理解和把握项目需求是避免浪费时间和资源的关键。快速建模和创建原型有助于快速验证...
“项目启动了一段时间之后,你应该进入一种舒适的状态,团队和客户建立了一种健康的富有创造性的关系。 突发事件应极少发生。客户应该能感觉到,他们可以在... “高效程序员的45个习惯:敏捷开发修炼之道”。 iBooks.
以下是对标题和描述中提到的十个程序员习惯的详细解释: 1. **学无止境**:持续学习是优秀程序员的基石。随着技术的快速发展,必须不断关注新出现的语言、框架和编程实践,通过阅读专业文章、参加在线讨论和社区...
要成为一个有效率的程序员要知道些什么?正确的支配自己的时间。。。
### 一个程序员的开发习惯 #### 一、项目目录结构的重要性及建议 1. **创建清晰的项目目录:** - 开发过程中,一个清晰合理的项目目录结构对于提高开发效率和后期维护至关重要。 - 建议为每个项目设置一个主目录...
标题中的“程序员的45个良好习惯”是一个旨在提升编程技能和团队协作效率的指南,描述...总的来说,这45个习惯旨在全方位地塑造一个专业、高效、团队协作良好的程序员形象,帮助他们在编程生涯中不断进步,实现卓越。
《ACWORDS打字软件:程序员高效输入的利器》 在信息技术高速发展的今天,程序员作为代码世界的建设者,其打字速度和准确性对于工作效率至关重要。"ACWORDS打字软件"正是针对这一需求,专为程序员设计的一款高效打字...
高效程序员是IT行业中备受推崇的群体,他们不仅具备深厚的技术能力,还拥有一系列良好的个人品质和工作习惯。Justin James在文章中提出了高效程序员所应具备的七个共同特征,这些特征涵盖了学习态度、工作方法、解决...