我有一个自由 Web 应用程序项目,客户每两周左右请求新功能。我无法预测即将推出的功能的要求。因此,当客户端请求新功能时,可能会发生以下几种情况之一:
我轻松实现该功能,因为它与现有平台兼容
我很难实现该功能,因为我必须重写平台基础的重要部分
客户撤回请求,因为在现有平台上实施成本太高
在项目开始时,大约六个月,所有功能请求都属于 1) 类,因为系统小而敏捷。但在过去的六个月里,大多数功能实现都属于第 2 类)。系统很成熟,每次我想添加新模块时,我都不得不重构和测试。此外,我发现自己破坏了过去可以工作的东西,并修复它(我没有为此获得报酬)。
客户开始对我实施新功能的时间和成本表示失望。对他们来说,许多功能请求的规模与他们六个月前请求的功能相同。例如,客户会问:“如果去年你花了 1 周时间构建票务系统,为什么今天需要 1 个月来构建活动注册系统?活动注册系统比票务系统简单得多。应该只需要你 1 周的时间!” 由于这种情况,我担心功能请求很快就会进入第 3 类)。事实上,我自己已经承担了很多成本,因为我自愿花费了很多时间来支持这个项目。
当我诚实地告诉客户做某事所需的时间时,客户常常会感到震惊。客户总是将我的估计与项目的前几个月进行比较。我认为他们没有为开发、维护和支持成熟的 Web 应用程序的真正成本做好准备。
在为一家全职公司工作时,经理们更容易接受我的估计,甚至鼓励我填写我的数字,以备不时之需。有没有办法让我的客户以同样的方式思考?
任何人都可以就我如何在不消耗太多成本的情况下继续从事这个网络项目提供建议吗?
附加信息- 我只做了一年的全职自由职业者。我还没有高端客户,但我正在慢慢到达那里。随着时间的推移,我得到了质量更好的客户。