Questions tagged «time-management»

17
当要求您做出估算时如何应对?
作为程序员,我们经常被问到“需要多长时间”? 而且,情况几乎总是这样: 要求不清楚。没有人对所有含义进行深入分析。 新功能可能会破坏您在代码中所做的一些假设,并且您立即开始考虑可能需要重构的所有内容。 您从过去的工作中还有其他事情要做,您将不得不做出一个将其他工作考虑在内的估算。 “完成”的定义可能尚不清楚:何时完成?就像刚刚完成编码一样是“完成”,还是像“用户正在使用它”那样是“完成”? 无论您对所有这些事情有多有意识,有时您的“程序员的自尊心”都会使您付出/接受的时间比您最初预期的要短。特别是当您感受到截止日期和管理层期望的压力时。 其中许多是组织上或文化上的问题,这些问题不容易解决,但最终,现实是您被要求提供估计,他们希望您给出合理的答案。这是你工作的一部分。你不能简单地说:我不知道。 结果,我总是最终给出估计,后来我意识到自己无法实现。它发生了无数次,我始终保证不会再发生。但是确实如此。 您确定和提供估算的个人流程是什么?您发现哪些技术有用?

30
为什么IT行业无法像其他行业一样快速交付大型,无故障的项目?
看完《国家地理》的MegaStructures系列影片后,令我感到惊讶的是大型项目的完成速度如此之快。在纸上完成了初步工作(设计,规格等)后,大型项目的实现本身仅需要数年甚至数月的时间。 例如,空中客车A380 “于2000年12月19日正式发射”,以及“于2005年3月上旬”已经对飞机进行了测试。大型油轮,摩天大楼等也是如此。 将此与软件行业的延迟进行比较,我不禁要问为什么大多数IT项目如此之慢,或更准确地说,如果有足够的人员,为什么它们不能在相同的规模下同样快速,无故障? 诸如空中客车A380之类的项目都具有以下两个特点: 重大的不可预见的风险:虽然这不是首架飞机,但它仍然推动了技术的极限,对于小型客机而言,运转良好的事物可能由于物理限制而不适用于大型客机;以同样的方式,使用了尚未使用的新技术,例如,当波音747于1969年制造时,它们就不可用了。 总体而言,与人力资源和管理相关的风险:项目中途退出的人们,因休假而无法联系到某个人,常见的人为错误等。 有了这些风险,人们仍然可以在很短的时间内完成像大型客机这样的项目,尽管交付延迟,但这些项目仍然取得了巨大的成功,而且质量很高。 在软件开发方面,这些项目几乎不如客机那么大和复杂(从技术和管理角度而言),而来自现实世界的不可预见的风险则要少一些。 不过,大多数IT项目进展缓慢且迟到,并且向项目中添加更多开发人员并不是解决方案(从十人的开发团队到2000个开发人员的团队有时可以更快地交付项目,有时不能,但是有时只会损害项目,并增加根本无法完成的风险)。 仍交付的那些可能通常包含很多错误,需要连续的服务包和定期更新(想象一下,每周在每架空客A380上两次“安装更新”,以修补原始产品中的错误并防止飞机坠毁)。 如何解释这种差异?是否仅由于软件开发行业还太年轻而无法在一个项目中管理成千上万的人,以便快速交付大规模,几乎无故障的产品?

21
客户希望我录制有关如何开发他的软件产品的视频
作为自由职业者,我经常看到客户提出奇怪的要求,其中一些可能会对我的日常工作产生负面影响¹,而另一些则试图设置某种控制权。我通常会在初步谈判中遇到这些问题,因此在这种状态下很容易向客户说明我确实关心自己的工作和生产力,并希望客户信任我的工作。 我刚刚接受的项目的工作要困难得多²,因为这是在谈判结束之后(合同已经签订,没有提及视频跟踪),并且在我开始从事该项目后,客户要求我记录在他的项目上工作时我在机器上所做的所有操作的视频,即将显示我移动光标,键入字符,打开文件,移动窗口等的视频。 我使用自己的PC在自己的公司工作。 我向该客户回答说,由于以下原因,该请求无法接受: 在双屏PC上数百小时的工作将需要大量磁盘空间来存储录制的视频。如果我不在乎空间,那么我会在乎这个客户浪费我的带宽来下载那些视频。 录制视频会影响整体性能并降低我的工作效率(实际上并非如此,因为该机器功能强大,足以录制此视频而不会造成性能损失,但是,看起来仍然是有效的论据)。 我不总是记得在开始工作之前打开视频记录,然后在结束时关闭它。 这可能是隐私问题。如果在录制视频时切换到邮件怎么办?如果要打开包含有关此客户项目文件的目录,该如何打开包含所有客户列表的父目录,该怎么办? 这样的视频不能成为一个可靠的消息来源,以跟踪项目(我按小时收费)的成本,因为有些工作只用铅笔和纸(这做是真正正确的,因为我做很多工作草案没有使用PC)。 尽管有这些要点,客户还是认为如果我不想录制视频,那是因为我有一些隐藏的东西,并且想知道他在项目上花费的实时时间³。 如何向他解释,自由职业者录制日常工作的视频不是通常的作法,而这种奢侈的要求必须留给特殊情况⁴? ¹最常见的示例是要求通过速度超过Internet速度较慢的速度较慢的服务器上的Remote Desktop进行工作,或者被迫在没有严重理由的情况下将过时的软件用作Windows Me支持。 ²实际上,我已经做了很多与管理和系统设计相关的工作,这是必不可少的,但通常会被客户误解,并浪费时间和金钱。观察相关客户,我非常确定他将拒绝为已经完成的工作支付大量资金,因为实际上代码行为零。即使从法律上来说,我可以轻松地证明在设计级别上还有很多工作要做,但我也不想在法庭上终止与该客户的关系。 ³由于我将这个项目的预期成本和最大成本交给了该客户,因此风险不那么大,因此,即使是客户,也绝不会被要求支付超过合同规定的最大金额的款项。如果实际工作花费更多。 I当我有效地主动记录操作视频时,就是必须直接在客户的生产服务器上进行一些操作,特别是在涉及安全问题时。记录这些步骤可能是一个好主意,以准确地了解已完成的操作,并确保我的工作中没有错误,或查看这些错误是什么。 更新: 首先,感谢您的所有回答和评论。 由于这个问题比我预期的吸引了更多的注意力并且得到了更多的答案,因此我认为它可能与其他人相关,因此我添加了一个更新。首先,为了总结答案和评论,建议(随机排列): 建议其他跟踪方式,如Twitter Code Swarm视频中所示,或提供“具有简单,清晰可交付成果的简短里程碑,然后是更复杂的里程碑”,等等。 说明该视频不是可靠的资源,可以被伪造,并且很难实施,尤其是在支持方面。 说明该视频不是可靠的信息源,因为它仅显示了一部分工作:无需使用计算机即可完成大量工作,还不包括考虑解决问题所花费的额外时间。 遵守合同;如果客户想要更改它,则他必须期待新的谈判和更高的价格。 录制视频,“但要求客户将全部费用存入托管账户”,要求律师录制所有可计费时间等录像带,换句话说,“在没有信任的环境中工作”,要求客户负担额外费用。 搜索禁止这样做的法律。几个人问我住在哪个国家。我在法国。此类法律的存在是为了保护公司的员工(对于安全摄像机等有严格的规定,但是我敢肯定,任何事情都不能禁止自由职业者自觉签订合同,强迫他在从事项目工作时录制屏幕。 只需发送视频即可:客户将“观看几十秒钟他不理解的活动摘要”,然后将这些视频扔掉。 说不。毕竟,这是我的工作,而且我是唯一决定如何进行业务的人。另外,合同已经签订,与视频跟踪无关。 说不。我在公司中采用的流程和实践可以被视为商业秘密,并且可以分类。 放弃。如果这种关系开始的话,很可能不久或以后就会严重终止。另外,“如果他像小偷一样对待您-那就是他的建议-那么当XYZ功能无法完全按照他的预期工作时,情况只会变得更糟”。 尽管所有这些建议都同样有价值,但我个人选择对客户说我接受制作视频,但是在这种情况下,我们必须重新协商合同,同时要记住,这会产生相当大的成本,包括版权发布的额外费用。新的总成本平均为项目实际成本的三倍。认识这个客户,我完全可以确定他绝不会接受这么多钱,所以问题就解决了。 第二次更新: 考虑到大量的额外费用,客户实际上拒绝了重新谈判原始合同的提议。

22
开发人员如何找到时间掌握最新技术?[关闭]
我是一名自由职业的Web开发人员,直到2004年左右,当我开始走上管理之路时,我决定再次尝试重新开发(特别是JavaScript和HTML5 Web /移动Web应用程序),我的确给人以真正的擅长这些技术和类似的快速发展技术除了学习新技能之外,还需要拨出一定的时间来投资以提高现有技能。 我现在就了解了,因为我重新开始学习时,学习曲线非常陡峭,但是看到那里有很多人-我看到的唯一的方法就是花大量的时间。 对于那些从事全职开发人员的工作,我想了解的是-在大多数情况下,与学习/研究相比,在办公室实际花费了多少时间来编写代码。我可以轻松地每天花费2-4个小时来掌握做事的最佳方法。 大多数全职工作的优秀开发人员是否在工作以外投入大量时间提高技能? 还是我正在查看所有这些完全错误的信息?

16
如何阻止开发规范在中间开发阶段发生变化?
问题:似乎我参与了几乎所有开发工作,无论在开始开发之前花了多少时间进行计划,在项目中期或项目结束时总是需要进行大量更改。这些有时是重大变化,需要大量重新开发。 我不为付钱的客户工作,这是内部开发网站上的内部开发团队。因此,这不是我可以为此付费的费用。最终,我们必须尝试按时完成任务。 问题:你们发现哪些最佳方法可以最小化并防止规格更改在开发中途或开发后出现?

10
如何开始和维护下班后的项目
我是一名专职开发人员。但是,我的工作场所对我可以使用的技术和编程语言有很大的限制。所有工作都在C ++中完成。 显然,C ++正在迅速失去(或可能已经失去)领先地位。(请不要激怒我,我有多年的C ++经验,我喜欢这种语言,我只是在陈述一个事实)。我对Java / Android项目以及我想在C#中实现的项目有一些想法。我认为这是我跟上就业市场趋势的一种方式,我希望它可以帮助我在更新的领域中找到我的下一份工作。 所以这是问题所在: 我的正常工作时间是10-11个小时,与孩子们一起完成家务劳动后,我大约会花1-2.5个小时,然后我就不会觉得累了,更少的代码了。那时我要沮丧地上床,对自己无法遵守自己的计划感到失望,然后第二天早晨我又醒来重新做一遍。 周末我还有几个小时的时间,但是如果我想实现自己的任何目标,显然我需要做些不同的事情。 我有什么办法可以更好地利用自己的时间?你们中有人有类似的问题并且已经成功解决了吗?

19
如何处理“停车点综合症”?
我发现自己的行为被称为“停车点综合症”……这意味着我无法停止工作,直到达到“停车点”(否则我就会精疲力尽)。换句话说,如果我在致力于完成某项功能的区域中,那么直到完成它后我才会停止。如果这是我正在研究的错误,那么这种影响会更加明显……直到它被修复,或者至少是被理解后,我才会停止。即使我使用笔记本电脑工作并且拥有VPN,并且可以在当晚晚些时候轻松回家并继续工作,但这一事实并不能帮助我离开工作……这好像是我会在发现bug之前就死掉了。 我很难向家人解释这一点,他们无法弄清楚为什么我从不同时下班回家,有时有时是晚上11点回家。即使是经理,也对此感到迷惑不解,而且我注意到,大多数同事每天在同一时间工作没有任何麻烦。 还有其他人有这个问题吗?我应该为此担心或尝试更改它吗?如果可以,怎么办?

15
如何在非常紧凑的时间表上进行编码?
我正在做一个进度很紧的项目。我没有太多时间进行编码和测试(即使我每天工作超过12个小时,但仍会延迟),结果非常脆弱。它的代码也很两难。 我们的客户公司在许多国家/地区的所有办事处都使用此程序。我经常在午夜接到有关我们的用户/测试人员的错误或他们不知道如何使用某些功能的电话。 在这个项目上工作了三年之后,我感到非常压力,无法入睡,因为我非常担心错误和电话。 我有几个问题: 三年来,我编写的所有代码都是完美的使用场景代码(因此很容易破解)。它的设计很差,没有任何单元测试。由于这个事实,我有很多问题。因此,我想知道在项目进度很紧的情况下编写可以运行的代码是否可行? 如何在相同的时间内编写更好的代码? 睡觉时我该如何清除内心的烦恼而又不担心工作呢?

19
程序员同时从事多个项目是否正常?
在目前的工作中,我有两个项目需要处理。第一个是非常庞大的系统,第二个较小,但规模也很大(第一个项目的开发时间为12年,第二个项目的开发时间为4年)。 起初,我只从事第一个项目,并试图适应它。然后我被转移到第二个项目并在那里尝试,所以我对第一个项目的了解变得阴暗。现在,我必须同时处理两个项目。 这对我来说很难,因为尽管它们都使用Java,但是它们使用不同的框架,并且要理解的代码和业务逻辑的数量非常大,所以我真的无法将这两个项目都掌握在心中。 这是正常的,我应该习惯了,尽管我的专长变得非常谦虚,但是如果我只从事单个项目,那怎么办?还是我应该引起关注或更换雇主?

8
专业发展应该在公司时间进行吗?
作为一家小型咨询公司的兼职软件开发人员,我正在努力组织时间以发展自己的软件开发知识-是否正在读书,紧跟StackOverflow上的常见问题,研究一种技术,正在深入使用,或关注Hacker News的首页。我可以从自我分配的学习时间中看到结果,但是列出和证明通过“专业发展”获得的技能和知识很困难。 该公司没有任何已定义的PD策略,并且要立即完成可交付成果存在很大的压力!在为顾问工作时。我检查了我的同事所做的事情,他们似乎没有花任何时间进行自我完善。他们只是解决他们遇到的问题,根据需要查找特定的MSDN参考,代码示例等。 我意识到,PD政策在不同规模和文化的公司之间会有所不同,像我这样的公司可能会处于边缘状态。我很想听听经验丰富的开发人员的观点和经验;特别是那些必须在其团队或公司中选择PD策略的人员。 我也想了解更彻底的PD方法,即使它们已经完全存在。看看其他人在尝试什么总是很有趣的。 并不是一个摘要,但是我想问的是: 公司分配PD时间是普遍的还是建议的? 确保开发人员的知识和技能是最新的是谁的责任? 兼职工作时间表是否应激发较低的PD工作时间比例? 开发人员如何向非开发人员同事表明阅读博客和书籍可以产生净收益? 阅读博客和书籍实际上能产生生产力吗?(欢迎引用) 写博客作为PD的一种方式有效吗?(有关“黑客新闻”的最新主题) 这是一个广泛的问题,因为我不完全知道我需要在此处提出哪些问题,因此,对于未解决的相关问题的任何想法都非常受欢迎。

24
您如何专注于工作?[关闭]
有时候,我要做的事情很有趣而且很有趣。有时候,事实并非如此。有时候,他们确实不是。 当您的大脑宁愿做应做的事情以外的其他事情时,您是否有任何特殊的策略或技巧来应对这些枯燥的事情,尤其是当互联网及其无穷的机会吸引有趣的Slack时?


7
在很少的时间内如何做出重要的技术决策
我有2天的时间对公司要使用的工具和平台做出非常认真的决定,以便将其WPF应用程序移植到Linux / Android / iOS。 显然,我可以指出,我的前辈说,只有2天时间不足以阅读所有可能的选择,以及尝试,制作原型等内容。我可以说,这对我没有帮助,我有2天的时间,并且2天后将做出决定。期。 一方面,我感到沮丧,另一方面,我认为这种方法有一定道理,否则,我很容易陷入很多下载的SDK,框架,API,博客文章等之中,沉迷于做基准工作,运行示例并忘记了过程的全部目的。 仍然我担心,错误的决定将使公司付出沉重的代价。那么,您认为做出此类决定的“理想”过程是什么?

9
抽象:解决问题和一般解决方案之间的战争[关闭]
作为一名程序员,我感到自己陷入困境,希望使我的程序尽可能抽象和通用。 这样做通常可以让我重用我的代码,并为可能(或可能不会)再次出现的问题提供更通用的解决方案。 然后我脑海中的声音说,解决问题虚拟化就这么简单!为什么要花比您更多的时间? 我们所有人的确都遇到过这个问题,抽象在您的右肩上,而“解决问题的愚蠢”在左边。 听哪个,多久听一次?您对此有何策略?您应该抽象一切吗?

5
我编程太慢了吗?[关闭]
我从事该行业只有一年,在评估特定任务时遇到一些问题。是的,在您关闭此内容之前,我已经读过此内容:当要求您提供估算值时如何应对?那就是我遇到的同样的问题。但是我正在寻找更具体的经验指标,这些东西应该是可量化的,或者可能是其他程序员的平均表现,我应该以此为基础并进行估算。答案从几周开始不等,我一直在寻找有关一天左右分配的任务级别的答案。(请注意,这不包括提交质量检查或文档,仅包括从编写测试(如果使用TDD到编写页面)到提交测试之前的实际开发时间) 我现在的当前速度如下(在ASP.NET网络表单上): 现在,在一天的时间(8小时)内,我已经能够在一个已经构建的架构上开发一个简单的数据输入页面,其中包含一个网格列表(没有复杂的逻辑,只有创建和读取)。 添加复杂的功能以及“更新”和“删除”页面会使任务再增加一整天。 如果我必须从头开始页面(没有解决方案,没有现有网站),那又要花整整一天的时间。 (并非总是如此),但是如果我遇到新的东西或尚未完成的事情,则需要我整整一整天。 每当我做出比预期更长的估计时,我都会感到其他人认为我与其他所有人相比落后很多。我只是担心,因为人们一直期望只有一页,而这一天只需要我一整天。是的,肯定还有更多的改进空间。总有。我有很多要学习的。但是我想知道我目前的速度是太慢了,还是平均水平,还是行业内不超过一年的人的平均水平。

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.