体验结对编程一周多的时间,遇到诸多问题和大家分享一下。
两名程序员,
一名为编程老手,有丰富的开发经验经常可以提供一些非常好的想法,只是对业务不够熟悉。
另一个是个菜鸟,但进入团队时间较早对业务也相对熟悉。
两人形成互补型结对组。
故事:
由于老手(A)并不熟悉业务,而且时间箱规定时间紧迫,第一周由菜鸟程序员(B)进行主要的开发工作,
AB两人在会议室简单沟通需求和场景后,进入开发阶段。B希望可以一边开发一边让A尽快熟悉业务以及相关API,
B(菜鸟)在开发时遇到一些关键需求时总要停下来和A程序员交流,包括使用到以前定义好的类和业务上下文。
有时两人会因为过去的代码不够简洁而讨论新的方案。
直到周六的下午(时间箱规定周六交付一个可以使用的版本),程序员B突然拍着自己的脑门大叫一声:晕~!!忘了一个需求。而且是关键性需求。
这导致近3天的工作付诸东流。需要重新考虑。
周六下午。程序员B很是郁闷。在会议室里苦苦思索为什么会出现遗漏。。。。。。
原因分析:由于老手A并不熟悉业务上下文,不能参与前期准备。只有程序员B知道下一步应该做什么。而B在开发中经常与A交流关于业务上的事情,导致编程思路不流畅。经常需要分神去解释和讨论,经过一段时间之后又回到自己的代码上。
开发过程由原来的:测试——开发——重构——测试
变成了:测试——开发——讲解——讨论——开发——重构——测试 两次开发之间经历了漫长的讨论与讲解。导致菜鸟程序员精力不够,甚至出现致命的遗留问题。
之后两个人在会议室里分析了问题的原因,由于此时已经经过了一周的结对开发,程序员A也对需求渐渐明朗起来。
此时两人都意识到这样的开发过程过于缓慢。原计划2天完成的任务干了3天还遗漏需求。经过商讨决定下周实行新办法:两人一起站在白板前探讨需求,程序员A不明确的地方由B在这个时候进行说明,以及两个人的讨论都在这个时间进行,开发回归 测试——开发——重构——测试
分享到:
相关推荐
【描述】:“结对编程实验报告.pdf”是XXX工业大学计算机科学与技术学院和哈工大计算机学院在《软件工程》课程中进行的一项实验活动,旨在让学生通过实际操作体验结对编程的实践过程。 【标签】:无 【部分内容】...
我与ChatGPT结对编程的体验.docx
我与ChatGPT结对编程的体验.zip
通过这个实验,学生们将能够实践软件开发的增量方法,体验结对编程的好处,同时学会如何有效地管理项目文档,以及如何按照规定的时间表和格式提交工作。这为他们未来在IT行业中进行团队协作和项目管理奠定了基础。
Python_aider是一个创新的工具,它将人工智能技术与编程环境相结合,为用户提供了一种全新的结对编程体验。在您的终端中运行Python_aider,您可以享受到AI的智能辅助,提升编程效率,解决编码过程中遇到的问题。 ...
【标题解析】:“turtle-tango”是一个项目名称,暗示...总之,“turtle-tango”项目为远程结对编程提供了一个便捷的工具,通过JavaScript技术和Google Docs式的用户体验,使得开发者能够高效协作,共同解决复杂问题。
【标题】:“Boris_Bikes_Challenge:与制造商结对编程-第3周” 这个挑战是针对编程爱好者和IT专业人士设计的,旨在提高他们的编程技能,特别是与制造商合作的协同编程能力。"Boris_Bikes_Challenge"可能是指一个与...
分布式宿舍管理系统是一款基于Java技术构建的应用,通过使用RMI(Remote Method Invocation)远程方法调用技术和...通过解压并导入这些jar包,开发者可以直接运行系统,无需额外配置,从而快速体验和评估系统功能。
它允许两个用户同时操控一台计算机的屏幕,极大地提升了团队成员之间的协作效率,特别是在编程领域,可以实现无缝对接的结对编程体验。 **一、屏幕共享功能** Screenhero的核心功能是屏幕共享。通过该软件,用户...
在实施要领方面,极限编程强调里程碑的设定、原子发布、统一描述语言、极简设计、测试驱动、重构、结对编程、代码共享和代码集成等。里程碑是基于Google发布的Android版本周期来决定功能计划的发布时间。原子发布则...
这个实验旨在让学生亲身体验增量模型在实际软件项目开发中的价值,并掌握结对编程的方法。实验中,学生可以自由选择建模工具,推荐使用开源的StarUML。 实验评分标准十分详细,总分为100分,涵盖了多个方面: 1. ...
现代软件工程是一个高度协作、逻辑严密的领域,它强调团队合作和有效的开发流程。...无论是敏捷开发、结对编程,还是用户体验和编码解析,每一个环节都要求我们精益求精,以创造出更好的软件产品。
英语组的同事们,无论是在清明假期还是工作之余,都无私地给予我帮助,共同打磨课程,让我深深体验到团队的力量。对比其他学校的同行,我更加意识到,集体智慧和协作精神是个人成功的关键。 在IT行业中,我们同样...
- 通过结对编程的方式,两个开发人员可以共同检查代码,提高代码质量并减少错误。 **3. 加强沟通** - 测试人员与开发人员之间应保持密切沟通,确保测试案例与实际需求相符。 #### 五、测试策略 **1. 二八法则** ...
他们还尝试了XP实践一一体验不同方式的持续构建、结对编程、测试驱动开发等,阐述了如何结合使用XP与Serum。 小书的特色在于实践,对正在实施Serum敏捷软件开发的读者具有一定的参考价。值和指导作用。
结对编程的好处是可以提高软件的可靠性和可维护性。 设计模式(Design Pattern) 设计模式是一种软件设计方法,它提供了一些通用的设计方案。设计模式可以提高软件的可维护性和可扩展性。 重构(Refactoring) ...