在组织中构建PHP能力

在组织中构建PHP能力,php,agile,Php,Agile,这实际上不是一个技术编程问题,而是与最佳实践和编程/项目管理过程有关。以下是一些背景信息: 我是一家敏捷(scrum)软件开发公司的顾问,该公司专门研究Java、J2EE和Flex技术堆栈 在这里,许多人普遍认为,与PHP相关的人员、项目等的质量与Java相比并没有达到标准。虽然我经常反驳这种说法,但我确实承认,进入PHP的门槛总体较低,偶尔会吸引质量较低的人,然后他们就会产生质量较低的工作 对我们来说,质量第一。在接下来的几个季度里,我们还希望在PHP方面发展出非常高的能力水平。我们希望实现最

这实际上不是一个技术编程问题,而是与最佳实践和编程/项目管理过程有关。以下是一些背景信息:

我是一家敏捷(scrum)软件开发公司的顾问,该公司专门研究Java、J2EE和Flex技术堆栈

在这里,许多人普遍认为,与PHP相关的人员、项目等的质量与Java相比并没有达到标准。虽然我经常反驳这种说法,但我确实承认,进入PHP的门槛总体较低,偶尔会吸引质量较低的人,然后他们就会产生质量较低的工作

对我们来说,质量第一。在接下来的几个季度里,我们还希望在PHP方面发展出非常高的能力水平。我们希望实现最高水平的质量,我们的流程应该是这样的,即我们在作为高水平起步的同时不断改进

我们的新员工正在经历一个严格的选拔过程,在这个过程中,技术任务非常繁重。我们评估他们如何编码,我们评估他们如何测试他们的代码,我们评估他们使用行业标准框架(Zend、CakePHP、CodeIgniter/Kohana、Symphony)的技能

我们每两个月(每月两次)举办一次知识交流活动,鼓励个人参加。我们也有亲身参与的活动

我想请您分享您的经验,我们作为个人和一个扁平、敏捷、相对较小的组织如何灌输良好的PHP开发实践并不断改进自己

谢谢,
Sri

我个人认为良好的开发实践不仅仅局限于语言。您对PHP项目的要求应该与Java项目的要求相同。例如,代码应该清晰、有注释、格式良好、经过测试,就像任何其他语言一样。

显而易见的技巧是定期检查代码和结对编程;如果您可以将其作为向新员工灌输最佳实践的工具,则后者尤其重要。确保那些更接近您理想的编写好代码的开发人员可以花足够的时间教其他开发人员


不幸的是,如果你雇佣的人认为他们已经知道了他们需要知道的一切,那么这一切都是毫无意义的;确保你雇佣的应聘者希望成为更好的程序员,并且愿意为此而努力。

我认为最重要的第一步是制定标准。设置强制编码样式(没有一行if/for/while/etc语句、制表符而不是空格、每个函数上的文档等);对代码的清洁度有一个最低要求对于保持高水平的质量控制非常重要

下一个好的步骤是找到你的员工有能力和没有能力的地方。找出您的员工在语言的哪些部分有问题(例如:新的PHP5功能、高效地使用DOMDocument、编写安全类……),并指定强制阅读

这就引出了我的下一个建议:建立一个“公司图书馆”。在我工作过的地方,它一直是一个书架,员工可以借书参考或学习。保存来自不同出版商的各种书籍。从我所看到的情况来看,如果不强迫员工学习一些新的东西,并且他们能够在空闲时学习,那么员工更愿意学习。一个好的程序员总是希望学习

最后,创建一个鼓励员工定期参与的博客/邮件列表/论坛。发布关于最佳实践的花絮(并鼓励员工也发布)。您可以发布如何将
gettype
与switch语句一起使用是错误的,或者如何以编程方式正确禁用魔引号


祝你好运

做得更好的最好办法是确保你只雇佣那些想做得更好的人。 然后,你必须支持那些在追求更好的过程中犯错误的人。这样他们就不怕尝试新事物

我在美国听过一句话:“雇佣GPA低于3.9(4.0分)的人”;这反映了雇佣那些做得不完美的人(也就是说,他们已经学会了如何不完美)的目标

变得更好的最佳方式之一是“精益”心态,它催生了敏捷方法,以及大量制造业的成功案例

总的想法是不断地参与自我评估的迭代过程,永远不要浪费资源或在工作流程中设置障碍。当然,这需要谨慎对待:研究项目定义不清,几乎无法投入到装配线上,而且大部分软件开发都是研究

对于一种语言,您的开发人员需要了解最新的安全问题,他们的安装需要由IT人员保持最新,公司应该为一些学习材料提供资金,无论是课程、书籍、会议还是您拥有的其他内容


总的来说,最重要的概念是质量是每个人的事,花时间把它做好是可以的。

以上所有的答案都有值得倾听的地方。希望这只是一个补充

底线是它需要练习。绝对不要和那些认为自己很完美或者不需要太多成长的人较量。我认为我是一个相当好的程序员,但我可以看到很多很多成长的机会

依靠其他程序员的智慧和经验。为他们提供一些好的阅读材料,并突出说明这些材料如何应对或影响您的组织

如果知道变得更好的重要性,“想要”变得更好要容易得多。犯错误和成长的支持是存在的,目标是明确和可实现的。

提示:如果