Concept-centric Software Development
Abstract
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
- Publication:
-
arXiv e-prints
- Pub Date:
- April 2023
- DOI:
- 10.48550/arXiv.2304.14975
- arXiv:
- arXiv:2304.14975
- Bibcode:
- 2023arXiv230414975W
- Keywords:
-
- Computer Science - Software Engineering;
- Computer Science - Human-Computer Interaction