我有一个自由Web应用程序项目,客户端每两周左右请求一次新功能.我无法预测即将推出的功能的要求.因此,当客户端请求新功能时,可能会发生以下几种情况之一:
我轻松实现该功能,因为它与现有平台兼容
我很难实现这个功能,因为我必须重写该平台的重要部分
客户撤回请求,因为在现有平台上实施成本太高
在项目开始时,大约六个月,所有功能请求都归入类别1),因为系统很小且敏捷.但在过去的六个月中,大多数功能实现属于第2类).系统已经成熟,每次我想添加新模块时都迫使我进行重构和测试.另外,我发现自己破坏了用来工作和修复它的东西(我没有得到报酬).
客户开始对我实施新功能的时间和成本感到沮丧.对他们来说,许多功能请求的规模与六个月前他们要求的功能相同.例如,客户会问,"如果去年建立一个票务系统需要1周时间,为什么今天要建立一个事件登记系统需要1个月?事件登记系统比票务系统简单得多.它应该只需要你一个星期!" 由于这种情况,我担心功能请求很快就会出现在类别3)中.事实上,我自己已经花了很多钱,因为我自愿花了很多时间来支持这个项目.
当我诚实地告诉他做某事所花费的时间时,客户经常感到震惊.客户总是将我的估算值与项目的前几个月进行比较.我认为他们没有为开发,维护和支持成熟的Web应用程序所花费的成本做好准备.
在为一家全职公司工作时,管理人员更愿意接受我的估计,甚至鼓励我填写我的数据以应对意外情况.有没有办法让我的客户以同样的方式思考?
任何人都可以提供关于我如何继续在这个网络项目上工作而不需要花费太多费用的建议吗?
附加信息 - 我只有1年的全职自由职业生涯.我还没有高端客户,但我慢慢到那里.随着时间的推移,我的客户越来越好.
我试图得到以下查询可能需要多长时间的粗略(数量级)估计:
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) 假设您是项目经理.您可以估算特定开发人员的特定任务的天数.执行估算后,您将获得一些最小值和最大值.
在此之后,您将任务委派给开发人员.其实你也设定了截止日期.
设置截止日期时最好使用哪种估算:最小值还是最大值?
正如我所见,最小估计会导致开发人员的压力,即使任务可以更快完成(所谓的学生综合症),最大估计也可能导致使用分配给开发人员的所有时间.两种方法的其他优缺点是什么?
编辑:
小澄清:我谈到在委派任务时为下属设定截止日期,而不是向我的老板报告.
编辑:
再添加一个澄清:我可以记住我的真实估计,向老板提供略微更大的估计,给下属 - 稍微小一些.这个问题触及了以下内容:向开发人员低估提供让他更努力工作是否是个好主意?
我正在寻找使用线性进度信息计算操作的ETA(IE:文件下载)的最佳方法.
让我们说我有以下方法被调用:
void ReportProgress(double position, double total)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我有几个想法:
我需要使用Python zipfile模块或unix命令行实用程序按需创建ZIP存档.
要压缩的资源通常> 1GB,不一定是压缩友好的.
如何有效地估计其创建时间/大小?
我习惯于以Joel Spolsky建议的方式思考时间估计 - 如果预定项目需要超过16小时,则应将其划分为较小的任务.现在,我正在我的团队中实施Scrum以及基于Story Points的估算.在我看来,一个故事点的好单位将是理想的工时,而不是人日.如果我用了几天,我的大多数问题都会估计为1/2或1.
你有什么想法,为什么在Scrum文献中最常提到使用理想的人日?
我正在寻找真实的数字和经验,请不要过于主观地接受这个:
在寻找其他东西时,我碰巧发表了一个有趣的声明,部分内容如下:
[...]全国平均每人每年9,000行代码.[...]
我写了很多代码,但不是全职.当我回顾过去一年的项目时,我做了一个(非常)粗略的计算(只计算代码行,没有评论或白线),我来到大约19.000一年,这使它成为一个项目.如果我可以自动化部分内容,我可以在时间和金钱上扣除利润.
为了估算大型项目的省时,我需要平均值.一年中,人们用C#(或其他选择的语言)编写了多少代码行?而且,看看你自己的情况,你会认为你的手写代码可以(部分)自动化并获得什么收益?
language-agnostic project-planning code-analysis time-estimation
几个月前,我找到了一个项目管理/时间估算软件,它会要求你根据难度(1,2或3)来挑选你的任务,然后估计你需要花费的时间来部署.
系统会在您工作时自动适应.
我忘记了软件名称.在过去的几天里,我一直在挖掘电子邮件和搜索Google,但没有结果.
任何人都可以通过我的描述固定软件名称吗?
它不是http://www.fogcreek.com(虽然我发现它是一个伟大的软件.
先感谢您.
您如何处理与您的软件产品有不同时间估算的客户?
我将描述一个不属于我的场景,但它可以捕获大致相同的问题.我是一家拥有编程部门的大公司的分包商.我们正在从事的软件项目,该部门认为,他们有一个手柄的区域,但由于他们的专业知识和我有很大的不同,我们往往会得到不同的结果.
例如:在项目的开始,我建议他们贬损为不切实际难以发展的一种方式,并建议整合不同架构(一个自己熟悉的),与我们所使用的编程语言(蟒蛇),以获得更多或更少的同样的结果.
示例:对于要与其内部系统集成的软件,他们需要提供Web服务供我使用.他们提供了一个破碎的一个,尽管它与他们的内部工具的工作(不与其他选项中.NET或Java主流封装工作).他们认为,整合花费的时间比估计的时间长,这是我的错.
问题不在于他们不知道,问题是,他们对编程足够的知识是危险的(在我看来).是否有一些指导如何处理这种情况?期望管理的一种方式?或者可能是我不应该从一开始就参与这些项目,在这种情况下,有哪些迹象?
背景:我之前开发过自己的iPad/iPhone应用程序.这将是我的第一个客户端应用程序.我没有经验可以估算它需要的小时数,因为我之前的所有iOS开发都已经过时.
我想获得它需要多长时间一个知识渊博的iOS开发者开发一个简单的PDF查看应用程序的客户现有的PDF图书系列很一般建议.对于那种规模的东西,你会用什么来估算你的时间?10个小时?25?50?100?
我知道估计很难做到,这取决于开发人员,精心规划的要求等.我将采取这些预防措施并完善估算,以更好地匹配明确的要求.我是一个称职的开发人员,我只是不知道在估计时间方面从哪里开始.
我一直在学习Scrum并尝试使用一种叫做Acunote的工具.我的问题是关于每个任务我在那里的两个领域.他们是"估计"和"剩下的".我应该用哪些单位?我使用故事点吗?剩下的呢?例如,我有一个任务需要10个单位,比方说.我在剩下的一天结束时填写了多少"单位",我相信它会让我完成?
谢谢!
我正在开展一个有许多未知数的项目,比如将应用程序从一个平台移动到另一个平台.
我最初的估计是偏离的,我无法确切知道何时结束.
我怎样才能处理无法估计这样一个项目的问题.这不是我在屏幕上添加按钮或设计网站,或创建和应用甚至修复错误.这些不是带有错误的方法,这些是在整个代码中做出的假设,这些假设不再正确并且逐步找到并且每个都被分析和减轻了许多未知数.
我刚刚了解到,C 中的加法运算比乘法运算更快。因此,我很好奇(a+b)*c
计算速度是否会比 C 更快a*c+b*c
?
time-estimation ×13
estimation ×5
agile ×2
scrum ×2
c ×1
iphone ×1
math ×1
mysql ×1
progress ×1
python ×1
refactoring ×1
timing ×1
zip ×1