非技术性问题:知识>经验或经验>知识?

时间:2010-07-05 10:35:44

标签: java php database

所以我很抱歉,如果我在错误的地方张贴这个,但我认为要求编码人群是最好的。

所以我正在建立一个有3位开发人员的网站。一个开发人员在前端,一个在PHP后端,一个在数据库设计上。该网站的核心应用程序实际上比我/我们(这里的开发人员)原本想象的要复杂得多。最难的部分是在数据库设计和CMS的设计和开发中管理数据库。我们与一个开发人员密切合作,创建了数据库的最终版本。这是个好消息。与此同时,该网站的其余部分正在与Zend和其他2位开发人员一起构建。

基本上发生的事情是,我一直在使用的数据库设计师掌握了所有知识,因为他通过了解域的技术性,行业术语,系统要求,始终如一地设计数据库。等等。他还设计了CMS来管理我们将根据其数据结构插入的产品。从逻辑上讲,他应该真正成为编写核心应用程序的人,因为他深知他的设计。但是我们的系统是PHP,他是Java开发人员。所以我在思考做什么。他已经同意他可以在大约2-3周的时间内学习PHP,但他承认,在开始时,编码会非常缓慢,而他会摔倒几次。

另一方面,首席开发人员对核心应用程序,数据库设计,产品和业务领域的要求知之甚少,因此需要很长时间才能完成转移所有这些知识的相同过程直到他对一切都非常熟悉。所以它真的是一个时间问题。对于6年的Java开发人员来说,学习PHP并构建核心应用程序会更快吗?或者6年的PHP开发人员从我自己和数据库开发人员那里获取知识会更快吗?

这是一个近距离通话吗?有明显的赢家吗?

有任何建议/意见吗? 感谢

5 个答案:

答案 0 :(得分:10)

从本质上讲,我认为拥有设计经验和对系统如何工作的良好了解是最重要的。

可以学习单个语言(是的,有学习曲线,而语法被吸收,然后是成语等),并且当有人在他们开始时知道某种语言时会使他们更快一点,我会选择一个具有良好设计技能的人,而不是那些设计较弱,但对语言有更多了解的人。

语言技能的学习速度远远超过设计原则。

在您的情况下,您遇到了问题。两个有不同技能的好人。当然,理想的解决方案(如果它在经济上可行)是让他们作为团队工作。然后两个人都会从他们弱小的人那里学得更快 - 他们将能够讨论设计问题和理性。你应该得到一个非常优秀的产品,两个开发人员增强技能和扩展经验。双赢,如果他们可以很好地工作。

答案 1 :(得分:2)

我同意@Ragster - 让数据库人和UI人员一起工作。甚至还有一个流行语 - 它被称为结对编程

但我要补充一点。这听起来像问题的一个重要部分是数据库人员掌握了所有的知识......而且没有任何记录。这不好。如果数据库人员被绿色总线运行会怎么样?

也许你需要让数据库伙伴的首要任务是以UI用户可以吸收的形式记录数据库设计。

答案 2 :(得分:0)

我会投票使用经验丰富的PHP开发人员,而不是一个新的PHP。任何有经验的PHP开发人员都应该能够向您和您的同事简要介绍所需的内容,并利用已经完成的数据库设计工作。

对PHP的开发人员不会生成与经验丰富的开发人员编写的代码,并且可能会在将来导致问题。

另一种解决方案是将Java用于此应用程序,即使您的某些其他应用程序是基于PHP的。这两个人可以和睦相处。

答案 3 :(得分:0)

我投票支持PHP-dev,与数据库/ java dev一起工作。 这样,数据库/ java开始开始接触PHP,这将有助于他的学习曲线;而PHP-dev将从数据库/ java dev中获取数据库结构和最重要的业务原理/细节。

如果您可以提供帮助,则不应该为任何一个人创建依赖关系,而是在整个团队中分发应用程序知识。这样,你最终会得到一个更强大的团队。

您还应该确保知识不是纯粹在任何人的头脑中保存,而是记录在案。当所有知识都在某人的头脑中时,请始终考虑17号公共汽车的危险。

答案 4 :(得分:0)

您的问题的本质意味着您希望您的程序员始终以单用户模式进行开发。老实说,我从来没有遇到过现在不适合你的情况。允许/指示明显的候选人使用结对编程,问题将简单地解决。您将在团队内部获得更好的理解,更快的结果,更好的代码,更全面的解决方案......

我在这里并不轻浮。如果您对编程有任何历史甚至意识形态的厌恶,请尽量克服它们。它的效率更高。