如何处理团队的PHP项目?

时间:2009-09-24 21:20:24

标签: php project-management

我作为自由开发的php开发人员工作了一段时间,并且仅处理所有编程方面。虽然我和一个图形设计师一起工作,但所有编码都是由我完成的。

这些天我找到一个团队的工作来为一些项目编程。

所以,我害怕这个新的发展。如何管理团队并划分工作,跟踪变化。

我会寻找完整的解决方案。

8 个答案:

答案 0 :(得分:9)

这是一个很好的问题;我确信这是许多人在从自由职业者转变为团队环境时所面临的问题。

首先,不要害怕!通过接触他们独特的做事方式,您的同行将使您成为更好的程序员。并且,当你似乎无法找到那些困扰你好几个小时的拼写错误时,你现在有了很多资源可以依靠。

在同一个项目上一起工作并不困难。将其分解为模块化块。首先设置一个大纲,定义不同函数/方法/代码段之间的I / O,然后给每个人一个“黑盒子”来填写代码。

当你了解每个人的优势时缺点是,您可以根据自己的优势将任务委派给人员,以满足重要的里程碑,或者根据他们的弱点来帮助他们发展自己的技能。

尽快采用版本控制,并尽可能多地投入学习如何使用它。确保您了解如何创建,使用和合并分支。任何版本控制系统都可以工作......我建议使用SVN(Subversion)或CVS。我更喜欢Subversion。

开发一个用于错误跟踪的系统,以及跟踪新功能的待办事项列表。它不一定非常适合工作。如果您是一个新的小型操作,您可以使用像共享的Google doc电子表格这样简单的操作。如果你有现金支出,Atlassian JIRA和FogBugz都是很好的问题跟踪系统。

最重要的是,倾听并尊重你的新同伴所说的话,即使他们出了问题。永远不要忘记他们是盟友而不是对手。

玩得开心!祝你好运。

答案 1 :(得分:2)

Joel Test是团队管理最佳实践的理想纲要

  • 使用源代码管理
  • 使用任务跟踪系统
  • 维护时间表
  • 记录您的设计
  • 测试

答案 2 :(得分:2)

基于团队的PHP开发的一个重要部分是将功能分解为多个文件。大多数PHP开发人员分为两个阵营;需要学习服务器端语言的Web开发人员以及正在转向Web开发的软件工程师。前者倾向于将所有代码写入怪异的扭曲文件中,而后者则使用PHP编写外观清晰的代码,但通常无法在没有表格的情况下掌握布局。

为了使用PHP做得很好,重要的是要做到这两点。团队开发需要通过包含或使用框架将功能和UI的不同部分分离到不同的文件中。但请注意,软件方面和Web方面都有相同的解决方案;将模型与控制器从视图中分离,将内容与布局分离。

还有一件事:典型的trunk / branch版本控制目录结构与web工作不兼容。我通常做的是有一个开发和一个实时目录结构。您的开发人员在devel分支中工作,然后当您想要将更改应用到实际站点时,您只需告诉您的版本控制软件在那里应用相同的更改(Subversion非常擅长)。

祝你好运。

答案 3 :(得分:1)

当我开始在应用程序上与另一位开发人员合作时,我开始使用Trac。它是分配任务,跟踪错误和功能,版本等的好方法。我正在使用Subversion。像许多其他人提到的那样,您需要一种方法来分配作业,跟踪错误,当然还有版本控制,这是至关重要的。

沟通至关重要!电子邮件,即将推出的Google Wave,一款免费的IRC服务器,易于访问并且您的同行可以使用。每个人都需要在同一页面上,没有什么比处理一个功能或代码块更难以发现其他人一直在解决相同的问题。

祝你好运!当你领导和管理时,这是一个非常不同的氛围。对团队的建议持开放态度。

答案 4 :(得分:0)

我建议您阅读一些有关成功团队管理的书籍。这是一个很好的起点:

Successful Team Management by Nicky Hayes

免责声明:我从未读过这本书。我甚至不知道它是否好。同一类别的其他人可能会帮助你。

答案 5 :(得分:0)

你肯定需要开始使用版本控制系统,如果你还没有 - 一些好的选择是git(异常快速和全功能,http://git-scm.com/)或bzr(慢得多,但更容易使用,http://bazaar-vcs.org/

答案 6 :(得分:0)

  

我会寻找完整的解决方案。

嗯,您的唯一 完整的解决方案是聘请专业的软件开发经理。

如果您仍然希望自己应对,那么您将不得不忘记自己编写代码。您将不得不专注于管理任务,源代码和软件质量(测试)。当然,有工具,但工具不是完整的解决方案(无论这些工具有多好)。这是一个比喻:如果你有一把好锤子,它并不一定意味着你所有的指甲都会变得光滑而永不弯曲。

因此,管理软件开发团队需要知识和经验,而不仅仅是工具。与您自己编写应用程序非常不同

勇敢!

答案 7 :(得分:0)

我听说过有关此主题的一个有趣想法是使用测试驱动开发(TDD),您可以使用PHPUnit或SimpleTest编写测试,然后将其交给开发团队。当测试通过时,任务被认为已完成。