新项目的规划和编程的正确组合


10

我将要开始一个新项目(一个游戏,但这并不重要)。基本想法在我脑海中,但并非所有细节。

我不想在没有计划的情况下开始编程,但是我正在认真地奋斗去做到这一点。我想在防止重构整个应用程序之前进行一些计划,仅因为我想到的一项新功能就需要它。另一方面,我不想计划多个月(业余时间)并重新开始,因为我担心这次我会失去动力。

我正在寻找的是一种将两者结合而又不占主导地位的方法。我应该以Scrum方式实现项目吗?我应该创建用户故事然后实现它们吗?我应该工作功能驱动吗?(我在scrum和经典的“代码规范”方面有一定的经验。)

更新:如何从“单击虚拟对象”开始并在以后实现功能?

Answers:


5

您走在正确的轨道上。无需花费数月的时间进行计划,但是您绝对应该制定某种计划。

计划将帮助您组织思想,确定您可能需要的技术,弄清问题点,并为您制定可行的路线图,从而分解为可衡量的目标。

此外,您可能需要进行几天的计划,才能发现这很浪费您的时间。也许在计划时,您意识到自己已经超出了联盟范围,或者您尝试做的事情无法推广。最好是现在就找到答案,这样您就可以将时间重新投入到已有的其他想法中,而不是走这条路而迷失在树林中,周围是严密的代码藤蔓和容易出错的逻辑线索打成结。


定位平台是我的日常工作,因此我确实知道我想使用的大多数技术。我想我将使用简单的Scrum和基本计划。因此,我可以从一些积压订单开始,并对每次迭代进行计划。
WarrenFaith 2011年

您一直在拼写“计划”错误。只是以为我要指出这一点,因为我无法编辑您的评论:)但是,是的,我认为scrum是一种很好的方法,它可以保持灵活性并为您提供一个机会,让您决定是否值得继续进行该项目。
jmort253 2011年

噢,用德语来说,是另一回事:用一个n进行规划,用两个m进行编程...:D谢谢!
WarrenFaith 2011年

@WarrenFaith-对不起!那就是我的民族中心主义!感谢您指出我的错误;)
jmort253 2011年

11

规划最低可行产品,并加以实施。然后倾听您的用户并计划下一个逻辑增强,并加以实现。重复。


3
....并且,每当您对某个您认为很酷的东西有了主意时,只需将该主意记入scrum-backlog中,但在完成最小可行产品之前不要实施。
k3b

主要的问题仍然是我应该计划它的深度。如果您也可以给我建议,那么您就可以接受答案。
WarrenFaith 2011年

1
@WarrenFaith:功能->>故事->>测试用例。
Steven A. Lowe

4

无论您在计划和设计程序上花费了多少时间,总是总是要重写部分程序。这就像引力,不是聪明地否认它的存在。

必须意识到重构是开发的正常部分,而这只是决定何时进行的问题。等待很长时间,您最终会得到大量的意大利面,恳求彻底重写。不好笑。

我的建议是计划一些,但要尽快开始编码并进行重构,重构,重构以保持代码的形状。干的原则(不要重复自己)是一个很好的指标。


感谢您的回复。我知道重构并不是什么不寻常的事情,但是我不想阻止因错过计划而导致的重构。
WarrenFaith 2011年

@Warren-无法计划不会阻止重构。您可以在计算机上编写解决方案的代码,也可以尝试在头脑中或在纸上进行编码。我认为这两个都是无效的。开始编码后,您将在以后更改它。
凯文·克莱恩

@kevin cline:好的,让我们在重构现有代码以实现新功能或改进与重写几乎整个应用程序以实现新功能之间有所不同。我可以先住,没有真正与第二..
WarrenFaith

@WarrenFaith:只要代码紧凑且形状正确,您就应该能够避免重写。我只有在看到重写的时候,系统才变成一个泥泞的球(没有重构),或者是根本的技术变更(平台的更换)。
Martin Wickman

3

当我担任这个职位时,有时我会使用TDD(测试驱动的开发)并开始为我正在开发的系统中最复杂的部分计划一些测试。另外,对于最复杂的区域,我可以整理一些高级伪代码。我发现此过程为我提供了一个宽松的行动计划,并帮助我确定了哪些区域可能是最耗时的。

对我来说,这种方法之所以有效,是因为它介于编码和计划之间。一旦有了测试思路和/或伪代码,就可以遍历每个逻辑部分并实现代码。我通常首先解决建议的解决方案中最难的部分,因为最难的部分通常是应用程序的核心功能,您总是可以延迟任何麻烦。

由于您评论说大部分代码都在您的脑海中,并且您准备开始学习和编程,因此使用此方法可以帮助您专注于每个部分,而不会被整个系统所困扰。

总而言之,可以说“首先解决最困难的部分,用伪代码和/或TDD计划进行分而治之”!


我不是TDD的粉丝,但还是要感谢!
WarrenFaith 2011年

我不一定要说使用TDD,我的意思是,这是我用作“计划”我的代码的结构。这样,我就不会直接着手编写代码,也不会花费大量时间编写与实际编码相差太远的大量文档/项目计划。这是关于寻找快乐的媒介。原则上,您可以使用笔和纸来实现相同的目的。我还应该指出,我不会为所有内容编写测试-只是针对更复杂的领域。
BradB

3

只需尝试使代码模块化。您计划的其他任何内容都可能在下一次迭代中抛出。


2

我建议至少将您的想法写下来。根据项目的大小,可能不需要很多正式计划。但是,如果它真的很大,您可能想让自己不头痛,花几天时间做一些更深入的计划。

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.