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 developmen