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
- Christopher Alexander. 1977. A Pattern Language: Towns, Buildings, Construction. Oxford University Press.
- Ron Amadeo. 2021. A decade and a half of instability: The history of google messaging apps. https://arstechnica.com/gadgets/2021/08/a-decade-and-a-half-of-instability-the-history-of-google-messaging-apps/
- Frederick Brooks. [n. d.]. The Mythical Man-Month: Essays On Software Engineering. Pearson Education.
- Frederick Brooks. 1987. No Silver Bullet: Essence and accidents of software engineering. IEEE computer 20, 4 (1987), 10–19.
- Lyra J Colfer and Carliss Y Baldwin. 2016. The mirroring hypothesis: theory, evidence, and exceptions. Industrial and Corporate Change 25, 5 (2016), 709–738.
- Melvin E Conway. 1968. How do committees invent. Datamation 14, 4 (1968), 28–31.
- Terry Crowley. 2017. Complexity and Strategy. https://hackernoon.com/complexity-and-strategy-325cd7f59a92
- Edsger W Dijkstra and Edsger W Dijkstra. 1982. On the role of scientific thought. Selected writings on computing: a personal perspective (1982), 60–66.
- Steven D Eppinger and Tyson R Browning. 2012. Design structure matrix methods and applications. MIT press.
- Eric Evans. 2004. Domain-driven design: tackling complexity in the heart of software. Addison-Wesley Professional.
- Design patterns. Pearson Education Incorporated.
- Shawn Gilmore. [n. d.]. Narrative String Theory. https://www.vaultofculture.com/nst Online; accessed September 7, 2023.
- William Harrison and Harold Ossher. 1993. Subject-oriented programming: a critique of pure objects. In Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications. 411–428.
- Hamilton Helmer. 2016. 7 Powers: The Foundations of Business Strategy. Deep Strategy LLC.
- Mike Isaac. 2019. Zuckerberg plans to integrate WhatsApp, Instagram and Facebook Messenger. https://www.nytimes.com/2019/01/25/technology/facebook-instagram-whatsapp-messenger.html
- Daniel Jackson. 1995. Structuring Z specifications with views. ACM Transactions on Software Engineering and Methodology (TOSEM) 4, 4 (1995), 365–389.
- Daniel Jackson. 2021. The Essence of Software: Why Concepts Matter for Great Design. Princeton University Press.
- Michael Jackson and John Cameron. 1983. System Development. Vol. 85. Prentice-Hall Englewood Cliffs, NJ.
- Steve Jobs. 1997. Apple’s World Wide Developers Conference 1997 with Steve Jobs. https://youtu.be/GnO7D5UaDig?t=3135 Accessed on April 26, 2023.
- Aspect-oriented programming. In ECOOP’97—Object-Oriented Programming: 11th European Conference Jyväskylä, Finland, June 9–13, 1997 Proceedings 11. Springer, 220–242.
- Bertrand Meyer. 2014. Agile!: The good, the hype and the ugly. Springer Science & Business Media.
- Architecture anti-patterns: Automatically detectable violations of design principles. IEEE Transactions on Software Engineering 47, 5 (2019), 1008–1028.
- Casey Newton. 2022. Google reminders are now Google Tasks. https://twitter.com/CaseyNewton/status/1572269982704349185
- Donald Norman and Stephen Draper. 1986. User Centered System Design: New Perspectives on Human-Computer Interaction. L. Erlbaum Associates Inc.
- David Lorge Parnas. 1972. On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 12 (1972), 1053–1058.
- David Lorge Parnas. 1976. On the design and development of program families. IEEE Transactions on software engineering 1 (1976), 1–9.
- Working with objects: the OOram software engineering method. Greenwich: Manning.
- Nelson P Repenning and John D Sterman. 2001. Nobody ever gets credit for fixing problems that never happened: creating and sustaining process improvement. California management review 43, 4 (2001), 64–88.
- Paul M. Romer. 1992. Two Strategies for Economic Development: Using Ideas and Producing Ideas. The World Bank Economic Review 6 (12 1992), 63–91. https://doi.org/10.1093/wber/6.suppl_1.63
- Richard Rorty. 1999. Achieving Our Country: Leftist Thought in Twentieth-century America. Harvard University Press.
- Object-oriented modeling and design. Vol. 199. Prentice-Hall Englewood Cliffs, NJ.
- James Scott. 1999. Seeing Like a State: How Certain Schemes to Improve the Human Condition Have Failed. Yale University Press.
- Mary Shaw and David Garlan. 1996. Software architecture: perspectives on an emerging discipline. Prentice-Hall, Inc.
- Steven Sinofsky and Marco Iansiti. 2009. One Strategy: Organization, Planning, and Decision Making. Wiley.
- Joel Spolsky. 2005. The Project Aardvark Spec. https://www.joelonsoftware.com/2005/08/17/the-project-aardvark-spec/ Accessed on April 26, 2023..
- Ezra Vogel. 2011. Deng Xiaoping and the Transformation of China. Harvard University Press.
Paper Prompts
Sign up for free to create and run prompts on this paper using GPT-5.
Top Community Prompts
Collections
Sign up for free to add this paper to one or more collections.