老程序员消失了。即将雇用另一位程序员。我该如何处理?[关闭]


19

在使用WordPressBuddyPress为我花了一年多的时间为我工作的社交网络项目之后,我的程序员消失了,即使他在整个期间每周都得到报酬。是的,他还没有死,因为我使用电子邮件跟踪器进行确认并看到他打开了我的电子邮件,但是他没有回应。看来他找到了另一份工作。我不知道他为什么不能这么说。我什至还付了他未完成的工作预付款。

问题在于,我从来没有要求他编写过的大多数功能的完整文档。在过去的1年中,有很多功能,其中一些功能仍然无法修复。现在看来一切令人困惑。

我现在应该做的第一件事是什么?我该如何进行?

我想要做的第一件事就是找到另一个程序员,但是我想从头开始,将所有当前代码记录在案,以便任何程序员都可以毫无问题地使用所有功能。

那是我应该做的第一件事吗?如果是,我该怎么办?

此类文件所需的标准文档类型是什么?我可以让一名程序员来为所有代码做文档并修复错误,还是文档不是很重要?

另外,您认为让另一个“个人”程序员更好还是让一家为他们工作的程序员更好的公司,这样如果分配给我的项目的程序员消失了,另一个人可以代替他,而无需我的参与?我觉得这是我一开始应该采取的方法。


29
“而且我什至还付了他未完成的工作预付款。” -这可能是起诉他的原因,您应该确认一名律师。
布朗

您能否向我们提供一些详细信息,以帮助您充分了解剩余的源代码?
2013年

10
第一个也是最重要的问题:您是否有合同?
Radu Murzea

5
如果我是替代程序员,那么我想要的文档就是他的工作范围:范围,里程碑,问题描述等。我希望他的代码保持原样,并且如果发现我的用处不大的话他的代码被可能无法尽我所能分析的人“记录在案”。
user16764 2013年

15
首先是将登录名和密码更改为您的服务器。
迈克尔·赖利

Answers:


17

基于我们在评论中进行的互动,我将假设您并没有因为个人原因而驱逐唯一的开发人员。但是,基于这段对话,我会再次猜测,这次挫折仍然主要是您作为招聘经理的责任。正如您提到的,您完全没有开发人员的经验,但是您如何决定如何聘请开发人员呢?

听起来您已经尽力了,但是您雇用了一个根本无法处理这个项目规模的人,他建立了摇摇欲坠的地基,在他身下瓦解,然后他就离开了。不幸的是,开发商和企业家之间的区别在于,前者每小时收取薪水,但他们可以选择随心所欲。他在工作时间得到报酬,当他选择不再获得报酬时就离开了。您无能为力。

所以现在怎么办?好像您开始走用流程代替人的道路。如果您只有足够的文档,人们可能会离开而其他人可能会从他们离开的地方接过。IMO无法正常工作,如果能够正常工作,它将比拥有可靠的永久雇员团队昂贵得多。在过去的30年中,各家公司的管理层都试图用足够的文档(包括我的上一份工作)替换人员,但每次都失败了。这就是为什么我决定更换工作,而现在他们却被他们过时且永远不准确的文档所困扰,而我正忙于在一家新公司中度过一生。

如果我是您,我将要做的是设法找到具有足够技能和经验的合适人选,以接手该项目并将其完成。这不仅包括编码技能,还包括设计,体系结构以及基本项目管理。不要试图定义他的工作方式或需要制作多少文件。只要专注于找到合适的人,并准备相应地付款。当您找到他时,请确保您的角色是支持他并消除他前进的障碍,而不是显示器/微管理。我并不是说您以前曾这样做过,但我确实知道很多经理都倾向于这样做,但这只会适得其反。

与其他企业家交谈,也许是那些具有更多软件工程背景的企业家。阅读这些论坛,并提出一系列问题以询问您的潜在雇员。提出问题并询问将采取何种方法。如果他是正确的人(并假设他没有看到此页面),那么他应该能够就您开始恢复时应在公司中采取的措施提出许多其他人已经提出的建议。请他定义一个计划,从他被雇用到您的v1.0发行。他将如何带您到达那里。寻求帮助采访这样的人。

我个人仅有几个想法:必须进行Bug跟踪(对于最多10人的团队,Jira的费用为10美元)。必须进行源代码控制(git是免费的。perforce最多要花5个左右的团队才能花掉花生)。您的代码就是您的文档。不是您的书面文件。他应该检查代码并保留可补救的内容;排除其余部分,集中精力编写可维护和可读的代码。保存一些高级,几页设计文档的文档。他必须知道您正在研究的技术。不要雇用有良好意愿的人;您无法让他们按时学习。询问他们完成了哪些其他项目(不幸的是,您或您找到的某个人可能必须跟上技术方面的步伐)。您正在寻找具有足够经验的人,但同时又不要太过兴奋的火花已经消失了。寻找渴望产生影响的人。他提出或遵循的方法应使您能够定期(一两周)查看工作并提供即时反馈。不要雇用任何人说它会在7.4个月内准备就绪,我会在完成时通知您。

祝好运


1
@pocto:人们在那里,但是您需要能够... a)负担得起b)找到他们(不幸的是,在那里我无法看到您的帮助)。但是,一旦您找到合适的人,他就会对当前情况(包括现有网站)进行盘点,然后致电。修复现有的错误并保留现有的客户绝对重要。确保这是他未来计划的一部分。您需要考虑的另一件事是,您确实需要找人来承担公司的大部分工作。也许不仅仅是寻找员工,而是寻找...
DXM

1
... 合作伙伴。作为补偿方案的一部分,请提供您公司的一部分(可能是20-30%?)。如果成功,您的收益将减少20%,但如果失败,则0的收益将增加20%,对您没有任何好处。这可能有助于激励您的新员工/合作伙伴,以确保他有与您相似的兴趣(即,使网站成功,而不仅仅是收集每周薪水)
DXM 2013年

1
Pocto,此处提出的某些观点未被普遍接受。例如,永远拥有同一个开发团队确实可以简化很多事情,但是(如您所知)您不能确保做到这一点。因此,需要文档和良好的代码,以便其他人员可以以较低(但仍然是巨大的)成本介入。对我来说,“兴奋的火花还没有消失”听起来像是纯粹的敏捷主义。管理软件开发非常困难-恐怕要区分好程序员和坏程序员将很难。
psr

@psr:我将每天使用具有良好命名/结构和高级设计文档的编写良好的代码,而不是使用带有大量出色设计文档的不可读代码。我并不是想成为一名敏捷主义者(sp?),但我相信我们的专业需要不断的学习和发展,而且随着技术的发展,很多工作不能仅凭工作完成。但是,我看到很多人都比我小,随着时间的推移,他们似乎只是在说:“我学到了足够的知识,现在我会工作”。我还见过比我年龄大一些的人,但他们做的不只是工作40个小时。
DXM

13

这是一个奇怪的情况,我很确定你没有讲完整的故事。我与许多人一起工作,其中一些人出于各种原因(我是他们的同事)离开了,但不要试图告诉我们一切都非常好,有一天只是没有联系。

但这不是问题。至少现在不再了;您应该从错误中吸取教训,并在以后不再重蹈覆辙。是的,我强烈建议50%是您对他/她离开的错。

现在开始解决当前问题:

  1. 尝试与您的程序员联系。他会阅读您的电子邮件-为他提供金钱以用于文档/修复最关键的错误。没有人能够比他更快地解决这些问题。不行吗 尝试找到他的工作地点,与该公司联系并讲述您的故事。一个好的公司不会雇用一个可以为他们做同样事情的人。至少他们会告诉他为您完成文档。

    注意:您不希望那个人回来,您只需要完成的文档

  2. 准备好一年的工作将变得空虚。当您要求结果时,他可能已经逃跑了,他知道他无法兑现。该代码可能充满了hack,肮脏的实现以及整体质量低下。即使他回来了-他可能也没有技能甚至没有时间做正确的事。

  3. 寻找另一个人。他需要了解相同的技术(编程语言,框架等)。如果代码质量很好-他可以继续,如果不能,则可以重构它。是的,重构需要花费时间,并且没有实现新功能,但是它使代码可维护,这就是您所需要的。另外,一个可以重构不良代码的人是一个非常好的程序员,请坚持下去。

    注意:提前付款是很愚蠢的。薪水的全部想法是为完成的工作付费。不是为了做出承诺:)

  4. 列出清单。制定计划符合您的最大利益。一旦阅读了技术规范,新程序员就可以了解工作和里程碑。至少具有三个重要文件:

    • 项目的总体描述-甚至使非程序员也可以知道项目内容的文档。

    • 时间轴-您希望什么时候准备好?已经完成了什么?

    • 技术规范-这是一个很长的规范。这是程序员想要阅读的文档。将其分为逻辑部分,并尽可能详细地描述特定部分的功能和工作流程。

与公司合作并不是很好。您的机会不会更好。如果只雇用一名程序员,您将多付10倍的薪水。如果您有一个小型团队(例如3-5人),只需雇用一名愿意成为团队负责人的程序员即可。他将在团队管理方面做得更好。


15
我不建议联系他的新公司并与他们谈论他。不管是否是事实,在美国至少这就是造成诽谤诉讼的可能性。
2013年

3
好的答案,但是...“薪水的全部想法是为完成的工作付费” ..那是哪个国家/地区?我们只是让一个人加入了我们的团队,花了一个月的时间而没有修改一行代码(在其他问题中)。我们付了整整一个月的薪水,但不得不辞退他,因为我们只是不知道他什么时候能有生产力。以我自己的经验(反映了迪尔伯特的经验),我可以上班和上班,也可以花一整天四处走动和交谈,而薪水却完全相同。
DXM

@DXM,您部分正确:即使您的工作不值得,您也将获得一个月的薪水。但这是政府保护的结果。这是一件好事,但并非总是如此。正如您所说-懒惰的人将无法长期保持职位。但我基本上同意您的观点。
Creative Magic

我必须-1以联系此人工作的新公司。如果他们丢了工作,他们可以起诉您。更重要的是,任何来自一个痛苦的人的文档或代码修补程序的质量都会很差,以至于您可能根本不想使用它们。
MrFox 2013年

8

之后由另一位程序员编写代码?告诉我不要走这条路,只是我自己的经验和见解。

在没有更详细的代码质量知识的情况下,我认为您最好的方法是雇用新程序员来修复错误,维护并可能进行所需的修改。

该观点具有可能进行修改(更改或添加)的关键点,因为它们需要满足要求。这意味着必须编写某种需求规范。这是一个文件。

这导致维护整个项目。您没有在问题中告诉您是否存在当前的程序要求,甚至没有粗略的功能文档,但这是您现在应该重点关注的地方。

如果此时您根本没有任何文档,那么由您自己来填补这一空白。您不能聘请程序员对您的应用程序进行反向工程,并奇迹般地从中删除文档。您必须“说明”程序要执行的操作(即使这意味着要重新说明已编写的程序。)

当您编写了该文档(以需求或功能规范的形式)时,雇用新的程序员将为您带来更好的结果,因为您可以移交文档并从那里开始工作。

还有许多程序会从源代码中产生文档,这是产生解释实际源代码框架的好方法(这是在技术规范领域),您只能在解释以下内容的技术方面进行工作:功能规范中指定的功能,功能规范指定了需求规范中指定的需求功能。

所以是的,我的意见是聘请程序员来修复错误。在他修复了您同意应修复的错误之后,您可以将文档编制方面作为另一个合同进行讨论。幸运的是,您聘请了一位经验丰富的程序员,可以为您从那里下一步应该采取的步骤做出贡献。


Raybarg,这是一个非常全面而有用的答案。我认为您说的话很有道理-首先聘请另一位程序员来修复现有的错误,然后再讨论文档编制方面的问题作为另一份合同。我什至希望程序员在修复该错误后能够长期支持他,因此这将起作用。
pocto

@Raybarg关于“修复bug之后,请注释内容”:我敦促您在修复bug的同时做评论。毕竟,这个阶段是您收集所有知识进行记录的地方。因此,为什么不立即写下来呢?它只会帮助更快地找到并修复更多的错误。
Marcel

@Raybarg,您能否进一步解释一下您在这里所说的“从源代码生成文档的程序”。真?这些是什么程序,它们如何工作?
pocto

3

这是解决问题的方法:

  • 您具有领域知识。您知道现在网站上提供了哪些功能,您将来希望添加哪些功能,并且可能还会列出用户报告的一些错误。

  • 那里有一堆代码,放在角落里。它可能是越野车,但由于该站点拥有活跃的用户,因此仍然可以带来价值。因此,完全重写将是IMO的错误。

程序员离开时,您的领域专业知识和代码之间的桥梁就被打破了。您需要重新构建它,以便代码库可以再次与您的需求同步,并可以开发将来的更新。

问题是,桥梁不能完全由文档构成。软件和技术一样,都是人类的事情。如果您不向新程序员详细解释您的期望,那么他或她将很难从仅代码中推论出这一点-如果以前的程序员编写的是神秘的,文献记载不充分,测试欠佳的代码,则更是如此。而且,如果您不与新程序员紧密合作,无法找到一种自动,连续的方式来验证代码是否符合您的要求,换句话说,就是要使桥梁更坚固,问题就注定会重演。

  • 定期(甚至实际上)与新程序员坐下来进行领域知识处理会议。在每个会话中,共同编写产品一小部分的规格。它可以是单个网页,也可以是功能。将它们设置为可执行规范(行为驱动开发)会提高您对桥接器工作的信心,因为您可以连续运行它们,并在出现问题时发出警告。这也将使开发人员的生活更加轻松。

    会话结束后,开发人员可以返回工作并编写较低级别的测试,以验证当前代码是否符合规范。如果不符合要求,则程序员拥有修复它所需的一切。对于他可能遇到的任何问题保持联系也很重要。

  • 尝试在您和项目中的程序员之间保持紧密,连续的协作,并确保他们之间也是如此。如果您希望延续项目的功能和技术文化,而避免像现在这样的问题,这是必要的。当然,这不仅需要2个以上的开发人员来从事您的项目,而且还需要彼此共享有关编写的所有内容的知识。因此,当另一个丢失时,它可以充当故障转移。技术,如结对编程代码审查是实现好办法。

1

加上大家都说的话,

如果您甚至不能花钱就让老程序员记录他/她的代码,那么不要指望别人能更好地对其进行记录。因此,这里有一些选项可供您选择,以使新程序员在第一天就可以高效工作。

  1. 获取一个错误数据库,然后开始将您发现的所有错误输入其中。这是程序员的优先事项清单。妥善记录并尽可能详细(源文件/根本原因,其作用以及应做的事情)。有很多免费的错误跟踪软件,例如BugzillaRedmineJIRA。随意使用任何您喜欢的。
  2. 为您的项目创建一个规格表。在清除错误之后,这将为新程序员提供一些指导。您可以查看Joel的书写规范指南
  3. 为您的项目创建时间表或时间表。他们应该有截止日期和里程碑,在该截止日期和里程碑中,他们应为自己所做的工作获得报酬,而不是提前付款。

既然这样,您就可以开始寻找程序员了。就像Creative Magic所说的那样,将工作外包给公司可能会导致灾难或将价格飙升到无限甚至更高。

这次,请雇用程序员时开始针对总线因素进行适当的规划。人们来去去去,您无能为力,所以这次要招募两名程序员,或者像Uooo所说的,请一名程序员和一名测试员,为最坏的情况做准备。

现在,一旦程序员和您同在店里,您就可以开始要求他们记录自己的代码,而不是要求他们记录旧代码,真的,算了。

聘请新程序员时要考虑的其他事项,请确保他们知道源代码控制和自动化测试。另外,在他们的帮助下,尝试使Joel Test尽可能多地获得检查,您只能自己完成这么多检查。


0

因此,您唯一的程序员被总线撞了,您现在需要更换。

您可以根据您的合同尝试起诉您的前程序员,或者找出他的问题所在。假设他不会再回来,那么这对您没有帮助。

  • 您想完成您的产品,因此请寻找在维护和开发现有系统方面有经验的程序员。我不会专注于告诉您的程序员按什么顺序做什么。确保聘请专业人员,并在必要时撰写文档和单元测试。
  • 从您的角度来看,您可以确保新程序员拥有 他的工作所需的一切:需求规范,功能强大的工作机等。您需要专业的程序员,因此请为他提供专业的工作环境。

另外,考虑雇用第二个开发人员,以使将来这种困难的情况变得更容易。测试人员也将对质量保证很有用。


非常感谢Uooo的回答。我特别喜欢雇用第二个开发人员来使这种情况在将来更容易的部分。但是第二个开发人员的工作是什么?
pocto

@pocto维护和开发软件。正如所写:我不会专注于告诉您的程序员按什么顺序做什么。当需要修复错误时,应该这样做。当需要实施新功能和单元测试时,需要编写文档,这应该完成。您不需要雇用“ Bugfixer”,“文档编写者”或“功能实现者”,而是雇用软件开发人员。他的工作就是做到所有这些。
Uooo
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.