作为一所学术机构的系统图书管理员,我是在那些想要访问我们图书馆提供的资源的人,和我那些代表研究人员描述资源的同事之间的桥梁。我指导我们有限的开发资源,以便我们的系统能够最好地满足我们所有用户的需求。在他们的论文中,Schwarz 和 Takhteyev 声称,软件自由使得“那些最了解其价值[并且]最适合执行修改的行动者有可能进行修改。”
Evergreen 作为一个开源图书馆系统,使我能够投入我的时间,使我的工作不仅惠及我们的机构,而且当我将我的本地工作贡献给整个项目时,也惠及所有其他使用 Evergreen 的机构。这种专注于改进整个项目,而不是特定于站点的增强功能的做法,是我们开发社区广泛认同的原则。
在我们 2009 年采用 Evergreen 之前,我们的大学使用了一种专有解决方案,该解决方案仅允许通过专有宏语言对 HTML 界面进行有限的定制。 没有办法改进图书馆工作人员使用的界面;虽然批处理操作是可能的(假设您已经支付了“API”培训课程的费用),但此类操作的数据完整性无法得到保证。 学习定制该专有系统的时间和精力在很大程度上被浪费了:没有其他环境可以重用该专业知识,并且尽管私人论坛允许站点共享定制,但缺乏开放的沟通和标准版本控制基础设施阻碍了集体努力。 功能请求和错误修复完全取决于一家公司的有限资源。
相比之下,修改 Evergreen 中任何源代码的能力——从使用 Perl 强大且广泛采用的 Template::Toolkit 模块 的面向用户的 HTML,到埋藏在 PostgreSQL 数据库级触发器中的业务逻辑——使我们能够直接满足用户的需求,并奖励那些投入精力在 Evergreen 上工作的人,他们获得的技能可以直接转移到其他项目。 例如,许多 Evergreen 的新手通过我们共享的教程快速掌握了 PostgreSQL 技能,例如面向 Evergreen 管理员的 SQL 入门 和 PostgreSQL 中的全文搜索。
使用标准的开源基础设施,如开放邮件列表、错误跟踪器和 git 存储库,使我们的开发社区能够最有效地利用我们的时间。 我们的机构贡献了增强功能,包括与其他神秘的图书馆系统(例如 OpenURL 解析器)的集成、密码重置机制以及 schema.org 结构化数据的发布,这些数据关于图书馆及其资源在 HTML 页面中,以便搜索引擎更容易抓取。 但我们反过来也从其他社区增强功能中受益匪浅,例如对引文管理实用程序、LDAP 身份验证、响应式网页设计和可访问性增强功能的支持。
然而,Evergreen 项目不仅仅是代码:我们在 2011 年加入了 软件自由保护组织,以便中立的第三方可以持有社区资产,例如商标、域名和用于年度国际会议等活动的资金。 这种组织结构,加上我们的代码在通用公共许可证下以及我们的文档在知识共享署名-相同方式共享许可证下的许可,消除了我们社区中任何单个参与者可以劫持我们的集体努力的担忧,并使我们能够以相互信任的关系进行协作。
与开源合作的一个主要好处是,我可以自由分享通过参与 Evergreen 社区获得的知识和技能。 我们大学的计算机科学专业的学生通过我在 Google Summer of Code 计划中进行的演讲以及我领导的关于诸如 git 和 增强 HTML5 网页 与 RDFa 结构化数据等主题的教程中,了解了开源社区文化和工具,例如错误跟踪、邮件列表和 IRC。 这些实践课程(基于我在 Evergreen 的工作)为通常更学术和抽象的课程作业提供了面向软件开发的平衡。
最后,我们与 Koha 等其他项目合作,改进 Perl 模块,例如处理相对神秘的图书馆标准的 MARC::Record。 开源项目之所以更强大,是因为我们不将项目之间的竞争视为零和博弈;相反,我们与同行合作,为每个人改进我们努力的基础。
1 条评论