Developers have long recognized the importance of the concepts underlying the systems they build, and the primary role concepts play in shaping user experience. To date, however, concepts have tended to be only implicit in software design with development being organized instead around more concrete artifacts (such as wireframes and code modules). Palantir, a software company whose data analytics products are widely used by major corporations, recently reworked its internal representation of its software development process to bring concepts to the fore, making explicit the concepts underlying its products, how they are clustered, used within and across applications, and governed by teams. With a centralized repository of concepts, Palantir engineers are able to align products more closely based on shared concepts, evolve concepts in response to user needs, and communicate more effectively with non-engineering groups within the company. This paper reports on Palantir's experiences to date, analyzing both successes and challenges, and offers advice to other organizations considering adopting a concept-centric approach to software development
翻译:开发者长期以来一直认识到其所构建系统背后概念的重要性,以及概念在塑造用户体验中所起的主要作用。然而,迄今为止,概念在软件设计中往往只是隐式的,开发工作反而围绕更具体的制品(如线框图和代码模块)进行组织。Palantir 是一家数据分析产品被大型企业广泛使用的软件公司,该公司近期重构了其软件开发流程的内部表示,将概念置于核心位置,使其产品背后的概念、这些概念的聚类方式、在应用内部及跨应用的使用方式以及团队治理方式都变得明确。借助集中的概念库,Palantir 的工程师能够基于共享概念更紧密地对齐产品,根据用户需求演进概念,并与公司内部的非工程团队进行更有效的沟通。本文报告了 Palantir 迄今的经验,分析了成功与挑战,并为其他考虑采用以概念为中心的软件开发方法的组织提供了建议。