首页 > 范文大全 > 正文

从1.0到N.0的软件哲学

开篇:润墨网以专业的文秘视角,为您筛选了一篇从1.0到N.0的软件哲学范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

每天早晨,当这块土地上大大小小的软件公司开始一天辛劳的工作,他们会面临着各种各样的难题。从招聘新员工,到回复客户一个从未发现过的bug;从决定新产品的技术框架,到如何应对竞争对手的降价举动。在似乎永远也理不清的头绪中,人们很容易忘记他们开始这份事业的初衷:塑造伟大的产品,从而将自己的品牌铭记史册。

当你从钟爱的IDE中审视自己的源代码,那个世界似乎如此远离外面残酷无情的市场。但如果你只沉浸在逻辑、模块、对象和实现的完美中,那注定是没有希望的:或者生而必死,或者在活死人的状态中挣扎数年,然后渐渐消寂。软件非艺术,产品的生命力在于是否能真正把握需求。

那么,什么是需求呢?需求是Use case(用例)吗?需求是Interface(界面)吗?需求,是人的欲望,存在于客户的心中。把握需求,就是把握人的心灵。

可怕的是,“requirement(需求)”这个词惟一正确的形式是复数,也就是说,需求是繁复的。你可以想象需求是哈里森福特面对的蛇坑,有无数条大大小小的毒蛇缠绕在一起,你的任务就是唱响一支蛊惑的笛曲,诱使它们在你面前整齐排列,翩翩起舞。

把握需求的艺术往往不在于知道有哪些需求,而在于如何排列需求的优先级。根据你的资源,根据想象的市场接受度,逐个地解决它们。很有可能,当你的1.0推出时,你会时不时抱歉地告诉你的销售人员:这个暂不支持,那个还很难说。在谈判过程中,在部署过程中,你会发现你已经不再是一个产品的开发者,而正埋没在梳理不清的定制化里面,你的产品开始变成项目。

那么,是产品,还是项目?我想是没有答案的,因为没有完美的产品。每一个版本,只能是一个长期项目过程中凝结的一颗颗珠子。第一,你无法彻底把握需求;第二,你永远无法获得足够的资源去实现每一个需求;第三,也是最重要的,你不可能不犯错误。任何软件都会有bug的,无论你愿不愿意。如果你能比别人聪明,部分原因是你少犯错误,部分原因是你知道会犯错误,于是在一开始就采取手段,去应对肯定在这里或那里出现的bug。

我遇到过太多这样的程序员,习惯说自己的代码是没错的。自信并不永远是好事。在软件开发中,你要有敬畏之心,就像你在膜拜一位神灵。从某种意义上说,不论采用何种开发技术,如SOA、Web服务、J2EE、.NET,都不是完美无缺的。没有人能帮你,除非你是以正确的心态来做软件。

“产品”这个词,本身就有很大的误导可能。它让人只关注生产的过程,而忘记软件是互动的。软件在部署之后仍然活动在厂商和用户之间。如果没有一座畅通的桥梁,让用户和你之间无碍地沟通,软件必死无疑。无论是硅谷,还是中关村,每年大量的企业失败不是因为他们缺少领先的技术或者聪明的工程师,而是因为在产品销售出去之后无法应对调试、改正和更新的压力。从某种意义上说,漏洞百出的1.0并不可怕,只要你能快速应对,快速成长,你就能在不断更新的基础上获得更多的资源,来建筑更可靠的产品和忠实的用户。

开发者,就是支持者。如果可能,我会定期地让研发部和技术支持部轮换岗位。只有这样,那些天不怕地不怕的技术狂人才会明白:谦卑是生存的第一准则。