Blogs

Herb Caudill

对软件工程的反思

以下三篇博客简单描绘了他“理想中的软件”,在软件集成、工具软件的形态、跨越机读数据与人读数据的鸿沟方面对低代码及邻系平台软件有所启发。


Solving the software puzzle

《解决软件难题》探讨了 SaaS 团队协作工具在功能冗余与缺失上的问题,并提出以定制化和集成化优先的可插拔、可定制数据模型与共享功能框架作为理想解决方案。

现状与挑战

  • 即使采用 SaaS 模式,团队协作仍面临效率受阻的问题。
  • 小型企业、非营利组织及大型公司内部团队都遇到软件无法有效解决的痛点。

商业软件的三大困境

  1. 数据重复与重叠
    • 客户、团队、任务等信息在多个系统中反复出现(如 CRM、会计、帮助台、源代码管理、项目管理、身份管理等)。
    • 导致费用增加、认知负担加重、信息来源不明确。
  2. 为未使用的功能付费
    • 工具中存在大量实际未用到的功能,如 FreshSales 的区域功能、潜在客户评分,Asana 的进度仪表板,FreshDesk 的论坛功能。
  3. 关键功能缺失,需自制补充系统
    • 缺乏明确的项目或团队列表、客户及实例信息存储位置。
    • 常用电子表格替代,如现金规划、债务跟踪。

权衡点

  1. 减少系统数量 vs. 使用最佳工具
    • 前者易导致冗余和低效,后者导致工具间缺乏连接。
    • 虽可通过集成解决,但实际落地困难。
  2. 通用工具 vs. 定制解决方案
    • 前者质量高但不完全契合需求,后者灵活但可能不成熟。
    • 定制性在理论上解决问题,但现实总有局限。

SaaS 应用价值构成

  1. 领域特定数据模型
    • 如 QuickBooks 建模财务,FreshSales 销售流程,FreshDesk 支持流程,DevResults 国际发展项目,Asana 组织工作。
  2. 超能力功能
    • 独特且难以复制功能,如 GitHub 的 git 托管与 UI,Expensify 解析收据,FreshDesk 支持多人协作邮箱。
  3. Me-too 功能
    • 超出核心优势的通用功能,如任务列表、讨论功能、文档存储。
  4. 基础设施
    • 用户管理、认证、权限、API、订阅计费、搜索等通用技术。
  5. 可定制性与集成性
    • 通常实施不完善。

理想解决方案方向

  • 将定制与集成作为首要设计原则。
  • 领域特定数据模型应免费、可插拔且可定制。
  • 通用功能应共享、可链接使用。
  • “超能力”功能由可整合的应用或插件提供。

Excel hell: A cautionary tale

《Excel 的困境》

使用背景

  • 广泛使用:因易用性,Excel 成为全球最常用的“数据库”软件,尽管其初衷是财务建模工具。
  • 功能外延:用户逐渐将它用于数据存储,而非仅限于计算任务。

局限性

  1. 二维结构限制
    无法自然处理多维数据,复杂信息难以在表格中表达。
  2. 数据与展示混杂
    数据和呈现方式紧密结合,手动分组、子总计、颜色标签等美化操作增加错误风险与维护成本。
  3. 容易出错
    高灵活性导致输入格式不统一、删除行或公式等低级错误频繁。
  4. 文件存储问题
    单机或服务器存储限制多人协作;邮件传输易产生多个版本且存在安全隐患。

不选择专业数据库的原因

  • 数据库优势:如 Microsoft Access 提供关系表结构、数据类型约束及数据展示分离。
  • 用户障碍:需预先定义数据结构,修改繁琐,不利于快速上手。

理想工具的特征

  • 它让我能够轻松上手,就像使用 Excel 一样,并且具备类似 Access 的关系型数据库能力。
  • 它不需要我一开始就进行详尽的定义,但允许我在必要时进行补充定义。
  • 与其展示表格和行的底层结构,它展示的是数组和对象的底层结构。
  • 我不仅能以表格形式查看我的信息,还能访问许多其他适合我的数据的可视化方式。
  • 当然,所有内容都在浏览器中交付,因此它支持实时协作;应用程序和数据都存储在云端,所以它具有高度可用性和可扩展性,等等。

Data types for humans

《数据类型的人性化》

核心问题

  • 传统数据库系统过于从计算机视角定义数据类型,要求用户提前确定类型,增加了使用摩擦。
  • 需要关注对人类更直观和有意义的数据类型设计,而非仅限于实现细节。

建议的数据类型类别

  1. 日期与时间
    • 除标准时间格式外,应包含持续时间、时间段、一年中的某天、一周中的某天等概念。
  2. 物理测量
    • 支持不同度量单位的自动转换,如英尺/英寸与厘米之间的无缝切换。
  3. 姓名、地址与人相关信息
    • 能解析与标准化姓名、地址,以便按姓氏排序、生成统一格式的地址显示。
  4. 标准化列表数据
    • 例如国家、州、货币、语言,支持列类型定义并提供标准选择列表。
  5. 系统内引用
    • 无需了解外键等底层机制,即可将一表数据引用到另一表。
  6. 对象集合
    • 支持数组和对象集合,如项目中的多名员工、公司中的多名客户。

对现有软件生态的批评

  • 软件厂商常低估用户能力,导致功能简化,限制用户操作复杂数据的自由。
  • 应为用户提供数组、对象、递归等完整表达能力,并以自然易懂的方式呈现。

未来工具的愿景

  • 构建能帮助个人与团队组织信息的平台,充分利用熟悉的数据类型以引导用户进入更强大的对象模型世界。
  • 不应人为简化数据类型,而是让人性化的类型成为进入灵活系统功能的入口。

与现状的对比

  • Excel 是广泛使用的通用数据库工具,但阻碍了数据管理与建模工具的创新发展。
  • 有必要提供更直观且功能更强的替代方案来组织和操作数据。

Copyright © 2024 Lionad - CC-BY-NC-CD-4.0