软件设计系列-2-软件开发是什么?

本文是爆栈之旅的1vs1私人定制课程的第二讲:《软件开发基础》的摘录,如果你对这个一对一私人定制课程有兴趣,可以看右边信息联系我。

100%有Bug

任何软件都有bug,毫无例外。

在说软件开发是什么之前,或许我们应该说说软件开发不是什么。软件开发做不到没有bug,任何软件都有bug,任何软件都有崩溃的时候。

软件开发不是什么?

所以,软件开发:

  • 不是完美主义!这世界没有完美!
  • 不是堆砌积木!堆砌功能是没有用的!
  • 不是任何人都能做的!没有激情是做不好的!
  • 不是复制粘贴!Google答案是搬运工!
  • 不是修电脑的!

软件开发究竟是什么?

  • 这是一个把用户需要转化为生产力的过程
    • 需求不明确的情况下不要写代码
  • 这是一个通过团队协作交付产品的过程
    • 产品专家、架构师、设计师、开发人员、测试等多方合力
  • 这是一个为客户解决实际问题的过程
    • 质量,质量,质量,重要的事情要说三遍
  • 这是一个体现参与者创造力的过程
    • 每个功能经过雕琢有机地结合起来

99%失控

99%的软件开发都经历过需求失控、开发时间超过预期、交付的产品不满足用户需要而做修改等问题。

大部分的客户需求或者要求交付的时间都是不合理。我们需要引导客户的期望,譬如不是最迫切的功能从第一版推迟到第二版。

因为需求的不清晰,导致分析偏差甚至错误。怎么解决这个问题?多跟客户面对面,手把手地分析和做mockup/wireframe和POC。

爆栈之旅

是否想技术水平快速提升?是否希望快速成为公司的技术骨干?

核心价值
  • 把我这10多年来所学到的知识、总结的经验、吸取的教训分享出来
  • 针对不同的学生量身定制规划学习成长路线、1对1个人指导、代码审阅等
  • 解答各种技术问题
  • 为公司提供技术解决方案

请查看本站右边的信息联系我。

版权所有

所有文章内容版权所有,任何形式的转发/使用都必须先征得本站书面同意。本站保留一切追究的权利。

软件设计系列-1-设计思想

DRY,就是don’t repeat yourself不要重复。相反的做法是WET:write everything twice,类似re-invent the wheel,重复发明轮子。

类似的思想如KISS(keep it simple、保持简单)、YANGNI(you aren’t gonna need it,你并不需要那些东西)。

大道至简,我们不应该over-engineering过度设计,但是适当的前瞻性设计是需要的。譬如扩展性等,否则产品一上线就遇到各种限制。

 

Related image

 

名言

“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.” 在编程的时候,我们一定要想象一下,以后维护我们自己的代码的那个人会成为一个暴力的精神病人,并且,他还知道我们住在哪里。
— John Woods
Think twice, code once。磨刀不误砍柴工,多思考,再写代码。
Good crafsmanship depends on use of the right tools.工欲善其事,必先利其器

技术债务

英文是Technical Debt。出来混的,迟早要还。欠下的债,也是要还的。做技术也一样,而且这个债一样会有利息,而且是高利贷那种,你的成本爆涨。最糟糕的是,债台高筑,你根本无法还:系统设计一团糟,性能低下,逻辑混乱,代码质量无法维护。

 

爆栈之旅

是否想技术水平快速提升?是否希望快速成为公司的技术骨干?

核心价值
  • 把我这10多年来所学到的知识、总结的经验、吸取的教训分享出来
  • 针对不同的学生量身定制规划学习成长路线、1对1个人指导、代码审阅等
  • 解答各种技术问题
  • 为公司提供技术解决方案

请查看本站右边的信息联系我。

版权所有

所有文章内容版权所有,任何形式的转发/使用都必须先征得本站书面同意。本站保留一切追究的权利。