我们在估算项目时间的时候,往往只算了“写代码的时间”,而把那些和老板或客户扯皮,做需求分析,设计,测试,和修复bug的时间不考虑进去,而这些时间加起来通常比写代码的时间多出不少,我个人是不轻易为了讨好老板而把完成时间说得很短的,为啥?——根本做不到嘛,干嘛要撒谎?如果一个需要一星期完成的新功能开发,我通常得把这个时间double,这已经算比较“不保守”的了。
即便只算写代码的时间,也往往会被低估,老板或客户对你开发的东西很可能不满意,或许你误解了他的功能需求,或者界面有点卡顿,或者这个图标颜色不好看,你是开发者,不是美工,虽然凑合可以当一下美工,但毕竟不专业,更重要的是做做UI设计,做做图这种事情,也得耗费不少时间,当你为“一个像素”焦头烂额的时候,是不是很渴望团队中有一名设计师?这时候得提醒下老板:你必须要在时间和功能之间,做点取舍。老板当然很不高兴,但也不得不在功能上做出了一些妥协。虽然这样做能让难产的项目早点上线,但却为来日项目的失败,给老板添加了一个很好的借口:我们的工程师太差了,没按我说的去做。
老板或客户除了会抱怨你做出来的东西不够好看之外,还会再提很多东西:这个界面能不能改成多选,能否增加通知功能,已读未读状态要有,界面能不能再流畅点,昨晚程序咋“闪退”了一次……需求只管提功能,但没说具体这个UI要多美观,也没说程序稳定性要好,更没涉及到要达到多大的吞吐量,当然,可能更重要的——安全性也没提,你心一惊:是啊,如果有黑客,不,只要稍微懂一点技术的恶意用户想刷爆我们的服务器,那简直太简单了,而这些防护措施我都没做!所幸的是项目名气太小,暂时无需考虑这个。(貌似大多数APP都活不到需要考虑这个的时候)
所有这些,你说功能也好,细节也好,稳健性也好,都不是能自动从土里长出来的东西,都得需要花时间去想,去做,有些甚至还是个“系统工程”,如果头痛医头脚痛医脚去做的话,系统里到处充满“飞线”,无疑会给将来的维护留下了许多隐患。攻城狮的你,都考虑了吗?更别说老板为了节省成本而给你购置的低性能电脑让你整天抓狂这些“无关紧要”的事。
======= 不怎么华丽的分隔线 =======
话说王总告别我之后就以迅雷不及掩耳之势注册了公司,注册了域名,搞到了办公室,还一下子叫来了一帮子人风风火火地搞了起来,这种发展势头,这种干劲,我只有自叹不如。心底里真有些后悔怎么没跟他去干事业,不过这只是感性的一瞬间,理性又在接下来的几百毫秒里将我拉了回来:还是别去好,跟他沟通不来的。
王总的项目后来以一飞冲天之势迅猛发展,而他如今已经是一家估值几亿的公司的CEO,我嘛,越来越觉得自己是个Loser,独自坐在办公室里,还是拿着那个水杯,懊恼不已——打住!这样是不是比较有戏剧性?可虽然一开始我就声明此故事“如有雷同,纯属巧合”,但也不能胡乱瞎编,真正的结局是:确实风风火火弄了几个月,后来就突然杳无音讯了,本来想打电话问问王总究竟怎样,无奈他变成了另一个超级忙人,再无心思跟我聊家常了。嗯,结局还是差不多,我还是那个继续苦逼地坐在办公室里的程序员,唉,别想了,开工吧!
文章源自 设计联盟 www.DesignLinks.cn 中国最具影响力的创意设计综合网站