【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

Venkat Subramaniam 谈论日常软件开发的事实和谬误

  • 2009-01-20
  • 本文字数:1332 字

    阅读完需:约 4 分钟

软件开发充满挑战,而且乐趣无穷,然而总有一些因素阻止团队成功完成 IT 项目。这些因素通常与工具和技术无关,是人阻碍了项目的成功。 Venkat Subramaniam 日前谈到日常软件开发的事实和谬误。他在最近的 CodeMash 2009 大会上作了一个主题演讲,谈及开发人员和项目经理为了保证项目成功应该注意哪些因素。

Venkat 在主题演讲中提到下面这些软件开发的谬误:

更多的资金和时间可以解决我们的问题:

Venkat 说,在开发项目时,清晰的“业务目标”非常重要。他给出的统计数据中提到:在项目中有 64% 实现的功能很少使用或是从未使用过;项目持续时间越长,成功的可能性就越小。他认为:软件开发人员要开发“有能力、有意义的软件(capable and relevant software)”。

大厂商提供的东西就一定好:

他质疑是否真的有必要用 EJB (在某些情况下)让开发工作变得复杂和过于“重量级”。对于这个问题,开发人员应该承担一定的责任(因为使用 EJB 实现几乎所有的用例)。EJB 的大规模采纳,厂商之间的技术竞争(而不是需求)有一定的原因。需求应该决定技术,而不是由技术决定需求。而且在创新出现之前就急着标准化,这样的发展方式不怎么样。 Rails Spring 类似框架的出现告诉我们:先创新再标准化,由社区而不是厂商驱动,确实可以产生实用、有意义的开发框架。

我们进行离岸外包是因为可以节省资金:

Venkat 谈到目前的离岸外包模型,并对其是否有效提出了质疑。他对比了另一种模型:公司在美国本土完成所有的工作,可是仍然不能成功。所以他提出下面这个问题:为什么让设计人员和开发人员远隔重洋,你就期待能得到不同的结果?很多公司使用离岸外包模型,是因为即使项目失败了,成本的开销却可以比以前少,也就是所谓的“Fail-for-Less”策略。他建议:项目经理应该雇佣聪明能干的开发人员,这些人应该有很强的自学能力,再给他们配备最好的开发工具,这些工具要能把握软件开发工作的本质,而不可华而不实。由精干的开发人员组成的小型团队,其效率要胜过水平低下的开发人员构成的大型团队。他强调:既然离岸外包已经不可逆转,我们就应该充分利用全世界范围内的人才。

动态语言不安全:

他提到:Java 是强类型语言,可如果编码时不小心,还是有可能得到 ClassCastException, Ruby Groovy 也是这样。单靠强类型并不能改进代码质量。编译器有用,但是经常被过于看重,因为没有哪个编译器可以完全验证程序员的意图。他也推荐开发人员应该利用像 Scala 这样的全新动态语言。

静态类型是保证代码清晰的关键:

Venkat 说:有了纪律,开发人员不管使用哪种语言,都可以编写出易于阅读、理解和维护的代码。为了保证代码清晰易懂、易于维护,他建议使用下列实践:

  • 让方法和类的名称具有可描述性。
  • 编写短小的类和方法。
  • 让团队互动和交流。
  • 编写自动化单元测试。单元测试可以覆盖各种正常和异常的状况,它会强迫你用正确的方式设计。

他也提及单元测试在软件开发生命周期中的重要性。单元测试等同于实际使用的软件,可即使它这么好,很多程序员也都不太愿意用它。单元测试有助于提升代码的质量,如果代码可以测试,它的设计就是好的。在演讲的总结阶段,Venkat 强调:要表示出软件的“意图”,这非常重要。

查看英文原文: Venkat Subramaniam on Facts and Fallacies of Everyday Software Development

2009-01-20 01:10686
用户头像

发布了 479 篇内容, 共 151.2 次阅读, 收获喜欢 47 次。

关注

评论

发布
暂无评论
发现更多内容

致 Tapdata 开源贡献者:聊聊 2022 年的进展和新一年的共建计划

tapdata

DTSE Tech Talk 第18期丨统计信息大揭秘,数仓SQL执行优化之密钥

华为云开发者联盟

数据库 sql 后端 华为云 企业号 1 月 PK 榜

2022年15款实用有趣的小程序推荐

FN0

小程序 小程序商城 小程序模版

SAST-静态应用安全测试

华为云PaaS服务小智

软件测试/测试开发 | 接口自动化测试中如何对xml 格式做断言验证?

测试人

软件测试 自动化测试 接口测试 测试开发 接口自动化

荣誉+1,OpenMLDB 荣获 InfoQ 2022 年度杰出开源运营团队

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

华为云云原生数据库:A Philosophy about “less”

华为云开发者联盟

数据库 后端 华为云 企业号 1 月 PK 榜

中冶赛迪*IoTDB | 多项目全流程以IoTDB为时序数据处理方案,预计写入查询效率提升一倍

Apache IoTDB

国产时序数据库

软件测试/测试开发 | 接口测试中如何使用Json 来进行数据交互 ?

测试人

json 软件测试 自动化测试 接口测试 测试开发

一个专科生的 2022 年终总结——默默努力,成为更好的自己

程序人生 年终总结 成长感悟 自学之路

阅文加入 OpenCloudOS 操作系统社区,作为成员单位参与社区共建

OpenCloudOS

Linux

光神经网络ONN:直接对光信号进行神经网络处理

Zilliz

火出圈的《中国奇谭》,如果浪浪山的小妖怪们也用WorkPlus

WorkPlus

TDengine 时序数据特色查询语法详解,助力时序场景下的应用开发

TDengine

数据库 tdengine 时序数据库

来自掘金和 InfoQ 的“新年礼物”,时序数据库 TDengine 荣登两大知名技术社区重磅榜单

TDengine

数据库 tdengine 时序数据库

为什么MySQL数据删除了一半,表文件体积却没变小?

程序员拾山

MySQL

华为云GaussDB(for MySQL)通过中国信通院“可信数据库”评测

华为云开发者联盟

数据库 后端 华为云 企业号 1 月 PK 榜

软件测试/测试开发 | 接口自动化测试中,如何做断言验证?

测试人

软件测试 自动化测试 接口测试 测试开发

【表面缺陷检测】表面缺陷检测数据集汇总

机器不学习我学习

模块七--王者荣耀商城异地多活架构设计

闲人Eric

架构实战营

Volcano 社区 v1.7.0 版本正式发布 | 云原生批量计算

华为云开发者联盟

云计算 云原生 华为云 Volcano 企业号 1 月 PK 榜

以数据赋能AI量产落地,澳鹏团队在浦东AI智能创新应用大赛斩获佳绩

澳鹏Appen

人工智能 数据标注

2022年度 FinClip 扩展SDK推荐!

FN0

小程序 sdk SDK 教程

理想问鼎销冠,数据库能帮助新能源车企赢得下半场么?

YMatrix 超融合数据库

案例分享 新能源汽车 造车新势力 超融合数据库 YMatrix

ING国际银行基于Volcano的大数据分析平台应用实践

华为云开发者联盟

云计算 云原生 后端 华为云 企业号 1 月 PK 榜

KaiwuDB 首席解决方案专家 金宁:1.0 时序数据库核心功能解读

KaiwuDB

时序数据库 海量数据高吞吐 复杂查询

软件测试/测试开发 | 接口自动化测试如何搞定 json 响应断言?

测试人

json 软件测试 自动化测试 接口测试 测试开发

Sealer 0.9 :帮助集群和分布式应用实现 Build、 Share、Run

阿里巴巴云原生

阿里云 开源 云原生 sealer

技术人职场系列-务虚与务实

CatTalk

技术人生 职场发展

别忘记我:通过局部-全局内容建模进行文本擦除方法

合合技术团队

图像识别 图像处理 文本 图像擦除

HummerRisk V0.9.0:增加RBAC 拓扑图,云检测、漏洞、主机等模块增加规则

HummerCloud

开源 云原生安全

Venkat Subramaniam谈论日常软件开发的事实和谬误_研发效能_Srini Penchikala_InfoQ精选文章