良许Linux教程网 干货合集 研发如何才能躺平???

研发如何才能躺平???

一行代码可能引发灾难,一个小Bug可能导致发射失败,一个不合格的电容可能缩短产品的寿命。这些看似偶然的事件,却屡屡在现实中发生(参考我们之前的文章)。

即使产品设计本身没有问题,也可能因为难以销售而未能给公司带来可观利润。不仅是初创小公司时刻面临生存压力,一些巨头企业也因为产品决策失误而陷入困境,甚至破产的案例也屡见不鲜。

因此,人们开始思考是否有一种方法,能够帮助我们设计出既好用又好销售的产品。今天,我们将介绍一些前人在这方面的探索,主要涉及一些开发模型和开发管理流程。

开发模型是指软件开发的整个过程、活动和任务的框架,它规定了软件开发的具体活动和任务,并以清晰直观的方式呈现软件开发的整个过程。简而言之,开发模型是软件开发过程的基础和保障。

开发流程则是指软件开发的具体步骤和过程。它包括可行性分析、项目开发计划、需求分析、系统概要设计、系统详细设计、编码、测试等环节。这些环节是软件开发不可或缺的步骤,它们之间关系密切,相互衔接,以确保软件开发的高效和顺利。

image-20240401215556327
image-20240401215556327
  1. 几种典型的开发模型

瀑布模型

瀑布模型是最经典的开发模型,又称为线性模型。它把开发过程分解为按顺序进行的六个阶段:计划,需求分析,设计,实现,测试,运行维护。每一个阶段完成后,评审通过,才能开启下一阶段,一级一级向下进行,如同瀑布。用户在最后得到一个可用产品。

迭代模型

一个项目被拆解为多个小项目,每个小项目如同一个瀑布模型,都包括需求分析,设计,实现,测试。每个小项目的完成,就可以认为是产品的一次迭代,虽然还不完善,但用户可以使用。每个小项目可以反复迭代,整个产品也不断完善。SpaceX的猎鹰火箭,就是采用了这种迭代方式开发。所以虽然爆炸了几次,最终还是成功了。而其它的采用传统瀑布模型的公司,很多还没有一次发射。

除了以上这两种,还有不少变种,如快速原型模型,螺旋模型,智能模型,增量模型,喷泉模型,V模型,混合模型,演化模型。

image-20240401215601831
image-20240401215601831
  1. 开发管理流程

IPD (Integrated Product Development)

IPD的思想来源于美国PRTM公司出版的《产品及生命周期优化法》(Product And Cycle-time Excellence)一书,该书中详细描述了这种新的产品开发模式所包含的各个方面。

IBM公司在上世纪90年代遭遇了一次危机,当时研发经费开支过高,产品上市时间过长,利润下降严重。作为重振公司的一项重要内容,IBM引入了集成产品开发方法IPD。它由7个方面的内容组成:异步开发与公共基础模块、跨部门团队、项目和管道管理、结构化流程、分析客户需求的工具($APPEALS)、优化投资和衡量指标 。其核心为产品开发由市场驱动,强调决策的重要性,更关注做正确的事。

华为在1998年花重金从IBM引入IPD,经过多年优化,成为其飞速成长的基石之一。其它比较知名的公司有美的,VIVO,方太等。

CMMI (Capability Maturity Model Integration)

1987年,由美国卡内基.梅隆大学软件研究所提出CMM,即软件过程成熟度模型,用于评价软件承包能力,并帮助其改善软件质量的方法。后推广至硬件开发,系统集成等更多领域。其核心目的为衡量一个组织的过程能力,并推动其改进。CMMI分为初始级,已管理级,已定义级,已定量管理级,优化级等5个等级,其中优化级为最高等级。

CMMI主要关注执行,也就是正确地做事。它认为控制好了过程,就可以保证产品交付质量。

敏捷开发 (Agile Development)

2001年,烦透了各种开发管理流程,疲于应付各种文档的17名程序员大佬,聚会于犹他州瓦萨奇山中的一个小酒店,扯起了敏捷开发的大旗,并发表了4条宣言:

Individuals and interactions over processes and tools

(有话您直说,甭瞎扯流程。)

Working software over comprehensive documentation

(软件贼好用,文档如废纸。)
Customer collaboration over contract negotiation

(客户一点头,合同算个鸟。)

Responding to change over following a plan

(领导一挥手,马上跟着走。)

总之,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

  1. 我们如何借鉴

大公司引入流程,花费巨资的传闻,有点儿让小公司望而却步。但也并不是说只有大公司才需要流程,小公司其实可以根据自身的情况,做一些借鉴。比如项目需求分析,一开始就和客户做深入的交流,为客户周到的考虑,不要到最后发现某个功能没实现,要过认证时才整改。项目需求形成说明书文档,设计实现要跟需求一一对应。另外,开发的每一阶段,做一些评审也是很必要的,特别是开发人员之间的互相检查(Peer Review),可以把很多问题解决在萌芽状态。把开发分解成并行的过程,并进行关键路径分析,可以大大缩短研发周期。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部