管理层要求对使用我之前没有经验的第三方控件的编程任务进行估算时遇到困难.
我当然明白为什么他们会想要这些估计,但我觉得我估计任何估计要么a)太短而且让我看起来很糟糕或者b)太长并且让我看起来很糟糕.
我可以给管理层什么估计或回复让他们离开我的背部,这样我就可以继续做我的工作了!
如果是这样的话?多少?
我倾向于夸大我的一点因为我可能过于乐观.
当然你可以将剩余的文件大小除以当前的下载速度,但如果你的下载速度波动(它会),这不会产生非常好的结果.什么是更好的算法,以产生更顺畅的倒计时?
我的公司刚刚进行了第一次大规模的开发项目调查,我想使用敏捷过程.客户对应用程序有一个愿景,但公开承认只有很少的要求,并承认我们必须按小时收费.因此,我几乎以敏捷的方式卖掉了他.
问题是他想要一个数字来预算.我已经阅读了一些非常主张放弃估算的文章,因为客户会预算这个数字,即使需求发生变化,他们头脑和书中的数字也没有.
我已经读到有很多方法可以考虑合同中的定价,但几乎所有这些方法(除了一个)都包含一个前期数字.这似乎违反了敏捷开发的整套原则.
所以我的问题是,如果你是一个敏捷商店,你如何设法规避敏捷开发的这个Catch-22?
我正在开发一个搜索系统的后端应用程序.搜索系统将文件复制到临时目录并为其提供随机名称.然后它将临时文件的名称传递给我的应用程序.我的应用程序必须在有限的时间内处理每个文件,否则它将被关闭 - 这是一种看门狗般的安全措施.处理文件可能需要很长时间,所以我需要设计能够处理这种情况的应用程序.如果我的应用程序在下次搜索系统想要索引同一文件时关闭,它可能会给它一个不同的临时名称.
显而易见的解决方案是在搜索系统和后端之间提供一个中间层.它会将请求排入后端并等待结果到达.如果请求在中间层超时 - 没问题,后端将继续工作,只有中间层重新启动,并且当搜索系统稍后重复请求时,它可以从后端检索结果.
问题是如何识别文件.他们的名字随机变化.我打算使用像MD5这样的哈希函数来散列文件内容.我很清楚生日悖论,并使用链接文章中的估计来计算概率.如果我假设我有不超过100 000个文件,那么具有相同MD5(128位)的两个文件的概率大约为1,47x10 -29.
我应该关心这种碰撞概率还是假设相等的散列值意味着相同的文件内容?
我最近一直在考虑软件估算,而且我有很多关于编码时间的问题.我很想听到那些至少有几年开发软件经验的人.
当你必须估计你花在工作上的时间时,你花了多少时间进行编码?占用其他非编码时间的是什么?
您是否发现您花费的时间比您的队友编码更多或更少?你觉得你做的工作比他们更多或更少吗?
你的工作条件是什么样的?私人办公室,共享办公室,团队室?单独编码还是成对编码?您的工作条件如何改变您每天编码的时间?如果你可以在家工作,这有助于或损害你的生产力吗?
您使用什么开发方法?瀑布?敏捷?从一种方法改为另一种方法对每天的编码时间有影响吗?
最重要的是:您对自己的工作效率感到满意吗?如果没有,你会做出什么样的改变会对它产生最大的影响?
是否有人使用经验法则来估算测试所需的工作量,作为开发所需工作量的百分比?如果是这样,你使用了多少百分比?
您在项目规划和为新项目创建小时估算方面有哪些经验?
您使用的方法是什么,为什么或不适合您?
是否有任何最佳做法需要考虑?
我试图得到以下查询可能需要多长时间的粗略(数量级)估计:
mysql> EXPLAIN SELECT t1.col1, t1_col4 FROM t1 LEFT JOIN t2 ON t1.col1=t2.col1 WHERE col2=0 AND col3 IS NULL;
+----+-------------+--------------------+------+---------------+------------+---------+-----------------------------+---------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------------+------+---------------+------------+---------+-----------------------------+---------+--------------------------+
| 1 | SIMPLE | t1 | ref | foobar | foobar | 4 | const | 9715129 | |
| 1 | SIMPLE | t2 | ref | col1 | col1 | 4 | db2.t1.col1 | 42318 …Run Code Online (Sandbox Code Playgroud) estimation ×10
agile ×1
algorithm ×1
download ×1
evaluation ×1
md5 ×1
mysql ×1
probability ×1
testing ×1
timing ×1