软
件是一种知识产权,软件生产主要是一种智力活动。磁盘或光盘上的数据体现了软件产品开发团队的集体智慧。磁盘上体现的智力水平越高,创造的知识产权就越
多,产品的价值也就越高。有了价值更高的产品,就可以赚更多的钱,获得更多客户,也可以让智力活动影响到更广泛的人群,并为开发者和他人带来更多利益。
如果你特别关注将人的智慧转移为磁盘上的数据,把这作为软件开发团队的中心活动,那么恭喜你,你有了一个正确的观点,可以据此来监控和领导软件开发。大
多数软件开发经理或领导者并没有站在全局角度来看待所承担的任务,他们认为自己的工作要么是设计,要么是编码,要么是测试,要么是写文档,要么是营销软
件,要么是以某种方式
“
管理
”
软件开发过程。
这种误解的常见结果是延误。在软件开发过程中抱有无论什么错误思想,结果几乎总是造成延误。通常延误的时间相当长,远远超过最初的估计日期。是的,这种错误估计往往演变为所谓雾件(
vaporware
)
的滑稽笑柄,如果不是付出了沉重的代价
——
希望的破灭、金钱和人力的浪费,社会生产力下降等,雾件这个
词可以说是很幽默的。
如果想要按时交付优秀软件,每个人的大脑都必须融入到项目中。
|
软件开发管理的真正任务是调动尽可能多的智力,将它们投入到产品创建的活动中。智力的形式可以是抽象的人员素质,例如创造力、聪明才智、理性、效率和雅
致。智力还具有其他一些非物质的特性,例如适时上市以及满足客户需求。关键是,为了建立知识产权,必须有创造者的智力参与,而这种参与在任何软件开发工作
中都是最难完全落实的事情。虽然按时交付软件并不简单,但无论对于个人还是集体来说,这都是一项直截了当的要求。要创造优秀软件则需要富有集体智慧的团
队,而且只有他们才能办得到。
假设企业有足够的财力作为后盾,那么剩下的真正至关重要的因素就是团队是否凝聚了集体智慧。本书中的所有概念和经验法则对于善于思考的人们来说都是显而
易见的。实际上,这些都是常识。它们大体上只讲了三项当务之急的事情:让人们开始思考、人们应该思考些什么,以及如何让人们更有效地思考。如果读者曾经在
富有集体智慧的软件开发团队中工作过,恐怕自己也能总结出不少这样的原则。
那么,问题何在?如果按时交付优秀的软件只是取决于一些常识,又为何如此罕见呢?
考虑一下人类工作的主流模式。在大多数企业中,人们主要把资源投入到两个领域中,一个是智力活动,另一个是常规机械工作。我们可以把这两个领域看做
设计和生产,或者工程设计和施工。就目前来看,企业资源(人员和资金)的最大部分通常被投入到机械工作中。汽车、建筑或高速路等工作固然包含智力内容,但工程设计上的投资在总投资中所占比例是微不足道的,尽管这部分投资具有至关重要的意义。
现在思考一下,你会如何组织一家主要从事机械工作的企业?机械工作最大的价值源于效率,因此所有元素的组织都要从效率出发。装配线是
20
世纪的主要工业流程,亨利
·
福特作为装配线的
“
发明者
”
确立了他的历史地位。装配线在一端进料,在另一端产出有形产品,它的特点是千篇一律,而且单调乏味,但具有极高的效率。装配线的进料和管理采用等级组织方式,企业中的每个人只承担一个很小且狭窄的职责。
软件开发的组织方式就完全不是这么回事了。软件开发的目标产品是知识产权,而不是有形产品,因此机械工作部分所占比例很少。
运营一家生产套装软件的工厂当然并不简单,但可能不比运营一家生产其他稍显复杂的消费品(例如面向大众市场的相机)的工厂更复杂。运营套装软件工厂的真正复杂性无疑来自
“
主版本
”
可用性的不确定性,主版本是指已完成的、等待复制的软件。完成智力内容(即已完成的软件)以后,事情的进展就相当顺利了。
软件生产的不确定性和复杂性严重依赖于智力活动。企业的重心要从机械工作领域转移到智力活动剧增的陌生而坎坷的世界,传统的组织结构和习惯无力应对这种转变。
复杂缜密的思想是智力产品的原材料,但大部分商业企业实际上并不鼓励思考。我们必须对企业进行一些重塑,或者用现代商业说法是
“
改造
”
它。我们必须找出人们为什么不思考的所有原因,并消除它们,不是开除人,而是清除那些原因。
本书将尝试展现成功软件企业的组织形式,这种形式无法被整齐地拆分为不同的职能单元。进度具有不确定性,产品经理必须掌握管理这种不确定性的种种要点,
同样重要的是,开发人员也必须完全理解这些不确定性的重要性。而且,除非每个团队成员都有一个整体远景,否则其贡献必然会局限于仅仅执行经理或
“
宏程序员
”
为其分派的任务。这对人员潜力是一种浪费。如果想要按时交付优秀的软件,那么每个人的大脑都必须融入到项目中。让每个人的大脑融入项目并一直保持专注,这是经理的主要职责,也是贯穿本书的主题。
分享到:
相关推荐
【微软研发探秘系列课程(6):微软研发揭秘之贺岁版——2006年程序员书籍畅谈 (思想篇)】 本课程是微软研发探秘系列的一部分,旨在揭示微软内部的研发流程、方法和理念,特别是在2006年这个时间点上的思考与洞见。...
【微软研发探秘系列课程(10):高端培训之名家讲坛——MSDN技术名篇名家志(二)】 本课程是微软研发探秘系列的第十部分,聚焦于MSDN(Microsoft Developer Network)技术名篇及业界名家的深度探讨。MSDN是一个面向...
写作机器人是指能够根据大数据算法,在事件发生后短时间内迅速自动生成新闻稿件,并在第一时间将新闻资讯推送给用户的智能软件。写作机器人的写稿流程通常分为三个部分:采集处理数据、分析数据、匹配模板。写作...
1. **强化技术研发**:鼓励企业加大研发投入,提升核心竞争力,特别是针对新一代互联网、物联网、云计算和大数据等关键技术。 2. **建设产业集群**:打造电子信息产业园区,吸引国内外知名高新技术企业入驻,形成...
高校在培养工程技术人才时,嵌入式单片机技术相关课程成为工科专业学生必修的核心内容。企业对研发人员的需求,特别是对嵌入式单片机工程师的专业技能有着严格的要求。 文中提到企业研发部门对新进嵌入式单片机...
【测试架构师修炼之道:从测试工程师到测试架构师1】这本书主要探讨了软件测试工程师如何进行职业规划,以及如何成长为一名优秀的测试架构师。书中通过两个面试故事引入了核心议题,即测试的核心并不仅限于业务知识...
本书适合微电子、集成电路设计以及其他电子和计算机相关专业的高年级本科生和研究生作为教材使用,同时也为从事嵌入式系统研发的工程技术人员提供了一本实用的参考书。通过实际案例分析、思考题和扩展阅读,读者可以...
在FPGA(Field-Programmable Gate Array)的研发过程中,架构设计是至关重要的一步,它直接决定了项目的稳定性和效率。本文主要讨论了架构设计中稳定性的优先考虑,并以实际案例来阐述接口设计的重要性。 首先,...
在详细讨论基于Android平台的动物生理学思考题设计与研发的知识点之前,我们需要对相关的技术背景和应用场景有所了解。随着移动互联网和智能手机技术的不断进步,Android平台作为其重要的组成部分,已经成为开发各种...
2. **像咨询师一样思考——发展IT咨询业务** - **知识点:** 讲述了如何利用IT专业知识提供咨询服务,帮助企业解决实际问题。 - **实践意义:** 拓展业务范围,增加收入来源。 3. **无间道——未来不会再有研发和...
通过这次课程设计,学生不仅掌握了软件工程的基本流程,也锻炼了问题解决和团队协作的能力,为未来参与软件研发和管理工作奠定了坚实的基础。同时,这份报告也记录了整个设计过程中的思考和成长,是一次宝贵的实践...
他的职业生涯涵盖了软件研发、产品管理、咨询等多个方面,这为他在精益研发管理培训方面提供了丰富的实践经验。 在具体的实施过程中,精益研发管理培训大纲包括了从为什么是精益、定义价值、识别价值流到聚焦整流、...
面对这些问题,我们需要思考如何更好地引入和本土化先进的技术,提升教育质量和技术研发,促进国内软件行业的健康发展。这可能包括引进国际上的优秀教材、技术和期刊,培养专业人才,以及建立适应新技术发展的教育...
然而,当前的军事装备研发过程中,有时过于注重战术和技术指标的实现,而忽视了开发过程中的细节问题,这可能直接影响装备的实际作战效能。 文章作者蔡爱华和刘树立,基于他们在军用电子信息系统装备领域的多年经验...
《嵌入式系统——从SoC芯片到系统(第2版)》是一本深入探讨嵌入式系统设计的高等教育教材,特别关注SoC芯片及其在系统中的应用。该书由凌明、王学香和单伟伟三位专家共同编著,作为普通高等教育“十一五”国家级...
### 知识点五:走出“软件作坊”——从小规模团队向正规军转变 #### 小规模团队的特点 - 通常由少数技术人员组成,灵活但缺乏规范化的管理流程和技术积累。 #### 成为正规军的关键步骤 1. **建立规范的项目管理...
旷视通过软件平台的推出和自研设备的研发,实现了智慧物流快速跃升。所谓“软硬一体”,指的是将软件技术与硬件设备深度融合,形成高效、智能的物流解决方案。这不仅涉及算法和数据分析,还包括了机器人、自动导引...
智能互联产品不仅提升了电子控制处理能力和感应器的感应能力,还增强了软件思考能力和用户界面的互动性,使得机械产品向智能互联产品转变,进一步推动了网络互联性的多对多连接。 在这个过程中,企业需要进行开放式...
政府应制定更严格的法规来规范APP的数据收集和使用行为,开发者需要提升应用的安全性,而用户则需增强隐私保护意识,定期更新软件,避免在公共网络环境下输入敏感信息,并选择信誉良好的APP下载。 此外,教育也是...