体验结对编程一周多的时间,遇到诸多问题和大家分享一下。
两名程序员,
一名为编程老手,有丰富的开发经验经常可以提供一些非常好的想法,只是对业务不够熟悉。
另一个是个菜鸟,但进入团队时间较早对业务也相对熟悉。
两人形成互补型结对组。
故事:
由于老手(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
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版本周期来决定功能计划的发布时间。原子发布则...
英语组的同事们,无论是在清明假期还是工作之余,都无私地给予我帮助,共同打磨课程,让我深深体验到团队的力量。对比其他学校的同行,我更加意识到,集体智慧和协作精神是个人成功的关键。 在IT行业中,我们同样...
敏捷开发和结对编程等开发方法论,以及对用户体验和用户界面设计的理解和应用,都是提升软件质量的重要手段。同时,编码解析和软件架构的深入理解,能够帮助我们在实际开发中更加高效地处理问题,确保开发流程的顺畅...
- 通过结对编程的方式,两个开发人员可以共同检查代码,提高代码质量并减少错误。 **3. 加强沟通** - 测试人员与开发人员之间应保持密切沟通,确保测试案例与实际需求相符。 #### 五、测试策略 **1. 二八法则** ...
他们还尝试了XP实践一一体验不同方式的持续构建、结对编程、测试驱动开发等,阐述了如何结合使用XP与Serum。 小书的特色在于实践,对正在实施Serum敏捷软件开发的读者具有一定的参考价。值和指导作用。
结对编程的好处是可以提高软件的可靠性和可维护性。 设计模式(Design Pattern) 设计模式是一种软件设计方法,它提供了一些通用的设计方案。设计模式可以提高软件的可维护性和可扩展性。 重构(Refactoring) ...
总之,敏捷性测试是现代软件开发中不可或缺的一部分,它通过采用持续集成、测试驱动开发、结对编程等方法,实现了软件质量的持续改进和快速反馈。随着敏捷理念的普及和技术的发展,敏捷测试将继续演进,为软件开发...
- **结对编程**:结对编程是一种协作开发方式,可以提高代码质量和团队成员之间的沟通效率。 - **持续集成/持续部署(CI/CD)**:CI/CD可以自动化测试和部署流程,减少人为错误,加快开发周期。 - **任务分解**:将...
1. XP实践:探索极限编程的12个关键实践,如结对编程、持续集成、单元测试、重构等,以及它们如何提高代码质量和团队效率。 2. 测试驱动开发(TDD):理解先写测试再编写功能代码的概念,以及TDD在减少错误和增强...