有人曾问,如何正确估算项目周期?你是天天写C#程序的程序员,若做了一个 PHPwind 的单点登录,那估计需要几天时间?
客户只提了一个需求,门户网站需要与 PHPwind 需要有单点登录功能,问你多长时间能弄好?就一个功能嘛,那1天时间是不是足够了?外包一天工作量按2000元计算,那这个功能是否收2000元就可以了?不就门户网站里登录一下,论坛也自动变成登录状态就可以了,不用再次输入用户名密码就可以了,需求就这么简单。
那有经验的人就不会那么莽撞了,由于以前集成过一次discuzNT论坛,感觉并没有想象的那么容易,也遇到了很多问题,才勉强成功。更何况是JAVA的项目,又是PHP编写的论坛,C#程序员来干这个事情,能有那么容易吗?就说:“这个东西整合好需要1个月时间,而不是一天时间”。
公司里几乎没一个人写PHP程序的,那我就找老乡帮忙,我们有2个老乡是在杭州做PHP程序有好多年了,平时我们关系都很好,过年也在一起过年吃吃喝喝,我跟其中的一个老乡约在杭州文一路上的必胜客,晚上一起吃饭,他只用了几分钟时间,就把论坛给我装好了,运行好了;我看了他安装配置,基本上心里有数了,后来我也重复安装了2-3次,都相对顺利。算是用了一天时间把论坛安装的问题等搞定。算托朋友的富,自己没怎么走弯路瞎折腾。
接下来熟悉 PHPwind 的功能部分,有论坛、有博客、有文章、有门户,有后台配置管理;这些东西都配置熟悉,都相对明白哪里有什么功能,哪里怎么配置权限等等,功能熟悉大概用了1周时间。功能的确蛮复杂的,东西也很多,做得的确也不错,的确不是靠几个人几个月瞎搞搞就能做出这么庞大的东西,最重要的一点还是开源免费的。
接下来熟悉表结构,哪些表是存放用户的?表里都有什么字段,数据都是怎么存储的,默认值都是多少,用户注册后都写了哪几个表?然后自己手工也添加了相应的记录,看前台是否能登录成功?搞定。大概花费了1天时间,把用户表搞明白,用户角色权限等基本上心里也有数了。
接下来到另外分公司安装测试环境,配置用户配置论坛权限,进行一些相关的设置等,安装测试环境+后台配置+论坛栏目权限设置等大概耗费了2天时间。
接下来又遇到由于配置错误导致登录时总是需要复杂的安全验证的问题,经过摸索一天,解决了配置出错的问题。
后来有需要把测试环境从内网的Linux服务器又要移植到外网的Windows服务器上的需求,又耗费了一天时间从内网把论坛迁移到外网上。
大概花费了一天不到的时间,我把门户用户如何同步到论坛用户的做法,写好邮件说明,又当面与Java程序员沟通好,并进行了用户的同步测试,耗费了一天。
网站为了安全考虑,用户的Cookie都进行了加密解密操作,加密解密韩素是用Java语言写的,所有又找相应的PHP加密解密函数测试等耗费了两天时间。
为了加快项目进展,周末我又找了另外一个老乡朋友,他也是写PHP程序比较长时间了,让他帮忙给我看了大半天,找了PHPwind程序中的登录判断入口等等,虽然进展不是非常顺利,但是总的来说,找到了几个核心的函数,核心的文件,最起码心里有数了,需要修改哪些文件就可以了,晚上2个人一起在 杭州教工路+天目上路附近的EMC欧美中心一起吃了味千拉面,喝了2瓶啤酒回家休息去了,寻找程序中的登录判断入口算是耗费了1天的工作量吧。
接到实地去测试,读取网站的Cookie,登录论坛后解密Cookie,自动登录论坛的程序进行改写,前前后后足够折腾3天,因为一方面对PHP语法等不熟练,另一方面几乎接近7-8年没写过这个,天天开发C#程序,与写PHP程序还是感觉完全不一样,总是遇到莫名其妙的问题,或者不知道如何入手的问题,甚至数据库查询在哪里怎么写都不知道,这时候又想到了老乡朋友,让他给我远程桌面协助,帮我写了一个数据库查询的函数,并远程给我运行调试,估计耗费了2-3个小时。
好像做到这里,就大功告成了一样,客户又提出问题了。
1:论坛的风格要与网站的风格要保持一致。
2:有一些功能需要屏蔽掉,例如群组、商品交易功能等。
3:还有一大堆图标,名称,细节功能需要调整。
4:论坛的登录需要统一到整个门户的登录上。
5:论坛的退出功能也需要统一。
6:论坛的注册功能也需要统一。
7:论坛的站内信息也需要统一。
我真的要崩溃了,只能接着硬着头皮修改了,我不下地狱谁下地狱呢?结果又用了1周时间,把业务细节上的统一化了,把这些都进行了修正,几乎都与论坛保持一致了。
项目中间还严重感冒一次,去古墩路上的绿城医院打点滴,休息了2天,这是事先没预料到的,当然写这个总结也耗费了1个来小时,希望能对后来有需要的人有参考帮助,我可能是走了一个大弯路,但是难免后来者也不会走弯路,但是整体感觉,未必是走了弯路,毕竟大家都不是PHPwind的专家。
项目最后整体测试调试,把门户和论坛的单点登录功能,从注册、激活账户、登录、退出、修改密码等从头到尾都整体测试了1天。
现在估算一下:若没曾经做过的经验,也不熟悉PHP程序的前提下,就是把门户网站与PHPwind 相对严谨的单点登录整合一下,足足前后用了1个月时间,当然若是拼死拼活,可能会时间短一些,若是慢慢悠悠,估计1个月也搞不定。
从理想化状态,只是门户登录了,PHPwind也能自动登录了,感觉1天就可以做好一样,你项目估算了1天,那与实际的差距是20-30倍,因为你很多其他复杂性因素没考虑进去,用户的整合、论坛的改版、复杂的权限配置,这些都是客户还没来得及提出来而已,只是他最先想到了最有必要的功能,单点登录。
你若给领导讲了1天就可以搞定,结果领导签订了项目合同2000元,结果你又压抑,又郁闷有苦恼的状态下,前后折腾了1个月才勉强搞定,领导会不会骂死你?而且还要考虑另外一个因素,是我亲自做这个项目,我也不是菜鸟啊,毕竟前后干了10年的开发工作,工作效率总会比普通人稍微高一点儿。
C#程序员门户集成PHPwind的单点登录,就这样工作量从1天变成了1个月,是否有水平真正能估算好一个项目的工作量,不只是靠感觉,还要凭经验,凭实际,我也想1天就把这些全搞定了,可惜我不是神仙,我也有摸索的过程,我也有走弯路的时候,我也有生病的时候,我有想休息的时候,我也有不想工作的时候,我也有想聊QQ的时候,我也有不开心工作效率不高的时候,我不是机器人,我是凡人,我不是高手,我不是老板,我只是打工的。
虽然我没大钱,但是我也不缺小钱,做这个PHPwind论坛集成的时候,真想把这个活儿外包出去,若开价不是很高,我宁可把自己的工资拿出来,让别人来干这个事情,写PHP程序,调试PHP程序,太痛苦了,我宁可写ASP.NET C#的,宁可这个月我一分钱也不要了,我不要折磨、痛苦、压抑、郁闷,我只想做好C#程序就足够了,不喜欢啥都乱搞搞。
杭州地区 PHPwind论坛整合外包,一天报价2000元,1周内搞定论坛的单点登录,若想花钱,自己不折磨了,就可以联系我。
补充两句:
1:PHPwind是有版权的,若想乱修改人家的程序,需要签订商业合同,支付费用的;这样才可以有修改的权利,否则会吃官司,有法律保护的。
2:PHPwind的确很好用,很强大,功能很全,就是10个人开发1年,估计也开发不出这么稳定强大的功能,所以就算1个人修改3个月也值。