软件工程之美
宝玉
Groupon 资深工程师,微软最有价值专家
44272 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 55 讲
软件工程之美
15
15
1.0x
00:00/00:00
登录|注册

特别放送 | 从软件工程的角度解读任正非的新年公开信

鼓励分享
希望能帮助读者更好地理解软件工程
作者对软件工程的理解
软件工程的重要性
软件工程就像一个国家的农业
“软件工程”和“质量工程”需要依靠架构技术
改变习惯
一致性
技术是工具
安全性
技术债务
架构设计
自我精进
软件项目管理金三角
IPD对华为软件研发的影响
华为软硬件研发实力
信中对软件工程的理解
从软件工程的角度解读
任正非的公开信引起好奇
总结
具体操作层面的问题
软件工程的重要性
介绍
文章内容
目的:帮助更好地理解软件工程
主题:软件工程的角度解读
发表时间:2019年1月
作者:宝玉
任正非的新年公开信解读

该思维导图由 AI 生成,仅供参考

你好,我是宝玉。
2019 年 1 月,任正非的那封《全面提升软件工程能力与实践,打造可信的高质量产品》公开信在朋友圈刷屏了。作为软件工程专业出身的程序员,这封公开信自然是引起了我的好奇,仔细阅读之下,确实让我大吃一惊。
于是,我从软件工程的角度对这封公开信进行了解读。在我们专栏内容正式更新前,我将它作为特别放送分享给你,希望可以帮助你更好地理解软件工程。
这封信看似像八股文一般,但细看之下,可以发现作者对于软件工程的理解确实非常深刻,各种专业术语信手拈来,比喻恰到好处。
我对华为的研发其实一直挺好奇的,从传统的硬件公司,到现在软硬件齐头并进,华为手机销量都已经超过了苹果,可见华为的软硬件研发实力早已处于全球领先水平。信中提到:
二十年前的 IPD 变革,重构了我们的研发模式,实现了从依赖个人、偶然性推出成功产品,到制度化、持续地推出高质量产品的转变。
这一句话,也揭示了华为的软件研发能做到全球领先水平的原因。
华为是在 1999 年开始从 IBM 引进 IPD 的,到今年 2019 年正好 20 年,在过去的 20 年里,IPD 帮助华为从游击队变成了正规军,研发队伍从几千人到几万人,软件产品也覆盖到手机操作系统、应用、云服务。
我对 IPD 是不甚了解的,只知道 IPD(Integrated Product Development,集成产品开发)是一种产品开发方法,但如果说软件产品的开发方法,我是比较熟悉的,那就是软件工程。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

华为任正非的新年公开信从软件工程的角度深刻解读了华为20年来的软件研发变革和发展。信中强调了IPD对软件研发能力提升的重要作用,以及在中美贸易战背景下,华为如何通过追求可信的高质量产品来走出危机。同时,信中还涉及了软件项目管理金三角的重要性,强调不以进度、功能、特性等为理由降低可信要求,以及对程序员的自我精进要求。此外,信中还提到了架构设计时需要考虑的方面,如性能、功能、扩展性、安全性等,以及架构设计时需要遵循的原则和技术要点。另外,信中也提到了重构腐化的架构及不符合软件工程规范和质量要求的历史代码的重要性,以及对安全性和技术选择的重视。最后,信中强调了技术只是工具,并呼吁团队成员深入学习各方面的技术,同时强调了一致性在软件开发中的重要性。整体而言,这封公开信为读者提供了宝贵的技术参考和思路,展现了华为软件研发的发展历程和未来发展方向。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件工程之美》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(38)

  • 最新
  • 精选
  • 还有我
    视高质量代码为尊严和个人声誉。这句话说的好,工作中遇到过很多项目开发人员不喜欢写注释的情况。要想写高质量的的代码,需要有扎实的基本功,要对数据结构、算法、设计模式及业务理解能力有一定的要求,另外还需要有一个良好的的编码习惯,至少可以避免出现go to fail 这种问题。华为这种大厂都如此要求,我司肯定会跟风…

    作者回复: 是呀,代码就像一个人的名片,写得不好真不好意思跟人打招呼。 这其实也是为什么很多大厂要把自己的项目开源出去的一个原因,倒逼着开发人员重视自己代码质量,重视荣誉。

    2019-02-18
    29
  • Dr.Murphy
    视高质量代码为尊严和个人声誉。 作为一个工作了两年的刚入门的程序猿来说,这番话仿佛震耳欲聋。几乎泪流满面。

    作者回复: 希望你能一直记得这句话 :)

    2019-02-19
    20
  • tt716
    其实我现在最大的问题是如何让不懂软件工程的老板去了解软件工程,去尊重软件工程的客观规律

    作者回复: 你可以先学习,然后在和老板沟通的时候,利用你学到的软件工程知识去有理有据的说服,这样成功概率会高一些,也会潜移默化影响到你的老板。 比如我以前老板也喜欢改需求,我就需要跟他讲需求变更,讲版本规划(下个版本再改),他慢慢就也接受了一些。

    2019-02-26
    10
  • 点号
    我也是自学编程的“野路子”程序员,业余写的代码现在维护明显觉得很困难,希望通过学习这门课程,提升自己!

    作者回复: 希望这门课程能真正帮到你,如果有什么具体问题和困难,也欢迎留言提问

    2019-02-19
    8
  • 舒偌一
    理解软件工程是把人治变成法治

    作者回复: 软件工程还是离不开人的,“人治变成法治”我觉得可以指项目流程、规范这些

    2019-02-18
    6
  • 常平
    华为那篇八股文其实漏了一个非常重要的前置条件:capacity,capacity是企业文化是企业精神 企业基因,要在盐碱地里种出菊花茶是为“不易”。

    作者回复: 至少对软件工程的论述还是挺到位的呢,毕竟不管企业什么基因,只要是做软件开发的,都离不开软件工程的应用。

    2019-02-18
    2
    6
  • 韩宜衡
    老师设计课程之初应该想不到会有销售来买这个课吧😂 但是看了介绍这门课真的非常适合我 毫不犹豫就下单了 我们是做软件研发领域的项目管理工具的 刚开始觉得很心虚 因为觉得卖的对象是比你更懂的专业人士,他们知道自己要什么,我作为销售并不能说服他们。后来发现其实敏捷 DevOps这一方面 虽然有些公司也用,但是真正懂的人并不多,销售还是回到了【提供解决方案】上,真正有需求的公司比销售还急,他们更着急找到一个能够帮他们规范流程,提高效率的解决方案,那我的问题就来了,我要想提供解决方案,就必须了解研发场景的痛点,我要想了解痛点,难道还得开始从头学写代码,然后还得必须找个大厂待几年,然后再回到现在的公司继续做销售?这个方法似乎不太可行,倒不是觉得编程难,偷懒不想学,重点是即使学写了代码,似乎还是不能解决我当前的困惑,我隐约觉得我需要一个大的框架来帮助我了解整个研发过程,我得知道原理而不是操作方面的知识,但是我无法表达我的诉求,我不知道自己要学的这个知识属于什么范畴,直到看到这门课,我才知道我要了解的是软件工程!太感谢老师了! 不知道老师有没有完整的了解过项目管理,我昨天刚考了PMP,觉得软件工程算是整个项目管理体系下的一个分支,华为这篇文章解读的非常好,关注代码质量,不能只依靠测试,这其实逃不开项目管理中质量管理知识领域,测试只是【控制质量】的过程,只对单一测试结果负责,输出测试结果其实是为了方便我们【管理质量】,回溯我们组织的质量文化,以及整个流程有没有优化改进的地方,只有这样,才能从根本上提高质量,所以这也是出了质量问题,管理者为什么要负高达85%的责任而直接导致事故发生的操作人员只需要负15%的责任的原因,学习一门学科要学习他的底层逻辑,软件工程就是撸代码的底层逻辑,【你所谓的顿悟不过是别人的基本功】,不要再自己造轮子,前人早已给你总结好了方法论。

    作者回复: 哈哈,谢谢支持! 我们有一篇就是专门介绍项目管理工具的呢。

    2019-03-31
    4
  • gfkdcadet
    碎片化的学习编程和开发可能是我们开发软件的大敌。长久以来,我们被各种绚烂的技术吸引眼球,却没有一棵知识大树去承载这些不断更迭的技术。这也许是现在急功近利的环境所致吧。 希望宝玉老师讲授的知识树,纵向脉络突出,横向动态清晰,既能讲出从来没有变的过程,方法,又能捋一捋不断变化的工具。借宝玉老师慧眼,洞察一下现在五光十色的软件开发。辛苦老师了!

    作者回复: 谢谢。 专栏的知识点已经都整理在目录了,你可以先大致看看,如果有什么没有讲到而你觉得和软件工程相关的内容也可以通过留言反馈。

    2019-03-02
    4
  • beiler
    老师,您让我问我可就问了,我很好奇老外在写代码之前模块是如何划分的,包是如何划分的?层与层是如何划分的,我看了很多,但是找不到我想要的银弹,写着写着我就不知道这个模块该划分到哪了,我用的是python,这块有什么好的参考吗?还有几层架构,几层架构的模块该如何划分,包如何分,代码该如何思考?大学学的都还老师了……让我写我都能写,但是让我按规矩写就很难了…我经常分着分着就乱了…求讲一讲这块!

    作者回复: 架构设计也没有银弹的! 不需要太过于纠结模块怎么分,一开始不要分太多模块,简单满足需求就好,与其追求复杂的架构,不如先让代码简洁高效。 推荐看看这篇文章《架构设计三原则》https://time.geekbang.org/column/article/7071 另外可以多到github看看一些优秀的开源项目,看看高手们怎么设计架构的,可以多模仿。

    2019-02-21
    4
  • hua168
    忘记问一个很重要的问题,学这个专栏需要哪些基础为前提的~~ 顺序问一下开发都要学哪些基础东西: 1. 学一门编程语言及框架 2.数据库的CURD 3.软件工程? 其它还要吗?

    作者回复: 学习这个专栏,不需要你有特别的基础,当然有一些项目经验可以帮助你更好的理解。 至于要学什么基础的东西,其实你可以从另一个角度思考一下:开发的价值是体现在哪的? 开发的价值是通过在项目中创造价值体现的,所以你要考虑学什么能帮助到你更好的在项目中创造价值。 比如说除了具体的编程技能外,还可以从这些方面思考: 1. 提升对需求分析和理解的能力,这样你知道要做的是什么,减少返工 2. 提升架构和抽象的能力,能把需求抽象成架构设计,能把复杂的问题通过架构分解成简单的问题 3. 高效率的编码,完成需求 等等其他

    2019-02-20
    3
收起评论
显示
设置
留言
38
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部