我最近一直在考虑软件估算,而且我有很多关于编码时间的问题.我很想听到那些至少有几年开发软件经验的人.
当你必须估计你花在工作上的时间时,你花了多少时间进行编码?占用其他非编码时间的是什么?
您是否发现您花费的时间比您的队友编码更多或更少?你觉得你做的工作比他们更多或更少吗?
你的工作条件是什么样的?私人办公室,共享办公室,团队室?单独编码还是成对编码?您的工作条件如何改变您每天编码的时间?如果你可以在家工作,这有助于或损害你的生产力吗?
您使用什么开发方法?瀑布?敏捷?从一种方法改为另一种方法对每天的编码时间有影响吗?
最重要的是:您对自己的工作效率感到满意吗?如果没有,你会做出什么样的改变会对它产生最大的影响?
我是一名企业开发人员,Joel Spolsky在一些StackOverflow播客中称之为"郁闷".由于我的公司不是软件公司,因此几乎没有商业理由来实施软件专家建议公司参与开发人员生产力的许多措施.
我们没有私人办公室和双30英寸显示器.我们的源代码控制系统是Microsoft Visual Source Safe.说够了.另一方面,我做了很多事情,填补了我的一天,并为我的工作增添了一些变化.我参与业务分析,项目管理,开发,生产支持,国际实施,培训支持,团队规划和流程改进.
我会说我有85%的时间用于编码,当我可以专注并且我有一个重要的编程任务.但更常见的是,我每天大约有50%用于编码.如果生产支持(非编码相关)很重,我可能只有15%的时间来编码.
我工作过的大多数公司并没有积极参与评估敏捷流程或测试驱动开发,但他们也没有做好瀑布方面的工作.他们的大多数开发人员都喜欢剪贴糊涂的牛仔.
有时我会在家里和孩子一起工作,这太可怕了.我的工作效率更高.
我的生产力很好,但如果去除心理背景转换的中断因素和成本可能会更好.生产支持和项目管理开销都会产生这些类型的中断.但两者都是工作的必要部分,所以我认为我不能摆脱它们.我想考虑的是对团队进行重组,以便项目上的人可以专注于项目,而其他人可以通过致力于支持来阻止中断.然后在项目结束时进行交换.
不幸的是,没有人愿意提供支持,因此我希望的其他生产力改进措施将是以下之一:
更好的测试工具/方法,以加快单元测试
更好的业务分析工具/技能,以提高新开发的质量,并限制其对生产支持负载的贡献
实际上,它平均每天可能达到4或5小时.虽然它的"块状" - 可能有几天可能有8或9个小时.
在我所知道的所有软件开发人员中,编写生产代码(而不是研究)4到5的软件开发人员似乎是实际编码的最大值.还有很多其他的东西在继续.
说实话,有很多拖延.我发现它有点像作家块.有时它很难开始,但是一个很好的2小时会议是很多工作.它只是你必须经历的所有准备工作,以确保你采取正确的方法的实验.无数的盯着窗外看电子邮件等......
我每周工作37.5小时.
其中30个小时(80%)我应该向我们的客户收费.
实际上,我发现我在实际的客户端系统上使用了大约60%的编码,20%的人使用新技术和阅读博客,20%的人浪费在办公室政治和"社交"上.
我很开心吗?
我希望我能每周30小时盯着屏幕编码我的指定任务吗?
好.由于20%的时间用于改善自己的工艺,在有效编码的60%中,如果我不这样做,我可能比90%的时间产生更多.
然后再试着向上级解释这个事实;)
嗯,我一般迟到十五分钟,啊,我用侧门 - 那样Lumbergh看不到我,嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿,I for for.........
...是的,我只是盯着我的桌子; 但看起来我在工作.我也可以在午餐后的另一个小时内这样做.我会说在一个星期内我可能只做了大约十五分钟的真实,实际工作.
对我来说,在项目之间切换是拖延的一个重要原因.当我刚刚完成一个项目时,我倾向于拖延下一个分配给我的要求.我的想法仍然像编码模式,但我必须首先估计创建规范的费用.因此,我必须从编码切换到呼叫客户等,这让人觉得不舒服.
什么最有助于我是生产力是切去任何分心在第一时间为一天,并与当天的最重要的任务立即启动.我需要尽早进入流程.
我建议看一下The Programmers'Stone:
我们知道压力会削弱一些认知功能.这些功能的损失可以精确地解释为什么编程是很难的,并显示了我们很多其他的机会,以提高我们整理东西的方式.其后果是触及语言,逻辑和文化规范.点击此处查看介绍......
我花了大约40%的时间编码.40%用于非编码活动(例如与我们粗略的构建服务器进行斗争,或者弄清楚为什么NUnit失败而没有再次出现错误信息,或者试图弄清楚为什么我们的代码已经停止与Oracle服务器联系下来了......像那样的垃圾).另外20%通常用于拖延或在会议中.
我对我的工作效率感到满意吗?绝对不.我每天工作7小时,我花了大约2.5的编码.我宁愿花费5-6个小时进行编码,只需要一个小时专门用于所有其他内容(遗憾的是,有一件事情会发生这种情况 - PM停止每天使用构建脚本 - - 不会发生).不幸的是,由于我是一名企业开发人员,管理层并没有把时间浪费掉.因为我在这一天的40%中完成了比在建筑物中大多数无人机在一周内完成(包括PM)所做的更多的工作,他们认为我很有成效.