从做饭看软件开发

    首先,小田写这篇文章不是给专业人士看的,专业人士可以去看《人月神话》等软件界的“九阳神功”,这篇文章只是旁门左道罢了。

    说起软件开发,大多局外人觉得很神奇,为什么那些程序猿和攻城师们在电脑上敲了几个拼写错误的单词和毫无逻辑的语句后,程序就可以运行了。 对于这种疑问,我无法简单的回答,你可能要看上十来本书,才能了解清楚。 

    那么软件开发到底有多难,到底是怎么样的流程? 今天就拿做饭为例,跟大家分享一下: 

  1. 需求: 没有需求是不会有软件开发的。就跟做饭的前提是餐厅有上帝点菜了,或者“老婆,我饿了”一样。


  2. 需求分析:上帝们的需求来了之后,你需要过滤和分析,有些你可以做,有些你不可以做。好比小沈阳说“这个没有,这个真没有”,又好比老婆说“亲爱的,你要吃什么啊”抑或是“自己泡面去”。


  3. 设计: 需求确定下来后,你需要设计。设计可能分很多步如架构设计、概要设计、详细设计等,设计确定后指导以后的开发。这就好比你回答要吃鸡蛋后,老婆思考给你炒“蕃茄炒蛋”还是“蒸水蛋”一样,得先有个大概方向。


  4. 开发: 大体框架设计确定下来之后,就进入开发阶段,这个阶段就是大家通常理解的程序猿们做的事情,但是不代表所有的软件开发都需要写程序,有些可能只是拿现有的其他程序修改一下或者直接拿来给你用。 这与做饭也是同样的道理,老婆可能给你现炒一个,也可能拿个松花蛋来哄下你。


  5. 测试: 开发完的软件或者是写完的程序,需要交由专门的测试人员测试一下,保证没有问题了再才能交付给客户使用。 这与古代皇帝吃饭一样,需要有人先尝下有没有毒,当然也有不少测试工作是由开发人员本身完成的,这就相当于炒菜时自己尝一样。


  6. 交付与运维: 有人会认为这个阶段比较轻松,大功造成,可以收钱去东莞了。实际不然,很可能你菜端给你老公,你老公说太咸了,或者说没放盐。那这时你得回锅重新炒,或者是前功尽弃,全部重来。这时候你很可能亏的不仅没有钱去东莞,更有可能要去东莞赚钱了。



    以上所说的6步,只是软件开发过程中最核心的步骤,看起来非常简单。实际的软件开发过程比这难上许多,一些原因如下:

  1. 需求变更:刚开始老公说要吃鸡蛋,最后发现他吃的是鸡肉。你临时要拿着一个蒸熟了的蛋孵出一鸡,那难度还是相当大的。

  2. 开发人员:开发人员相当于厨师,厨师的水平决定饭菜的味道。本来就是只会煮面,你要做满汉全席,注定失败。

  3. 团队协作:大型软件的开发,不是一个人能完成的, 团队协作时,问题变得更加复杂。 当年有广东同学到我家里做饭煲汤一样,很清淡的,端菜上桌的湖北同学看着汤太清淡,加了几勺辣椒进去。很多时候团队协作跟这个故事是一样一样的。

  4. 技术难度: 粤菜跟川菜的做法相关很大,同样不同的软件在技术上要求大不一样,比如ERP软件强调数据处理的正确性和严谨性,因此你要保证断电、网络不同步等情况下数据都是正确的; 互联网软件又要求高速响应,其对并发的要求更大, 再加上用户体验的要求,要做出100分的软件实属难事。


    好了,本文就此结束,只是大概介绍下软件开发的基本过程,作为后续一系列文章的导引。最后引用一句古文作为结尾语“天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。”




Tips:

如果您喜欢这篇文章,请转载分享

想了解更多关于IT的文章,请关注微博小田说事儿以关注微信公众号“小田说事儿”

扫描二维码添加微信公众号:

我是个爱改Bug的程序员


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值