社区活动专版
直播中

小伍

8年用户 4609经验值
擅长:电源/新能源 嵌入式技术
私信 关注

【书籍评测活动NO.33】做了50年软件开发,总结出60条经验教训,每一条都太扎心!

自 1997 年起,Karl Wiegers 一直担任位于美国俄勒冈州欢乐谷的一家软件开发咨询和培训公司——Process Impact的首席顾问。

在此之前,他在柯达公司工作了 18 年,曾担任过摄影研究科学家、软件开发人员、软件经理及软件过程和质量改进领导。Karl 拥有伊利诺伊大学的有机化学博士学位。

图片

Karl 共著 有12本书,其中包括蝉联近20年全球票选钟爱编程书榜首、各版稳居豆瓣高票9分的《软件开发珠玑》!

Karl 在软件开发领域可谓经验丰富的元老,下面就来看看他一路走来有哪些见解吧~~

就我所知,没人敢打包票说自己打造的软件是有史以来最好的。

人们都是一边学习更好的工作方式,一边使自己的软件变得更好,如此良性循环。

《软件开发珠玑》这本书就可为这些工作方式提供一些捷径。

亲自实践是最能让我们一路坚持的学习机制,当然也是最痛苦的一种学习方式。

每当我们尝试一种新的方法时,总免不了磕磕绊绊,或者干脆直接失败。

在这种学习方式下,我们必须遵循合理的学习曲线,同时还要接受由于学习、理解以及尝试新方法所带来的短期效率低下。不过幸运的是,我们有其他替代的学习机制。

很多人也许已经踩过相应的“坑”了, 他们会得出一些经验以及奇技淫巧,我们可以通过学习这些内容来使我们的学习曲线变得平缓。

《软件开发珠玑》这本书就是一个软件工程和项目管理的珠玑藏馆——由我的个人经验与平日从其他人身上挖掘到的见解组成。

当然,你肯定会有自己的一些经验与教训,也不一定百分百同意书中介绍的内容。这自然是极好的,毕竟每个人的经历都独一无二。但我仍要说,本书中的内容都是我在我的软件开发生涯中探寻到的珍宝。

我的视角

我先介绍一下我的背景,以说明我是如何积攒这些经验的。

1970 年,我在大学期间学习了我的第一堂计算机编程课,毫无疑问,学的是 FORTRAN 语言。

第二年夏天,我开始了我的第一份工作,将我大学的经济资助基金管理处的一些操作进行自动化——我一个人完成了它。

当时我修了两个编程学分,所以我应该算是一个软件工程师了吧。

虽然我的背景有限,但项目出乎意料的成功。

后来我又上了两门与编程相关的课程,不过也就仅此而已了。

我其他的关于软件工程的知识都是我自己从图书、培训课、实践以及同事那里习得的。

这种野路子出身的软件工程师在当时并不少见,我们以不同背景汇聚到一起,缺乏正规的计算机相关教育。

早些时候,我在各种软件相关的工作上花了大量时间 :需求开发、应用设计、用户界面设计、编程、测试、项目管理、撰写文档、质量工程及过程改进。

一路上,我也会走一些旁门左道,例如获得了一个有机化学博士学位。

我当时的博士论文中有三分之一的内容是分析实验数据和模拟化学反应的软件代码。

在我于伊士曼柯达公司(当时是一家非常成功的巨头公司)任职研究科学家的职业生涯早期,我使用计算机来设计和分析实验。

不过很快我就转岗成为一名全职的软件开发工程师,为柯达研究实验室编写应用程序,并且在短短几年内就开始管理一个小型的软件开发团队。

我发现我的科学背景与思维能引导我采取相较于他人更系统化的方式进行软件开发。

我于1983 年写下了我的第一篇关于软件的文章。从那时起至今,我已经写了 8 本书及许多文章,涉及该学科的许多方面。

自 1997 年以来,我作为一名独立顾问与培训师已在不同领域服务了将近 150 家公司与政府机构。

这些沟通经历让我观察到了在软件项目中那些有用的技术——当然包括一些在当时还不那么有用的技术。

我对软件开发与管理的许多见解都来自我自身的项目经验。有些是有益的,但也有些挺令人失望的。还有一些知识是从我的咨询客户中习得的,这些知识通常都来自一些进展不那么顺利的项目——毕竟没人会在一切顺利的时候找顾问。

我写这本书的目的是不让你们走我“踩坑”的老路、步我的后尘。

一位经验丰富的软件工程师在读了本书的教训清单后评论说 :“每一点都太扎心了,有些还不止扎过我一次。”

关于本书

本书介绍了关于软件开发和管理的 60 条经验教训,分为 6 个领域,每个领域占用 1 章的篇幅。

图片

所有的这 60 条经验教训都会收录在附录中,以便大家参考。

图片

我并没有想着给大家提供一份这 6 个领域大而全的经验集合。

每个领域都复杂至极, 没人能完全梳理明白。

而且我也没有过度涉及软件开发的其他领域,如编程、测试及配置管理等。

本书中介绍的经验教训的主题大多彼此独立,所以你可以按你自己喜欢的节奏与顺序进行阅读。

每一章都以相关的软件领域概述开始。然后通过几个“初体验”来让你在深入阅读本章内容之前复习一下你之前在该领域可能获得的经验。

图片

比如帮助你回想一下你的团队之前在该领域遇到的一些问题、这些问题的影响,以及问题的根源。

每一条经验教训都会简要阐述一个核心观点,然后就该观点对团队可采取的措施进行讨论和建议。

当你读完每一章时,你都有可能发现其与你息息相关。

在本书中,“书本”图标表示一个故事,该故事可能来自我的个人经历,也可能来自与我的咨询客户的互动,又或者是同事 与我分享的经验。

图片

所有的故事都是真实的,但为了保护隐私,里面人物的名字都不是真名。

除了“书本”图标,我还会在每条经验教训描述中的关键点边上标注一个“钥匙”图标。

若一条经验教训中交叉引用了其他的经验教训,那我会用一个由箭头表示引用的图标表示。

图片

在每一章的末尾,我都会提供一节“下一步”的内容,它会帮助你梳理和计划如何将本章学到的内容应用于你的项目、团队或组织。

图片

无论你目前开展的是何种项目,遵循哪种生命周期,也无论你正在做什么产品,都应该寻找一下每条检验教训背后的想法,思考一 下如何采取措施来让你的项目更成功。

相对于独自思考来说,跟你的同事一起完成“初体验”和“下一步”可能会更好。

我曾开过上百堂课,在每堂课的开始,我都会让大家分组讨论他们团队曾遇到过的与课程相关的问题,也就是“初体验”;在每堂课的最后,我又会让大家分组探讨解决这些问题的方法, 也就是“下一步”该怎么做,集思广益,举一反三。

我的学生们一致认为这种做法对于他们来说是很有用的。不同的利益相关者对项目不同方面的进展有不同的观点。

结合这些观点, 可以对他们目前的做法有一个全面的了解,并让他们有机会选择最佳实践方案。

我希望我的许多经验教训能与你产生共鸣,并且可以激励你在项目中尝试不同的东西。

当然,这个过程不可能一蹴而就。个人、团队及组织只能以一定的速度吸收这些经验并产生变化,以把项目完成好。

本书的最后一章“然后呢”,将帮助你规划出一条将经验教训转化为行动的道路。那一章还会提供一些关于实施变革优先级的建议,并帮你制订一个计划,让你在行动上能得到一定的提升。

图片

你的收获

除非你已站在构建软件领域金字塔的顶端,否则我认为你还是有一些可以改进的空间的。

无论是作为个体从业者、项目团队或者是组织,我们都需要不断提高自己的能力 ;我们都需要尽量少“踩坑”。

2020 年,一位名叫 Zachary Minott 的初级开发者对他是如何胜过更有经验的开发者提出了一些深思熟虑的看法。

他坦然接受并承认自己的“无知”,对于那些他不知道的内容,系统地去学习,并付诸实践。

“如果说我有什么超能力的话,那就是快速学习并立即将我所学的东西应用到我正在做的事情上。”Zachary 如是说。

这就是他发现的可以掌握学科知识的关键因素。

我们都需要不断提高自己的能力;我们都需要尽量少“踩坑”。

也许你想过去参加一门课程,以此来学习新的技能或改进你目前的工作方式。然而在你上课的时候,工作内容可不会减少,它会堆积如山。

然后你就很容易忽视你所学到的东西,继续像往常一样工作——急于求成。

这只是为你求了个心安——至少我学了,但这只是掩耳盗铃,并不是真正的改进方法。

而我则采取了另一种方式——在每个项目中选两个领域,使其变得更好。

我会为学习对应内容预留出一些时间,并尝试将新的理解应用起来。并非每次都能成功,但我的方法使我逐渐积累了一些有用的技能。你也试一下吧。不要只是“阅读”这本书,而是要采取“下一步”行动。

请与你的同事一起尝试应用所学到的实践,然后为其制定一个预期目标,希望它能帮助你完成什么事。

接着列一个你想学习的其他知识的清单,然后继续学习,如此循环往复。

从长远来看,你会一直走在他人前面。

图片

图片

申请时间

2024年5月17日——2024年6月17日

活动参与方式

1、在本帖下方留言回帖说说你想要这本书的理由15字以上。

2、我们将从本帖留言中挑选4位幸运者赠送此书籍,共赠送4本。

3、请在收到书籍后2个星期内提交不少于2篇试读报告要求300字以上图文并茂。

4、试读报告发表在电子发烧友论坛>>社区活动专版标题名称必须包含 【《软件开发珠玑》阅读体验】+自拟标题

注意事项

1、活动期间如有作弊、灌水等违反电子发烧友论坛规则的行为一经发现将立即取消获奖资格

2、活动结束后获奖名单将在论坛公示请活动参与者尽量完善个人信息如管理员无法联系到选中的评测者则视为自动放弃。

3、申请人收货后14天内未完成书评无权将书籍出售或转赠给他人。如无法在收货后14天内提交书评请将书籍退回电子发烧友论坛运费自理。

4、如有问题请咨询工作人员(微信:elecfans123)。

5、电子发烧友对本活动具有最终解释权。

回帖(25)

熊治坤

2024-5-17 14:58:24
积极来赞助哦,稳居第一吗?给我来一本,写上10篇分享。
举报

尹向旭

2024-5-17 15:08:10
看到学习软件开发的之后走上开发软件的都收入挺高的,所以我想看看,怎么解决在软件开发过程中少走弯路的经验有哪些?
举报

华仔stm32

2024-5-17 17:42:15
这几年试用了许多的单片机,也做了不少项目,但是感觉有点搞不动了,这次有机会读读这本书,学习书中的经验教训,能及时让发现自己的不足,对我以后的成长道路会有非常大的帮助。
举报

jf_1137202360

2024-5-18 15:46:44
作为从事嵌入式开发超过10年的老鸟,深知嵌入式看开发经验即走过的坑非常重要,只有不断的踏坑填坑才能逐渐成长为老鸟。但是往往只注重技术,而忽略了其他,本书不仅仅分享技术方面的经验,还分享管理,项目等方面的经验,非常适合一线开发人员阅读。
自己也有一些经验总结,可以结合本书和自己的体验去阅读分享本书。如果有幸能获拜读该书,则结合自己的经验和书中内容,分享相关内容。
举报

yyyAquarius

2024-5-21 08:31:10
我们公司有三十多个研发人员,很多大佬都是一意孤行,项目沟通需求或者功能上,总安照自己的想法来,想要这本书给他们开节培训课,轮着也读读
举报

jf_68553322

2024-5-21 08:35:11
一件好的成品或者软件,离不开在前期的精细准备。多年的项目经理经验告诉我,在前期做了大量细致的工作之后,后面只需要按部就班,稳扎稳打的进行,一般都不会出现太多的问题。
这本书虽说是作者从事多年软件编程总结出来的经验,诚如其所讲的一样,无论我们在工作的哪一个环节,都能够从中吸取到非常宝贵的营养价值。
好的产品离不开对需求的精细把握、对设计的反复推敲以及对质量的绝对重视,这和我一贯的产品思路是高度契合的,在这个基础上,加上产品的迭代,才能够形成一个让绝大多数人都满意的好产品。
举报

jf_02192444

2024-5-21 10:02:36
这是一本计算机领域的经典之作,希望通过阅读此书,指导今后的工作和学习,感谢!
举报

step_pc

2024-5-21 11:29:32
作为项目经理,要处理好五大过程组和十大领域;
作为软件配置管理,对软件工程、算法和应用开发还不够了解,本书介绍的软件开发和管理60条经验教训,从标题就吸引到我了,有趣实用,期待试读。
举报

CandyLOVING

2024-5-21 12:43:15
也许一本真正的好书就在于可以更大程度帮助开发者少走弯路,更加高效完成工作内容,这就是技术性书籍的意义所在,如同这本经验性书籍一样。
举报

松鼠爱电子

2024-5-23 09:00:31
好书值得拥有,让我拥抱此书~为了我的IT生涯更上一层楼。
举报

jf_69261580

2024-5-23 09:16:10
任何一个做管理的人都应该买这本书。因为一个企业管理者,机构投资者都需要与IT人员沟通交流,理解对方的思维模式,用程序设计来提升企业和机构的效率,
软件管理的坑和普通管理的坑不一样的地方在于,影响范围广,而且难纠正。所以早些知道是管理成功的一个好办法。
举报

jf_09254290

2024-5-23 10:27:12
从多年的软件开发工作转型到项目,是一段既充满挑战也富含成长的旅程。这个转变往往伴随着诸多心酸与不易,但也让人收获颇丰。想要系统学习下,让后面的路程顺畅些。
举报

无兴延毕

2024-5-23 10:41:49
第一次做的电子系统应该是小学的时候用木板加电池和电机做的船,完全没有控制功能。因为一些原因二十多年后才重新学习电子设计相关的知识,希望能抽到这本书。
举报

oxlm_1

2024-5-23 11:50:25
看目录,这本书就是做项目管理方面的编程珠玑。结合现在在用的NUDD和FEMA,说不定能碰撞出不一样的火花。
举报

oxlm_1

2024-5-23 11:53:05
看目录,这本书完全就是项目管理方面编程珠玑,完全可以和现在在用的NUDD和FEMA进行碰撞,看能不能碰出不一样的火花
举报

大菠萝Alpha

2024-5-24 10:45:00
《软件开发珠玑》从需求开发、应用设计、编程、测试、项目管理、撰写文档、质量工程及过程改进提出了60点珠玑般宝贵意见,有利于技术人员实现更好的业务,想具体深入学习。
举报

Amireux

2024-5-24 12:07:51
1.深度学习软件开发实践:作为一名软件开发人员,我希望通过这本书深入了解行业内最佳实践和真实案例,提升自己的开发技能和项目管理能力。
2.吸取专家经验:Karl Wiegers是业界公认的专家,他在软件需求、设计、质量保证及项目管理等方面有着丰富的经验和独到见解。这本书提供的经验分享可以帮助我少走弯路,更加高效地解决实际问题。
举报

Amireux

2024-5-24 12:11:29
举报

Amireux

2024-5-24 12:12:10

1.深度学习软件开发实践:作为一名软件开发人员,我希望通过这本书深入了解行业内最佳实践和真实案例,提升自己的开发技能和项目管理能力。
2.吸取专家经验:Karl Wiegers是业界公认的专家,他在软件需求、设计、质量保证及项目管理等方面有着丰富的经验和独到见解。这本书提供的经验分享可以帮助我少走弯路,更加高效地解决实际问题。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分