如何最好地让初级开发人员从头开始设计应用程序?[关闭]


9

我们是一个由3个开发人员(2个经验丰富的开发人员和一个初级)组成的团队。

我们刚刚启动了一个全新的项目。我们已经设计了应用程序,致力于选择正确的体系结构,现在我们在代码的第一行打下基础。我们正在编写它的核心,它将成为整个应用程序的基础。

这也不是一件容易的事。硬性能要求,大规模分布,复杂的实体模型等

我们都超出了我们的舒适范围,尤其是大三学生。他没有创建好的设计的经验。但这不是问题,因为我和其他开发人员会在这里提供帮助,并且我们都相信指导和建立团队,但是...我们不知道确切的最佳做法是什么,以便他得到令人愉快的经历,并学习最大程度的技能。

我们俩都意识到,我们对新项目没有大三,而只是对现有项目没有大三,因为他有一个完整的代码库可供学习和启发,因此对大三生来说比较容易。但是对于这个程序,我们几乎没有代码。我们才刚开始。

我们正在考虑以下几种方法:

  • 让他自己尝试几天,然后与他一起干预并重构代码,将他引导到正确的方向,然后重复=>可能对他来说不是一个有趣的经历,因为我们将在每次重构中指出他的错误;
  • 让他与我们其中的一对结伴编程=>他可能会成为“旁观​​者”并同意我们所做的一切,而不会实际学习很多知识或消化很多信息;
  • 让我们用坚固的设计来构建每个模块的骨架,然后将其交给他以添加缺少的部分=>在我们之后接起来可能没什么好玩的,并且存在他可能只专注于填补空白的风险而不是整个设计。

我们如何才能使他参与设计,以使他不会觉得自己被设计遗忘了,从而使他从经验中学到很多东西,并获得足够的信心来自己尝试设计?


5
我与(非常)初级团队成员的经验是,两次审核之间的间隔时间过长。他们怀着良好的意愿离开了,没有找到前进的道路。第一个月左右的短暂上午和下午会议效果更好。一旦他们找到了自己的脚-更重要的是,他们知道何时该寻求帮助-我们降低了频率。
Michael Green

Answers:


12

我建议以下准则:

  • 让初级开发人员参与您的设计会议,并征求他的意见。即使他不准备自己进行高级设计,这也会使他考虑全局。
  • 尝试隔离并清楚地定义要分配给初级开发人员的应用程序模块。用书面形式描述模块的输入/输出和其他要求。避免给他分配一个模块,该模块无法轻松测试,或者仅在与其他尚待编写的模块集成时才能测试。
  • 也许初级开发人员可以通过除编写核心应用程序以外的其他方式提供帮助。例如,他可以编写测试代码。编写出色的测试脚本绝非易事,它为项目做出了宝贵的贡献,也使初级开发人员对项目有了扎实的了解。

2
绝对确保他们参与设计。然后,他将了解他的贡献在总体上适合什么,以及他所增加的价值。他可能会淹没在复杂的环境中,但至少他会知道他在哪个海洋中!
Michael Green

1

我认为这取决于您希望该初级开发人员改进的领域。当我(非常)大三时,他们曾经给我API,我需要构建一个特定的受限事物,例如:

  • 此功能从“人员”表中获得N名人员
  • 给定人员ID,此功能提供人员统计

->

任务:建立一个包含人员列表的页面,该页面在单击人员记录时显示其统计信息。这是项目之前构建的一个简单示例页面。

给定任务的最重要方面是可以仅通过给定资源来解决,而不需要对其进行任何更改。


0

这三种方式对我来说都很不错。实际上,同时尝试10种不同的敏捷方法应该会很快为您带来良好的结果,至少您会知道哪种方法有效,哪种无效(哪种方法最有效取决于玩家的个性)。

如果您坚持每10分钟(或如此)每隔10分钟切换一次打字/思考帽子的过程,就不会出现结对编程问题,也不例外,遵循Kent Beck最初描述的过程(我不记得在哪里)

至于让其他人参与设计,我们发现有帮助的是,如果在设计阶段创建了一些设计文档(带有某些UML模型)。然后其他人(您的下级)可以证明他们阅读,复习他们,扮演魔鬼的拥护者。一个独立的,不受破坏的第三方的角色实际上可能非常有益,例如对于探索性测试-http: //www.softwaretestinghelp.com/exploratory-testing-beyond-traditional-testing-boundaries

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.