传统的软件开发图书一般先介绍一个项目的角色配置,然后是你需要产生那些工件——文档、任务清单、甘特图等,接着就是规则制度,往往是这样的。而敏捷方法的世界则有些不同。敏捷依赖人,而不是依赖于项目的甘特图和里程表,图表、集成开发环境或者设计工具,它们本身都无法产生软件,软件是从你的大脑中产生的。而它不是孤立的大脑活动,还会有许多其它方面的因素:个人情绪、办公室文化、自我主义、记忆力等。它们混为一体,态度和心情的瞬息变化都可能导致巨大的差别。
只有在对项目、工作、事业有一个专业的态度时,使用敏捷方法才会生效。如果态度不正确,那么所有的这些习惯都不管用。有了正确的态度,才可以从这些方法中完全受益。下面是一些习惯和建议:
(一)、做事:
指责不会修复BUG,把矛头对准问题的解决办法,而不是人。这是真正有用处的正面效应。
切身感受:勇于承认自己不知道答案,这会让人感觉放心。一个重大的错误应该被当作是一次学习而不是指责他人的机会。团队成员们在一起工作,应该互相帮助,而不是互相指责。
(二)、欲速则不达:
不要坠入快速的简单修复之中。要投入时间和精力保持代码的整洁、敞亮。
1、不要孤立地编码:团队成员花些时间阅读其他同事写的代码,能确保代码是可读和可理解的。实现代码复审,不仅有助于代码更好理解,而且是发现bug最有效的方法之一。
2、使用单元测试:单元测试帮助你很自然地把代码分层,分成很多可管理的小块,这样就会得到设计更好、更清晰的代码。
切身感受:在项目中,代码应该是很亮堂的,不应该有黑暗死角。你也许不知道每块代码的每个细节,或者每个算法的每个步骤,但是你对整体的相关知识有很好的了解。没有任何一块代码被警戒线或者“切勿入内”的标志隔离开。
(三)、对事不对人:
让我们骄傲地应该是解决了问题,而不是比较出谁的主意更好。
切身感受:一个团队能够很公正的讨论一些方案的优点和缺点,你不会因为拒绝了有太多缺陷的方案而伤害别人,也不会因为采纳了某个不甚完美(但是更好的)解决方案而被人忌恨。
平衡的艺术:
1、尽力贡献自己的好想法,如果你的想法没有被采纳也无需生气。不要因为只是想体现自己的想法而对拟定的好思路画蛇添足。
2、脱离实际的反方观点会使争论变味。若对一个想法有成见,你很容易提出一堆不太可能发生或不太实际的情形去批驳它。
3、在开始寻找最好的解决方案之前,大家对“最好”的含义要先达成共识。在开发者眼中的最好,不一定就是用户认为最好的。反之亦然。
4、只有更好,没有最好。
5、不带个人情绪并不是要盲目地接受所有的观点。用合适的词和理由去解释为什么你不赞同这个观点或方案,并提出明确的问题。
(四)、排除万难,奋勇前进:
做正确的事,要诚实,要有勇气去说出实情。有时,这样做很困难,所以我们要有足够的勇气。
切身感受:勇气会让人觉得有点不自在,提前鼓足勇气更需要魄力。但有些时候,它是扫除障碍的唯一途径,否则问题就会进一步恶化下去。鼓起你的勇气,这能让你从恐惧中解脱出来。
平衡的艺术:
1、如果你说天快要塌下来了,但其他团队成员都不赞同。反思一下,也许你是正确的,但你没有解释清楚自己的理由。
2、如果你说天快要塌下来了,但其他团队成员都不赞同。认真考滤一下,他们也许是对的。
3、如果设计或代码中出现了奇怪的问题,花时间去理解为什么代码会是这样的。如果你找到了解决办法,但是代码仍然令人费解,唯一的解决办法是重构代码,让它可读性更强。如果你没有马上理解那段代码,不要轻易地否定和重写他们。那不是勇气,而是鲁莽。
4、当你勇敢地站出来时,如果受到了缺乏背景知识的抉择者的抵制,你需要用他们能够听懂的话语表达。节约资金、获得更好的投资回报,避免诉讼以及增加用户利益,会让论点更有说服力。
5、如果你在压力下要对代码质量作出妥协,你可以指出,作为一名开发者,你没有职权毁坏公司的资产。
分享到:
相关推荐
本书名为《高效程序员的45个习惯 敏捷开发修炼之道》,由Venkat Subramaniam和Andy Hunt两位作者共同撰写。书中所提到的45个习惯,不仅涉及软件开发过程、编程和调试工作,还包括了开发者的个人态度、项目和团队管理...
《高级程序员的45个好习惯》一文,详细列举并解读了这些高效实践,涵盖从敏捷开发到学习态度,再到软件交付、敏捷反馈、编码规范和调试策略等多个方面,旨在为程序员提供一个提升自身能力的指南。 首先,敏捷开发...
高效程序员45个习惯,为你的个人拓展提供发展方向
C++编程惯用法——高级程序员常用方法和技巧.pdf
《高效程序员的45个习惯:敏捷开发修炼之道(选载).doc》可能包含了敏捷开发中的核心理念和实践策略,如: 1. **持续集成**:频繁地将代码集成到主干分支,以便尽早发现并解决冲突和错误。 2. **用户故事**:用简洁...
在C++编程中,掌握高级程序员的常用方法和技巧是提升代码质量和效率的关键。...在阅读《C++编程惯用法——高级程序员常用方法和技巧》这本书时,结合实际项目进行练习,将有助于更好地掌握这些技巧。
高效程序员的45个习惯 英文完整版 V.Subramaniam, A.Hunt - Practices of an Agile Developer - Working in the Real World. 2006.pdf
首先,我们来探讨沟通的第一个误区——自我本位为主。这个误区往往源于我们过于坚持自己的观点,忽视了对方的需求和感受。例如,在案例1.7中,面对客户时,程序员可能会认为技术问题并不复杂,但这种单方面强调可能...
黑马程序员——Android移动开发源码
本书简明实用、见解深刻,总结了高效程序员在开发过程中的45个个人习惯、思想观念和方法,有助于开发人员在开发进程、编码工作、开发者态度、项目和团队管理,以及持续学习等5个方面积极修炼。通过学习这些内容,...
《JBuilder 9程序设计——Java程序员成功之路》是一本专为Java开发者设计的指南,尤其对于使用JBuilder 9这一强大的集成开发环境(IDE)的用户来说,它提供了全面而深入的学习路径。JBuilder是Borland公司推出的一款...
“项目启动了一段时间之后,你应该进入一种舒适的状态,团队和客户建立了一种健康的富有创造性的关系。 突发事件应极少发生。客户应该能感觉到,他们可以在... “高效程序员的45个习惯:敏捷开发修炼之道”。 iBooks.
《程序员的修炼之道-从小工到专家》这本书深入探讨了编程领域的核心思想,旨在帮助程序员提升技能,逐步成长为行业专家。编程思想是编程者必备的基石,它涵盖了问题解决、设计模式、算法优化等多个方面。以下是一些...
程序员一般专注于软件开发的具体实现,包括编写、测试和维护代码,而项目经理则是负责整个项目的规划、执行、监控和收尾。这一转型不仅涉及到技能的提升,也包括心态和视角的转变。 程序员转项目经理需掌握的关键...
"突破瓶颈——30 程序员的中年危机自救指南1" 作为一名 IT 行业大师,我将为您详细解释该文章中的知识点,并提供相关的技术信息。 一、标题分析 该文章的标题为“突破瓶颈——30 程序员的中年危机自救指南1”,从...