如何说服团队成员使用Web框架?[关闭]


10

问题是这样,细节如下:作为程序员,我有什么可以说/提出来使他支持我的?

我希望听到双方在这一方面的有效论点,但主要是关于如何谈论他的建议。


我的情况是这样的:我正在攻读学位课程的团队项目,正在建立一个中等规模的网站作为大学的原型。在小组中,所有人都被认为是平等的,没有任命的领导者,因此对这个问题的答案不可能是“拉高”。

所有人都是平等的,但是成员之间的知识差距很大。有问题的团队成员和我都是有能力的开发人员,尽管他没有任何行业经验。其他三个成员的能力较弱,其中两个成员完全选择退出发展。由于缺乏知识,三者均拒绝对此情况发表评论。

作为一个整体,我们将决定在网站实施过程中使用哪些技术。具体来说,是否使用PHP框架(Code Igniter)。

我赞成,理由是:

  1. 不重新发明轮子
  2. 编写良好且经过测试的代码库可以从
  3. 开始(截止日期比我们想要的要近)
  4. 发展速度
  5. 合理且可维护的设计模式和良好实践

他主张采用以前的工作方式:

  • 在需要时将定制的一次性功能写入“库”文件中
    • 数据访问和呈现页面数据,在会话之间进行获取/设置以及获取/发布数据等功能
  • 每页1个文件(不会在控件,表示和数据之间造成关注点的分离)

他反对使用框架的原因主要是基于他无法理解要点:他已经可以做所有这些事情。框架并没有改变它,只是让他变得更困难,因为他必须学习框架。他不想使用自己没有亲自写过的代码。

他还表示,“代码库的质量无关紧要,因为该项目只是一个原型,将永远不会得到维护”。对我来说,这不是编写无法维护的代码的借口

我可以理解他为什么要提出这些论点,但是我对他的“对可维护性缺乏关注”和“对良好设计的无视”甚至是关注的分离感到质疑。但是,我怀疑他从未研究过设计模式,所以我不知道证明他的方法为何难以维持的有效性。

我想继续这个项目,但是我不想不考虑我多年来学到的一切而去做。就像我之前说过的,这里没有晋升的可能,其他团队成员也不愿意介入。我应该退后一步,按照自己的方式做事吗?他是否太固执,缺乏经验,以至于不了解?还是我在这里固执己见?

TL; DR缺乏经验的团队成员固执己见,如何赢得他的支持?


2
在您的博客文章中很难找到实际的问题:)请以强调双方都提出的技术论点的方式进行修改。尽管我们无法真正告诉您如何与一个我们不认识的人交谈,但是我们可以帮助您从程序员的角度来解决这种情况。那里似乎有一个关于进化原型的好问题,但我不能确定……
yannis 2012年


3
he doesn't want to use code he hasn't personally written.他最好扔掉他的操作系统,IDE,电话,交通信号灯等
StuperUser

4
@AndyBursh I want to know exactly how everything works是学习时的有效论据,实际上重新发明轮子是可以接受的。也许,也许,您可以读到这是在寻求帮助,而不是固执。
yannis 2012年

4
since the project is only a prototype and will never be maintained 最后的最后一句话:)我希望每次做这个假设时都能得到一美元,并发现更高的起伏的不耐烦和短期的贪婪决定了原型就是现在的产品。
maple_shaft

Answers:


20

您将无法与他交谈。这就是Dunning-Kruger效应。他太无知以至于不知道自己不知道什么,也太害怕失去自己认为是优势的东西。

当您无法达成共识时,您必须达成妥协。也许您可以拆分工作,以便他对框架的了解降至最低。也许您有某种“设计”,每个人都按照自己的方式做几个星期,然后团队投票选出最好的一个。也许您可以让您的赞助教授或任何与客户打交道的人参与进来。


3
+1,因为这偶尔在现实世界中发生。我曾从事过无法与另一位开发人员达成最佳方法的工作。因此,我们俩都提出了一个POC,然后研究了每个POC的利弊。在十分之九的情况下,我们最终采用了将两个POC融合在一起的解决方案,每个人都从该过程中学到了一些东西。
蒂莫西·鲍德里奇

1
+1教有关邓宁·克鲁格的知识!每个人都需要知道它..
史蒂芬·格罗斯

呸。当您不同意某人时,引用Dunning-Kruger太容易了-太容易叫他们愚蠢了。也许队友认为框架违反了任务分配的精神,也许他想直接解决框架要解决的问题,也许他想避免CodeIgniter,Cake和Symfony的辩论……我的第一个假设不是他是个白痴。
科尔宾(Corbin)2012年

1
@ Corbin,Dunning-Kruger不是缺乏智力,而是缺乏经验。两件截然不同的事情。我同意您的理由可能是正确的,但OP表示这些并非他的论点。相反,他“看不到使用框架的意义”,因为他可以在更短的时间内从头开始写同样好的事情。一个无经验的人比他承认几乎一无所知的解决方案高估了自己的能力,这是邓宁-克鲁格的教科书示例。这类人不能被“交谈”,必须向他们展示。
Karl Bielefeldt 2012年

7

您赞成的一种论点是知识的可重用性。学习了众所周知且使用广泛的框架(例如CodeIgniter)的所有团队成员将能够在下一个项目中重用他们的知识。鉴于偶然性的知识,专有的“图书馆”不可重用。这可能会引起其他团队成员的共鸣,因为他们可能更喜欢获得有关此项目的一些有用的,可重复使用的知识。

另一个论点可能是对开发/维护成本的具体衡量。我想象一个精通CodeIgniter的开发人员比您自己编写所有这些专有功能的同事能更快地开发。这可以通过让您和他(他以自己的方式使用CodeIgniter)构建一个相同的网页并衡量完成时间来证明。然后对页面进行一组修改/扩展,再次测量完成时间。当然,规范应该由彼此独立的人准备,以在中立的基础上进行斗争。

正如您提到的,另一个是代码质量。网页准备就绪后,对每个页面运行相同的验收测试集,然后比较错误密度。

当然,当您承受时间压力时,可能无法停止并进行此类测量。因此,您可能希望快速解决这一难题。尝试说服其他团队成员(例如,让他们在这里阅读您的职位即将发布的答案:-),以给他们施加一些小组压力。最后,如果真的不能说服他,您可能需要使用CodeIgniter将项目分为两部分,一部分给他,最好是另一部分。专注于尽自己最大的能力,让他做他想做的任何事情。结果可能会说明一切。


我喜欢速度测试的想法来证明这一点。我们可以进行什么样的验收测试?我肯定会建议这样做,但是由于我们所有人还有其他截止日期需要管理,因此我不确定它是否会与他(或小组)相处愉快,而且我怀疑有人特别热衷于写规范或“浪费时间”(因为我敢肯定会放到这个上面。
安迪·亨特

1
科学,有效:xkcd.com/54
StuperUser 2012年

5

我觉得您需要与其他3个队友进行交流。你们俩都需要向他们展示自己的观点并向他们解释事情,以便他们理解。最终,他们也将必须使用此代码库。如果人人平等,那么他们应该对自己想要的工作有发言权。

我认为,对于每个人来说,一个好的方法是概述各自解决方案的好处,并向其他团队成员展示为什么您认为这是最好的方法。然后让他们决定。一共有3个,所以它将成为决胜局。

您需要指出的一件事是,如果这是您的高级项目,而其他团队成员没有其他经验,则该项目需要向潜在的雇主反映他们可以做的工作。如果做得对,这可能是面试中的好话题。我知道我要求新的毕业生概述他们的高级项目,以及它的设计和开发方式。

如果他们采用另一个人的方法,那么您就必须认真对待。但是不要放弃希望。提出一个好的设计,以使他所写的混乱不会影响所有事情。如果您有时间,请整理一些代码并重构他的一些东西,并告诉他不必每次都重新发明轮子。


老实说,我没有考虑过这会如何影响小组中的其他成员。我一定会指出这一点。
安迪·亨特

1

我觉得大学就像一个沙盒。您在其中所做的大部分工作都不会在部署中使用。因此,它为您提供了更多的实验自由,让您摆脱自己的舒适区。探索新事物,因为失败不会带来太大影响。同样在您的情况下,您的团队成员还有一个额外的优势,那就是让一个有先验知识的人帮助他们。

至于其他经验丰富的团队成员,如果他不想学习任何新知识,则不必上大学。这是学习新知识并将其添加到他的工具箱中的好机会。

对于没有经验的团队成员,通过像履历上的CodeIgniter这样的框架(实际上是在履历上证明其合理性的知识),他们被聘用/更好聘用的机会将会增加。

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.