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
翻译:长期以来,开发者们认识到支撑所构建系统的概念的重要性,以及概念在塑造用户体验中扮演的核心角色。然而,迄今为止,概念往往仅隐含在软件设计中,开发工作反而围绕着更具体的产物(如线框图和代码模块)来组织。帕兰提尔公司是一家其数据分析产品被大型企业广泛使用的软件企业,近期重新构建了其软件开发过程的内部表示,将概念置于核心地位——明确产品背后的概念、这些概念如何聚类、如何在应用内外被使用、以及如何由团队进行治理。借助集中的概念存储库,帕兰提尔的工程师能够基于共享概念更紧密地协调产品,根据用户需求演进概念,并与公司内非工程团队更有效地沟通。本文报告帕兰提尔迄今的经验,分析成功与挑战,并向考虑采用以概念为中心的软件开发方法的其他组织提供建议。