传统的软件开发图书一般先介绍一个项目的角色配置,然后是你需要产生那些工件——文档、任务清单、甘特图等,接着就是规则制度,往往是这样的。而敏捷方法的世界则有些不同。敏捷依赖人,而不是依赖于项目的甘特图和里程表,图表、集成开发环境或者设计工具,它们本身都无法产生软件,软件是从你的大脑中产生的。而它不是孤立的大脑活动,还会有许多其它方面的因素:个人情绪、办公室文化、自我主义、记忆力等。它们混为一体,态度和心情的瞬息变化都可能导致巨大的差别。
只有在对项目、工作、事业有一个专业的态度时,使用敏捷方法才会生效。如果态度不正确,那么所有的这些习惯都不管用。有了正确的态度,才可以从这些方法中完全受益。下面是一些习惯和建议:
(一)、做事:
指责不会修复BUG,把矛头对准问题的解决办法,而不是人。这是真正有用处的正面效应。
切身感受:勇于承认自己不知道答案,这会让人感觉放心。一个重大的错误应该被当作是一次学习而不是指责他人的机会。团队成员们在一起工作,应该互相帮助,而不是互相指责。
(二)、欲速则不达:
不要坠入快速的简单修复之中。要投入时间和精力保持代码的整洁、敞亮。
1、不要孤立地编码:团队成员花些时间阅读其他同事写的代码,能确保代码是可读和可理解的。实现代码复审,不仅有助于代码更好理解,而且是发现bug最有效的方法之一。
2、使用单元测试:单元测试帮助你很自然地把代码分层,分成很多可管理的小块,这样就会得到设计更好、更清晰的代码。
切身感受:在项目中,代码应该是很亮堂的,不应该有黑暗死角。你也许不知道每块代码的每个细节,或者每个算法的每个步骤,但是你对整体的相关知识有很好的了解。没有任何一块代码被警戒线或者“切勿入内”的标志隔离开。
(三)、对事不对人:
让我们骄傲地应该是解决了问题,而不是比较出谁的主意更好。
切身感受:一个团队能够很公正的讨论一些方案的优点和缺点,你不会因为拒绝了有太多缺陷的方案而伤害别人,也不会因为采纳了某个不甚完美(但是更好的)解决方案而被人忌恨。
平衡的艺术:
1、尽力贡献自己的好想法,如果你的想法没有被采纳也无需生气。不要因为只是想体现自己的想法而对拟定的好思路画蛇添足。
2、脱离实际的反方观点会使争论变味。若对一个想法有成见,你很容易提出一堆不太可能发生或不太实际的情形去批驳它。
3、在开始寻找最好的解决方案之前,大家对“最好”的含义要先达成共识。在开发者眼中的最好,不一定就是用户认为最好的。反之亦然。
4、只有更好,没有最好。
5、不带个人情绪并不是要盲目地接受所有的观点。用合适的词和理由去解释为什么你不赞同这个观点或方案,并提出明确的问题。
(四)、排除万难,奋勇前进:
做正确的事,要诚实,要有勇气去说出实情。有时,这样做很困难,所以我们要有足够的勇气。
切身感受:勇气会让人觉得有点不自在,提前鼓足勇气更需要魄力。但有些时候,它是扫除障碍的唯一途径,否则问题就会进一步恶化下去。鼓起你的勇气,这能让你从恐惧中解脱出来。
平衡的艺术:
1、如果你说天快要塌下来了,但其他团队成员都不赞同。反思一下,也许你是正确的,但你没有解释清楚自己的理由。
2、如果你说天快要塌下来了,但其他团队成员都不赞同。认真考滤一下,他们也许是对的。
3、如果设计或代码中出现了奇怪的问题,花时间去理解为什么代码会是这样的。如果你找到了解决办法,但是代码仍然令人费解,唯一的解决办法是重构代码,让它可读性更强。如果你没有马上理解那段代码,不要轻易地否定和重写他们。那不是勇气,而是鲁莽。
4、当你勇敢地站出来时,如果受到了缺乏背景知识的抉择者的抵制,你需要用他们能够听懂的话语表达。节约资金、获得更好的投资回报,避免诉讼以及增加用户利益,会让论点更有说服力。
5、如果你在压力下要对代码质量作出妥协,你可以指出,作为一名开发者,你没有职权毁坏公司的资产。
分享到:
相关推荐
一个程序员五年学习观 本文是对一个程序员五年学习观的总结...* 《卓有成效的管理者(典藏版)》、《管理的实践(珍藏版)》、《高效程序员的 45 个习惯:敏捷开发修炼之道》等书籍可以帮助程序员学习管理类的知识点。
### 程序员进阶修炼说明:35岁前要培养的66种明智思维 #### 第一部分:剑走成功偏锋——另类思维与反弹琵琶 在这个快速变化的时代,要想在IT行业中脱颖而出,单凭传统的思维方式往往难以达到预期的效果。因此,**...
《程序员修炼三部曲》之《版本控制之道——使用Subversion》(第二版)深入探讨了版本控制的概念和实践,尤其是Subversion这一开源版本控制系统。本书通过实例教学,指导开发者如何建立版本控制的基础结构,如何有效...
技术人员成长的修炼之道涵盖多个方面,包括基本技术、架构、沟通技巧、汇报技巧、成长路径、产品思维和商业化思维。这些元素共同构成了一个技术人从初级到高级甚至领导角色发展的全面指南。 首先,技术人的自我修养...
python学习资源
jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目
基于Andorid的音乐播放器项目设计(国外开源)实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。
python学习资源
python学习资源
python学习一些项目和资源
【毕业设计】java-springboot+vue家具销售平台实现源码(完整前后端+mysql+说明文档+LunW).zip
HTML+CSS+JavaScarip开发的前端网页源代码
python学习资源
【毕业设计】java-springboot-vue健身房信息管理系统源码(完整前后端+mysql+说明文档+LunW).zip
成绩管理系统C/Go。大学生期末小作业,指针实现,C语言版本(ANSI C)和Go语言版本
1_基于大数据的智能菜品个性化推荐与点餐系统的设计与实现.docx
【毕业设计】java-springboot-vue交流互动平台实现源码(完整前后端+mysql+说明文档+LunW).zip
内容概要:本文主要探讨了在高并发情况下如何设计并优化火车票秒杀系统,确保系统的高性能与稳定性。通过对比分析三种库存管理模式(下单减库存、支付减库存、预扣库存),强调了预扣库存结合本地缓存及远程Redis统一库存的优势,同时介绍了如何利用Nginx的加权轮询策略、MQ消息队列异步处理等方式降低系统压力,保障交易完整性和数据一致性,防止超卖现象。 适用人群:具有一定互联网应用开发经验的研发人员和技术管理人员。 使用场景及目标:适用于电商、票务等行业需要处理大量瞬时并发请求的业务场景。其目标在于通过合理的架构规划,实现在高峰期保持平台的稳定运行,保证用户体验的同时最大化销售额。 其他说明:文中提及的技术细节如Epoll I/O多路复用模型以及分布式系统中的容错措施等内容,对于深入理解大规模并发系统的构建有着重要指导意义。
基于 OpenCV 和 PyTorch 的深度车牌识别
【毕业设计-java】springboot-vue教学资料管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip