Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Project management 怎么不着急呢?_Project Management - Fatal编程技术网

Project management 怎么不着急呢?

Project management 怎么不着急呢?,project-management,Project Management,我经常发现我在一个特性上做的工作不够完整,尤其是在设计阶段。我发现了几个原因: 我过于乐观了 我觉得有必要提供快速的解决方案,所以有时我会骗自己认为设计是防傻瓜的,而实际上它仍然充满漏洞,只是为了更快地完成工作。当然,我后来付出了高昂的代价 我意识到自己的这种行为已经有一段时间了,但我仍然发现自己无法弥补。你遇到过类似的问题吗?你是如何解决这些问题的?我经常遇到这个问题 我的解决方案是一个笔记本。(老式的纸张) 我将计划如何实施该解决方案作为一个项目符号概述列表,然后尝试充实列表中的每一点 在这

我经常发现我在一个特性上做的工作不够完整,尤其是在设计阶段。我发现了几个原因:

  • 我过于乐观了
  • 我觉得有必要提供快速的解决方案,所以有时我会骗自己认为设计是防傻瓜的,而实际上它仍然充满漏洞,只是为了更快地完成工作。当然,我后来付出了高昂的代价

  • 我意识到自己的这种行为已经有一段时间了,但我仍然发现自己无法弥补。你遇到过类似的问题吗?你是如何解决这些问题的?

    我经常遇到这个问题

    我的解决方案是一个笔记本。(老式的纸张)

    我将计划如何实施该解决方案作为一个项目符号概述列表,然后尝试充实列表中的每一点

    在这个过程中,我经常会遇到一些我没有想到的问题

    当然,80/20规则仍然适用。。。我在实际执行过程中仍然会遇到一些我没有想到的事情,但随着经验的积累,这些事情往往会减少


    编辑:如果在这个过程结束时我仍然不确定,我会建立一个一次性原型测试台。。。确保它是一次性的很重要,因为否则你就有可能在你真正的代码库中包含一些令人讨厌的黑客行为。

    经过多年的错误(尽管仍在犯),我认识到,几乎任何我想重复使用或分发的东西都需要正确设计。因此,被灼伤足够多的时间将结束你的乐观情绪


    当受到管理层的压力时,我告诉他们,无论如何,我都必须考虑一下,所以我应该在便宜的时候做。我也会在纸上思考,所以我可以证明我在做什么,它让我的手指保持在键盘上,这两者都能给管理层带来舒缓的效果

    在项目的规划阶段,尤其是在软件开发领域,错过边缘案例和细节是很常见的。请不要觉得这是个人的失败;这是一种地方病

    为了应对这种情况,出现了许多软件开发方法。最近,许多开发团队已经转向了“敏捷”方法,在这种方法中,重点放在快速开发上,而前期技术设计很少(毕竟,许多复杂性只有在您真正开始开发时才会发现)。我目前正在使用Scrum系统,它在我的小团队中非常出色:

    如果您发现您的组织不会接受他们可能认为的方法的根本转变,那么可能值得调查他们是否同意开发原型系统。这意味着您可以编写一个功能来调查所涉及的技术并判断其是否可行,而无需承诺全面开发、质量标准、测试计划等。一旦可行性得到证明或否定,原型就应该扔掉,然后开始适当的开发,包括你在这个过程中学到的一切

    如果您的问题更多地与时间管理有关,那么我建议使用“完成事情”方法()。这是一个实用而简单的方法,专注于让你的工作效率更高,而不会给你带来与当前工作无关的信息。我发现我有时会被项目/功能的想法压得喘不过气来,把所有的东西都写下来,然后在我有足够的资源有效工作的时候归档,这真的很有帮助


    我希望这有帮助,祝你好运

    冒着听起来很明显的风险——要悲观。我有过几次经历,我认为“这应该需要几个小时”,结果花了几天时间,因为所有的小事情都出乎意料地出现了

    到目前为止,我发现管理事情的最好方法是(很像Andrew的回答)写出设计和需求作为起点。然后,我仔细检查并寻找设计中的弱点、陷阱和其他用例等。我试图将其视为一个关键的练习——目前还没有编写代码,所以现在是时候完全无情地寻找每个弱点了。查找您必须处理的错误情况,无论您认为完成每个特性/功能需要多少时间,都要将该时间大大缩短。我曾经有过这样的经历:我的初始估计值翻了一番,但仍然离目标不远

    作为程序员,很难实际地预测调试时间——编写代码很容易估算,但将其调试成有效的代码完全是另外一回事。因此,我发现它没有确切的科学依据,但我只是把任务分成一大堆,这样我就有足够的喘息空间进行调试


    另请参阅FogCreek为其FogBugz产品开发的调度中的一个迷人概念。

    您和世界其他地方

    您需要更详细的设计、更准确的估计,并愿意接受有时最佳解决方案不一定是最佳解决方案的事实(例如,您可以在汇编程序中编写一些循环以获得最佳性能,但这将花费比仅仅这样做更长的时间)

    for (i=1; i<=10; i++) {} 
    

    用于(i=1;i我使用了两种技巧。第一种是一张简单的纸上待办事项清单。早上我写下一天的任务。我努力完成一项任务,直到我能把它划掉。只有当我完成到自己满意的程度时,我才把它划掉。我的待办事项清单帮助我保持注意力集中。当有人打扰我时,我可以有意识地选择它是否不重要这足以打断我正在做的事情

    我使用的第二种技术是放弃设计“完成”的想法。相反,我将重点放在我开始称之为“继承”的东西上,即设计经历可预测的阶段。每个阶段都很好地支持当前的功能,并且在某个时候会被网元成功