【问题标题】:Becoming the most efficient one-man team [closed]成为最高效的单人团队[关闭]
【发布时间】:2010-11-21 23:53:32
【问题描述】:

和这里的许多人一样,我是一个单人开发团队。我负责收集项目需求、设计概念屏幕、规划和开发数据库以及编写所有代码。

成为一个单人团队很好,但也有负面影响。我没有能力快速咨询其他开发人员,我的代码很少有第二眼,而且我相信你们也可以提出许多其他负面意见。

为了充分利用我的时间并最有效地投入工作,我可以在日常工作中实施哪些技巧或做法,以尽可能成为最好的单人团队?

【问题讨论】:

  • 只是想知道:当你去度假时会发生什么?企业如何处理长时间没有开发人员的问题?
  • @Andrew 实际上,在我工作的这些年里,我只休过一次假期。过去,我只是在假期里兑现额外的工资。大约 2 周前,我刚刚度过了第一周的实际假期。在我的“休假”期间,我仍然每天工作约 30 分钟以保持一切顺利。

标签: performance time-management


【解决方案1】:
  • 确保尽早并经常进行重构。这几乎就像第二双眼睛(至少对我而言)。
  • 不要疯狂工作(如果您在家工作,这尤其棘手)。实际上,由于即将到来的休息/下班压力会提高您的效率,因此工作 小时通常会更有效率。
  • 您可能需要查找 Parkinson's Law 以进行工作/时间管理。

【讨论】:

    【解决方案2】:

    根据运筹学,最短的工作优先是完成最多工作量的最佳调度程序。

    【讨论】:

    • 上述研究的任何链接?我会对此非常感兴趣。
    • 虽然不是研究,但这里的维基百科:en.wikipedia.org/wiki/Shortest_job_next
    • 应该强调进程饥饿这一点!因此,从一些有影响的短任务开始新的一天,但也要继续处理更大的任务。
    • 确实,虽然我总体上喜欢这个想法,但我可以很容易地看到一些任务永远不会完成,因为更新、更短的任务不断出现。我想这是关于平衡,就像所有事情一样。
    【解决方案3】:
    • 每天要做的事情清单。

    • 尽可能多地消除干扰,专注于任务。关 电子邮件、关闭 IM 等……即使 在一段时间内,然后 在休息期间检查它们。

    • 花时间了解其他编码技术、工具和编程智慧。我发现这对我的发展至关重要。编写代码并感觉富有成效是很容易的。如果您拥有更多的知识/武器来破解下一个小部件,那会是什么情况。我知道这听起来确实适得其反,但事实并非如此。知识/知道如何是我们的真实货币。我们知道的越多,就越能更好地决定应该如何做某事,并且做得更快。

    • 休息一下,注意你的 身体。当我们累了,我们不 好好想想,会做得更多 错误,变得更加沮丧 轻松等等……

    • 学习使用 80 / 20 规则 优势。我不是说吝啬或成为 懒惰的。虽然我们经常会工作 当它不是时,减少那 20% 必要的。

    • 为自己设定目标(每天, 每周一次,每两周一次)。确保 目标也与你一致 正在编码,或者你可能会找到你 浪费了一些时间。

    从技术方面考虑:

    • 考虑单元测试/TDD。我在 我自己的工作,这实际上节省了 时间。需要一段时间才能得到 悬而未决,但你会做任何事情 变得更好。
    • 注意您的代码。重构它 (特别是如果你开始单位 测试)。你的代码越好 越容易维护 花费更少的时间。越容易 了解你可以更快地改变 / 实现功能。

    【讨论】:

    • +1 用于学习和维护您的代码(尽管其余部分也很好)。我已经使用不同的开发风格(正如我所学到的那样)编写了代码部分,并重构了效率较低/更难维护的部分以匹配其他部分。效果很好。
    • 它在你的列表中,但只要有可能,每天设定一堆可实现的小目标有助于我提高工作效率和感觉工作效率。在一天开始的时候,我只是应用 80/20 规则来计划我应该在白天做什么。另一个重要的事情是保持技术更新,否则我们仍然会严格按照汇编和命令式范式进行编程......
    【解决方案4】:

    我编写并运行集成和系统测试,但没有单元测试,因为我不需要早期(预集成)测试:Should one test internal implementation, or only test public behaviour?

    康威定律的一个推论是,您需要测试分离/集成开发人员的内部软件接口,而“单人军队”不需要以这种方式显式测试他的内部接口。

    【讨论】:

      【解决方案5】:

      我正在学习花费比以往更多的时间来计划我的一天。这包括计划项目,直到为我需要做的编程编写伪代码。我发现,由于日程安排中的所有中断,我很难开始做某事。将所有内容分解为小任务可以让您在中断后更容易开始。

      【讨论】:

        【解决方案6】:

        我使用一个文本文件来收集我每天所做的所有事情。每次遇到问题或有疑问或找到解决方案时,我都会将其添加到我的文件中。它的技术含量很低,但它提供了丰富的信息,例如“我大部分时间都花在哪里?”或“我之前是如何解决这个问题的?”。还可以超级快速地在结算周期结束时为您的客户提供小时列表。

        我还使用另一个文本文件(每个客户),其中包含我盘子上的所有工作项目,按优先顺序排列,并且经常更新。它可以帮助我和我的客户专注于我接下来应该做的事情,因此泵始终处于启动状态。

        最终我会从纯文本文件转移到使用 FogBugz 之类的东西,但现在我无法超越价格,或者搜索的容易程度,或者电子邮件的容易程度。

        【讨论】:

        【解决方案7】:

        许多其他技巧都很好,但它们同样适用于团队中的开发人员以及单独的开发人员。

        我认为,作为一个人的团队,最困难的事情是与公司其他成员进行有效沟通。在任何关于如何最好地构建软件的会议或讨论中,您将永远是一个孤独的程序员。

        因此,我建议您尝试提高谈判技巧,并专注于改进以非程序员可以理解的方式描述技术概念的方式。阅读诸如Getting to YesHow to win friends and influence people 之类的书籍是一个不错的起点。

        当不止一个人就某个观点达成一致时,该观点会自动获得您试图说服的人的信任。在没有这种可能性的情况下,你需要更加努力地准备你的论点,用经过充分研究的证据和平衡的观点。

        【讨论】:

        • +1:我是一个孤独的程序员,让老板或团队(一个几乎总是能说服另一个)站在我这边是第一要务。
        【解决方案8】:

        我也有同样的情况。上面已经有很多很好的建议,但我要补充的一件事是找到最佳编码时间,并确保你在这段时间内进行编码。我早上有几个小时似乎在编码方面处于最佳状态。我尽量让那段时间不受任何干扰。计划会议、编写文档、测试(至少是乏味、重复的事情)以及所有其他事情,以减少工作效率。当您的编码效率提高 2 到 5 倍时,保留这些编码时间。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多